diff --git a/demo-shell-ng2/index.html b/demo-shell-ng2/index.html
index ba765707be..3fbdbbf291 100644
--- a/demo-shell-ng2/index.html
+++ b/demo-shell-ng2/index.html
@@ -24,7 +24,7 @@
-
+
diff --git a/demo-shell-ng2/package.json b/demo-shell-ng2/package.json
index 418b2a7b4b..a3919e06bd 100644
--- a/demo-shell-ng2/package.json
+++ b/demo-shell-ng2/package.json
@@ -75,7 +75,7 @@
"pdfjs-dist": "1.5.258",
"flag-icon-css": "2.3.0",
- "alfresco-js-api": "^0.1.0",
+ "alfresco-js-api": "0.2.0",
"ng2-alfresco-core": "0.2.0",
"ng2-alfresco-datatable": "0.2.0",
"ng2-alfresco-documentlist": "0.2.0",
diff --git a/ng2-components/ng2-alfresco-core/karma-test-shim.js b/ng2-components/ng2-alfresco-core/karma-test-shim.js
index d58df28667..3a95ee82c7 100644
--- a/ng2-components/ng2-alfresco-core/karma-test-shim.js
+++ b/ng2-components/ng2-alfresco-core/karma-test-shim.js
@@ -14,7 +14,8 @@ var map = {
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
- 'rxjs': { defaultExtension: 'js' },
+ 'rxjs': { defaultExtension: 'js' },
+ 'alfresco-js-api' : { main: 'alfresco-js-api.js', defaultExtension: 'js' },
'ng2-translate': { defaultExtension: 'js' }
};
diff --git a/ng2-components/ng2-alfresco-core/karma.conf.js b/ng2-components/ng2-alfresco-core/karma.conf.js
index f03e383ede..e2485314bf 100644
--- a/ng2-components/ng2-alfresco-core/karma.conf.js
+++ b/ng2-components/ng2-alfresco-core/karma.conf.js
@@ -11,10 +11,13 @@ module.exports = function (config) {
{pattern: 'node_modules/reflect-metadata/Reflect.js', included: true, watched: true},
{pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: false},
{pattern: 'node_modules/zone.js/dist/zone.js', included: true, watched: true},
+ {pattern: 'node_modules/zone.js/dist/async-test.js', included: true, watched: true},
+
{pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false},
{pattern: 'node_modules/rxjs/**/*.map', included: false, watched: false},
{pattern: 'node_modules/@angular/**/*.js', included: false, watched: false},
{pattern: 'node_modules/@angular/**/*.map', included: false, watched: false},
+ {pattern: 'node_modules/alfresco-js-api/dist/alfresco-js-api.js', included: true, watched: false},
{pattern: 'karma-test-shim.js', included: true, watched: true},
diff --git a/ng2-components/ng2-alfresco-core/package.json b/ng2-components/ng2-alfresco-core/package.json
index 0d43a8e029..873eebc038 100644
--- a/ng2-components/ng2-alfresco-core/package.json
+++ b/ng2-components/ng2-alfresco-core/package.json
@@ -6,19 +6,15 @@
"scripts": {
"clean": "rimraf dist node_modules typings",
"typings": "typings install",
- "build": "npm run tslint && typings install && rimraf dist && tsc && npm run copytemplates && license-check",
+ "build": "npm run tslint && typings install && rimraf dist && tsc && license-check",
+ "build:w": "npm run tslint && typings install && rimraf dist && npm run watch-task",
+ "watch-task": "concurrently \"npm run tsc:w\" \"license-check\"",
"tslint": "npm run tslint-src && npm run tslint-root",
"tslint-src": "tslint -c tslint.json src/{,**/}**.ts",
"tslint-root": "tslint -c tslint.json *.ts",
- "copytemplates": "npm run copy-html-css && npm run copy-i18n",
- "copy-html-css": "cpx \"./src/**/*.{html,css}\" ./dist/src",
- "copy-html-css:w": "cpx \"./src/**/*.{html,css}\" ./dist/src -w",
- "copy-i18n": "cpx \"./i18n/**/*.json\" ./dist/i18n",
- "copy-i18n:w": "cpx \"./i18n/**/*.json\" ./dist/i18n -w",
- "copy-images": "cpx \"./src/**/*.{png,jpg,gif,svg}\" ./dist/src",
- "copy-images:w": "cpx \"./src/**/*.{png,jpg,gif,svg}\" ./dist/src -w",
"licensecheck": "license-check",
"tsc": "tsc",
+ "tsc:w": "tsc -w",
"pretest": "npm run build",
"test": "karma start karma.conf.js --reporters mocha,coverage --single-run",
"test-browser": "karma start karma.conf.js --reporters kjhtml ",
@@ -45,6 +41,10 @@
{
"name": "Mario Romano",
"email": "mario.romano83@gmail.com"
+ },
+ {
+ "name": "Eugenio Romano",
+ "email": "eugenio.romano@alfresco.com"
}
],
"keywords": [
@@ -54,6 +54,7 @@
"alfresco"
],
"dependencies": {
+ "alfresco-js-api": "^0.2.0",
"@angular/common": "2.0.0-rc.3",
"@angular/compiler": "2.0.0-rc.3",
"@angular/core": "2.0.0-rc.3",
@@ -69,8 +70,7 @@
"reflect-metadata": "0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "0.6.12",
- "ng2-translate": "2.2.2",
- "rimraf": "2.5.2"
+ "ng2-translate": "2.2.2"
},
"peerDependencies": {
"material-design-icons": "^2.2.3",
@@ -90,6 +90,7 @@
"karma-mocha-reporter": "2.0.3",
"license-check": "1.1.5",
"remap-istanbul": "0.6.3",
+ "rimraf": "2.5.2",
"traceur": "0.0.91",
"tslint": "3.8.1",
"typescript": "1.8.10",
diff --git a/ng2-components/ng2-alfresco-core/src/assets/AlfrescoApi.mock.ts b/ng2-components/ng2-alfresco-core/src/assets/AlfrescoApi.mock.ts
new file mode 100644
index 0000000000..3835e67611
--- /dev/null
+++ b/ng2-components/ng2-alfresco-core/src/assets/AlfrescoApi.mock.ts
@@ -0,0 +1,35 @@
+/*!
+ * @license
+ * Copyright 2016 Alfresco Software, Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+export class AlfrescoApiMock {
+
+ login(username: string, password: string) {
+ return new Promise((resolve) => {
+ resolve('TICKET_4479f4d3bb155195879bfbb8d5206f433488a1b1');
+ });
+ }
+
+ logout() {
+ return new Promise((resolve) => {
+ resolve('logout');
+ });
+ }
+
+ changeConfig() {
+ }
+}
diff --git a/ng2-components/ng2-alfresco-core/src/interface/authentication.interface.ts b/ng2-components/ng2-alfresco-core/src/interface/authentication.interface.ts
index 582e82bb56..c12c7dbe0a 100644
--- a/ng2-components/ng2-alfresco-core/src/interface/authentication.interface.ts
+++ b/ng2-components/ng2-alfresco-core/src/interface/authentication.interface.ts
@@ -19,6 +19,7 @@ import { Observable } from 'rxjs/Rx';
export interface AbstractAuthentication {
TYPE: string;
+ alfrescoApi: any;
login(username: string, password: string): Observable;
@@ -26,8 +27,7 @@ export interface AbstractAuthentication {
isLoggedIn(): boolean ;
- getToken(): string;
-
- saveToken(): void;
+ getTicket(): string;
+ saveTicket(ticket: any): void;
}
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBPM.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBPM.service.ts
index b1ea5f0ac4..f379ad71fd 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBPM.service.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBPM.service.ts
@@ -24,7 +24,6 @@ import { AlfrescoSettingsService } from './AlfrescoSettingsService.service';
export class AlfrescoAuthenticationBPM extends AlfrescoAuthenticationBase implements AbstractAuthentication {
TYPE: string = 'BPM';
- private token: string;
constructor(private alfrescoSettingsService: AlfrescoSettingsService,
private http: Http) {
@@ -41,9 +40,8 @@ export class AlfrescoAuthenticationBPM extends AlfrescoAuthenticationBase implem
login(username: string, password: string): Observable {
return Observable.fromPromise(this.apiActivitiLogin(username, password))
.map((response: any) => {
- this.token = response.status;
- return this.token;
- // return {name: this.TYPE, token: response.status};
+ this.saveTicket(response.status);
+ return response.status;
})
.catch(this.handleError);
}
@@ -57,7 +55,7 @@ export class AlfrescoAuthenticationBPM extends AlfrescoAuthenticationBase implem
return Observable.fromPromise(this.apiActivitiLogout())
.map(res => res)
.do(response => {
- this.removeToken(this.TYPE);
+ this.removeTicket(this.TYPE);
})
.catch(this.handleError);
}
@@ -67,7 +65,7 @@ export class AlfrescoAuthenticationBPM extends AlfrescoAuthenticationBase implem
* @returns {boolean}
*/
isLoggedIn(): boolean {
- return !!this.getToken();
+ return !!this.getTicket();
}
private apiActivitiLogin(username: string, password: string) {
@@ -91,17 +89,17 @@ export class AlfrescoAuthenticationBPM extends AlfrescoAuthenticationBase implem
return this.http.get(url).toPromise();
}
- public getToken (): string {
- return localStorage.getItem(`token-${this.TYPE}`);
+ public getTicket(): string {
+ return localStorage.getItem(`ticket-${this.TYPE}`);
}
/**
- * The method save the toke in the localStorage
- * @param token
+ * The method save the ticket in the localStorage
+ * @param ticket
*/
- public saveToken(): void {
- if (this.token) {
- super.saveToken(this.TYPE, this.token);
+ public saveTicket(ticket): void {
+ if (ticket) {
+ super.saveTicket(this.TYPE, ticket);
}
}
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBase.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBase.service.ts
index ddf41b4799..988cf46a6a 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBase.service.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationBase.service.ts
@@ -23,6 +23,8 @@ declare let AlfrescoApi: any;
export class AlfrescoAuthenticationBase {
+ alfrescoApi: any;
+
private _authUrl: string = '/alfresco/api/-default-/public/authentication/versions/1';
private alfrescoSetting: AlfrescoSettingsService;
/**
@@ -40,19 +42,19 @@ export class AlfrescoAuthenticationBase {
/**
* The method save the toke in the localStorage
- * @param token
+ * @param ticket
*/
- public saveToken(provider:string, token: string): void {
- if (token) {
- localStorage.setItem(`token-${provider}`, token);
+ public saveTicket(provider:string, ticket: string): void {
+ if (ticket) {
+ localStorage.setItem(`ticket-${provider}`, ticket);
}
}
/**
- * Remove the login token from localStorage
+ * Remove the login ticket from localStorage
*/
- public removeToken(provider:string): void {
- localStorage.removeItem(`token-${provider}`);
+ public removeTicket(provider:string): void {
+ localStorage.removeItem(`ticket-${provider}`);
}
/**
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationECM.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationECM.service.ts
index af83523b21..e3a0cca119 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationECM.service.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationECM.service.ts
@@ -26,84 +26,97 @@ declare let AlfrescoApi: any;
export class AlfrescoAuthenticationECM extends AlfrescoAuthenticationBase implements AbstractAuthentication {
TYPE: string = 'ECM';
- private token: string;
+ alfrescoApi: any;
+ /**
+ * Constructor
+ * @param alfrescoSettingsService
+ */
constructor(private alfrescoSettingsService: AlfrescoSettingsService,
private http: Http) {
super(alfrescoSettingsService, http);
+
+ if (!this.isLoggedIn) {
+ this.alfrescoApi = new AlfrescoApi({
+ host: this.getBaseUrl()
+ });
+ } else {
+ this.alfrescoApi = new AlfrescoApi({
+ ticket: this.getTicket(),
+ host: this.getBaseUrl()
+ });
+ }
+ }
+
+ getBaseUrl(): string {
+ return this.alfrescoSettingsService.host;
+ }
+
+ getAlfrescoApi(): any {
+ return this.alfrescoApi;
}
/**
- * Perform a login on behalf of the user and store the ticket returned
- *
+ * The method return tru if the user is logged in
+ * @returns {boolean}
+ */
+ isLoggedIn(): boolean {
+ return !!this.getTicket();
+ }
+
+ /**
+ * Method to delegate to POST login
* @param username
* @param password
* @returns {Observable|Observable}
*/
- login(username: string, password: string): Observable {
- return Observable.fromPromise(this.getCreateTicketPromise(username, password))
- .map((response: any) => {
- this.token = response.entry.id;
- return this.token;
- // return {name: this.TYPE, token: response.entry.id};
+ login(username: string, password: string) {
+ this.alfrescoApi = new AlfrescoApi({
+ username: username,
+ password: password,
+ host: this.getBaseUrl()
+ });
+
+ return Observable.fromPromise(this.alfrescoApi.login())
+ .map(res => res)
+ .do(response => {
+ this.saveTicket(response);
+ return response;
})
.catch(this.handleError);
}
/**
- * Delete the current login ticket from the server
+ * The method remove the ticket from the local storage
*
* @returns {Observable|Observable}
*/
- logout() {
- return Observable.fromPromise(this.getDeleteTicketPromise())
+ public logout() {
+ return Observable.fromPromise(this.alfrescoApi.logout())
.map(res => res)
.do(response => {
- this.removeToken(this.TYPE);
+ this.removeTicket(this.TYPE);
+ return response;
})
.catch(this.handleError);
}
+
/**
- * The method return true if the user is logged in
- * @returns {boolean}
+ * The method return the ticket stored in the localStorage
+ * @returns ticket
*/
- isLoggedIn(): boolean {
- return !!this.getToken();
- }
-
- private getAlfrescoClient() {
- return AlfrescoApi.getClientWithTicket(this.getBaseUrl(), this.getToken());
- }
-
- private getCreateTicketPromise(username: string, password: string) {
- let apiInstance = new AlfrescoApi.Auth.AuthenticationApi(this.getAlfrescoClient());
- let loginRequest = new AlfrescoApi.Auth.LoginRequest();
- loginRequest.userId = username;
- loginRequest.password = password;
- return apiInstance.createTicket(loginRequest);
- }
-
- private getDeleteTicketPromise() {
- let apiInstance = new AlfrescoApi.Auth.AuthenticationApi(this.getAlfrescoClient());
- return apiInstance.deleteTicket();
+ public getTicket(): string {
+ return localStorage.getItem(`ticket-${this.TYPE}`);
}
/**
- * The method return the token stored in the localStorage
- * @param token
+ * The method save the ticket in the localStorage
+ * @param ticket
*/
- public getToken (): string {
- return localStorage.getItem(`token-${this.TYPE}`);
- }
-
- /**
- * The method save the toke in the localStorage
- * @param token
- */
- public saveToken(): void {
- if (this.token) {
- super.saveToken(this.TYPE, this.token);
+ public saveTicket(ticket): void {
+ if (ticket) {
+ super.saveTicket(this.TYPE, ticket);
}
}
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts
index a2537fac12..ea417dcca2 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.spec.ts
@@ -36,7 +36,7 @@ describe('AlfrescoAuthentication', () => {
resolve({
entry: {
userId: 'fake-username',
- id: 'fake-post-token-ECM'
+ id: 'fake-post-ticket-ECM'
}
});
reject({
@@ -48,7 +48,7 @@ describe('AlfrescoAuthentication', () => {
fakePromiseBPM = new Promise(function (resolve, reject) {
resolve({
- status: 'fake-post-token-BPM'
+ status: 'fake-post-ticket-BPM'
});
reject({
response: {
@@ -109,7 +109,7 @@ describe('AlfrescoAuthentication', () => {
);
});
- it('should return an ECM token after the login done', (done) => {
+ it('should return an ECM ticket after the login done', (done) => {
let providers = ['ECM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
@@ -120,13 +120,13 @@ describe('AlfrescoAuthentication', () => {
service.login('fake-username', 'fake-password', providers)
.subscribe(() => {
expect(service.isLoggedIn(providers[0])).toBe(true);
- expect(service.getToken(providers[0])).toEqual('fake-post-token-ECM');
+ expect(service.getTicket(providers[0])).toEqual('fake-post-ticket-ECM');
done();
}
);
});
- it('should return token undefined when the credentials are wrong', (done) => {
+ it('should return ticket undefined when the credentials are wrong', (done) => {
let providers = ['ECM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
@@ -142,7 +142,7 @@ describe('AlfrescoAuthentication', () => {
},
(err: any) => {
expect(service.isLoggedIn(providers[0])).toBe(false);
- expect(service.getToken(providers[0])).toBeUndefined();
+ expect(service.getTicket(providers[0])).toBeUndefined();
done();
}
);
@@ -186,21 +186,21 @@ describe('AlfrescoAuthentication', () => {
);
});
- it('should return a token undefined after logout', (done) => {
+ it('should return a ticket undefined after logout', (done) => {
let providers = ['ECM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
service = injector.get(AlfrescoAuthenticationService);
- localStorage.setItem('token-ECM', 'fake-post-token-ECM');
+ localStorage.setItem('ticket-ECM', 'fake-post-ticket-ECM');
service.createProviderInstance(providers);
spyOn(AlfrescoAuthenticationECM.prototype, 'getDeleteTicketPromise').and.returnValue(fakePromiseECM);
service.logout()
.subscribe(() => {
expect(service.isLoggedIn(providers[0])).toBe(false);
- expect(service.getToken(providers[0])).toBeUndefined();
- expect(localStorage.getItem('token-ECM')).toBeUndefined();
+ expect(service.getTicket(providers[0])).toBeUndefined();
+ expect(localStorage.getItem('ticket-ECM')).toBeUndefined();
done();
}
);
@@ -252,7 +252,7 @@ describe('AlfrescoAuthentication', () => {
);
});
- it('should return an BPM token after the login done', (done) => {
+ it('should return an BPM ticket after the login done', (done) => {
let providers = ['BPM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
@@ -263,13 +263,13 @@ describe('AlfrescoAuthentication', () => {
service.login('fake-username', 'fake-password', providers)
.subscribe(() => {
expect(service.isLoggedIn(providers[0])).toBe(true);
- expect(service.getToken(providers[0])).toEqual('fake-post-token-BPM');
+ expect(service.getTicket(providers[0])).toEqual('fake-post-ticket-BPM');
done();
}
);
});
- it('should return token undefined when the credentials are wrong', (done) => {
+ it('should return ticket undefined when the credentials are wrong', (done) => {
let providers = ['BPM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
@@ -284,27 +284,27 @@ describe('AlfrescoAuthentication', () => {
},
(err: any) => {
expect(service.isLoggedIn(providers[0])).toBe(false);
- expect(service.getToken(providers[0])).toBeUndefined();
+ expect(service.getTicket(providers[0])).toBeUndefined();
done();
}
);
});
- it('should return a token undefined after logout', (done) => {
+ it('should return a ticket undefined after logout', (done) => {
let providers = ['BPM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
service = injector.get(AlfrescoAuthenticationService);
- localStorage.setItem('token-BPM', 'fake-post-token-BPM');
+ localStorage.setItem('ticket-BPM', 'fake-post-ticket-BPM');
service.createProviderInstance(providers);
spyOn(AlfrescoAuthenticationBPM.prototype, 'apiActivitiLogout').and.returnValue(fakePromiseBPM);
service.logout()
.subscribe(() => {
expect(service.isLoggedIn(providers[0])).toBe(false);
- expect(service.getToken(providers[0])).toBeUndefined();
- expect(localStorage.getItem('token-BPM')).toBeUndefined();
+ expect(service.getTicket(providers[0])).toBeUndefined();
+ expect(localStorage.getItem('ticket-BPM')).toBeUndefined();
done();
}
);
@@ -316,7 +316,7 @@ describe('AlfrescoAuthentication', () => {
alfSetting.providers = providers;
service = injector.get(AlfrescoAuthenticationService);
- localStorage.setItem('token-BPM', 'fake-post-token-BPM');
+ localStorage.setItem('ticket-BPM', 'fake-post-ticket-BPM');
service.createProviderInstance(providers);
spyOn(AlfrescoAuthenticationBPM.prototype, 'apiActivitiLogout').and.returnValue(Promise.reject('fake logout error'));
@@ -328,7 +328,7 @@ describe('AlfrescoAuthentication', () => {
(err: any) => {
expect(err).toBeDefined();
expect(err.message).toEqual('fake logout error');
- expect(localStorage.getItem('token-BPM')).toEqual('fake-post-token-BPM');
+ expect(localStorage.getItem('ticket-BPM')).toEqual('fake-post-ticket-BPM');
done();
}
);
@@ -361,7 +361,7 @@ describe('AlfrescoAuthentication', () => {
);
});
- it('should return both ECM and BPM tokens after the login done', (done) => {
+ it('should return both ECM and BPM tickets after the login done', (done) => {
let providers = ['ECM', 'BPM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
@@ -374,14 +374,14 @@ describe('AlfrescoAuthentication', () => {
.subscribe(() => {
expect(service.isLoggedIn(providers[0])).toBe(true);
expect(service.isLoggedIn(providers[1])).toBe(true);
- expect(service.getToken(providers[0])).toEqual('fake-post-token-ECM');
- expect(service.getToken(providers[1])).toEqual('fake-post-token-BPM');
+ expect(service.getTicket(providers[0])).toEqual('fake-post-ticket-ECM');
+ expect(service.getTicket(providers[1])).toEqual('fake-post-ticket-BPM');
done();
}
);
});
- it('should return token undefined when the credentials are correct for the ECM login but wrong for the BPM login', (done) => {
+ it('should return ticket undefined when the credentials are correct for the ECM login but wrong for the BPM login', (done) => {
let providers = ['ECM', 'BPM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
@@ -397,15 +397,15 @@ describe('AlfrescoAuthentication', () => {
},
(err: any) => {
expect(service.isLoggedIn(providers[0])).toBe(false);
- expect(service.getToken(providers[0])).toBeUndefined();
+ expect(service.getTicket(providers[0])).toBeUndefined();
expect(service.isLoggedIn(providers[1])).toBe(false);
- expect(service.getToken(providers[1])).toBeUndefined();
+ expect(service.getTicket(providers[1])).toBeUndefined();
done();
}
);
});
- it('should return token undefined when the credentials are correct for the BPM login but wrong for the ECM login', (done) => {
+ it('should return ticket undefined when the credentials are correct for the BPM login but wrong for the ECM login', (done) => {
let providers = ['ECM', 'BPM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
@@ -422,9 +422,9 @@ describe('AlfrescoAuthentication', () => {
},
(err: any) => {
expect(service.isLoggedIn(providers[0])).toBe(false);
- expect(service.getToken(providers[0])).toBeUndefined();
+ expect(service.getTicket(providers[0])).toBeUndefined();
expect(service.isLoggedIn(providers[1])).toBe(false);
- expect(service.getToken(providers[1])).toBeUndefined();
+ expect(service.getTicket(providers[1])).toBeUndefined();
done();
}
);
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts
index 939f07cd2f..2879eaca92 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthenticationService.service.ts
@@ -26,7 +26,7 @@ import { AlfrescoAuthenticationBase } from './AlfrescoAuthenticationBase.service
declare let AlfrescoApi: any;
/**
- * The AlfrescoAuthenticationService provide the login service and store the token in the localStorage
+ * The AlfrescoAuthenticationService provide the login service and store the ticket in the localStorage
*/
@Injectable()
export class AlfrescoAuthenticationService extends AlfrescoAuthenticationBase {
@@ -78,10 +78,6 @@ export class AlfrescoAuthenticationService extends AlfrescoAuthenticationBase {
return Observable.create(observer => {
Observable.forkJoin(observableBatch).subscribe(
(response: any[]) => {
- this.performeSaveToken();
- /*response.forEach((res) => {
- this.performeSaveToken(res.name, res.token);
- });*/
observer.next(response);
},
(err: any) => {
@@ -91,7 +87,7 @@ export class AlfrescoAuthenticationService extends AlfrescoAuthenticationBase {
}
/**
- * The method return tru if the user is logged in
+ * The method return true if the user is logged in
* @returns {boolean}
*/
isLoggedIn(type: string = 'ECM'): boolean {
@@ -102,36 +98,24 @@ export class AlfrescoAuthenticationService extends AlfrescoAuthenticationBase {
return false;
}
+ getAlfrescoApi(): any {
+ return this.findProviderInstance('ECM').alfrescoApi;
+ }
+
/**
- * Return the token stored in the localStorage of the specific provider type
- * @param token
+ * Return the ticket stored in the localStorage of the specific provider type
+ * @param ticket
*/
- public getToken(type: string = 'ECM'): string {
+ public getTicket(type: string = 'ECM'): string {
let auth: AbstractAuthentication = this.findProviderInstance(type);
if (auth) {
- return auth.getToken();
+ return auth.getTicket();
}
return '';
}
/**
- * Save the token calling the method of the specific provider type
- * @param providerName
- * @param token
- */
- private performeSaveToken() {
- /* let auth: AbstractAuthentication = this.findProviderInstance(type);
- if (auth) {
- auth.saveToken();
- }
- */
- this.providersInstance.forEach((authInstance) => {
- authInstance.saveToken();
- });
- }
-
- /**
- * The method remove the token from the local storage
+ * The method remove the ticket from the local storage
* @returns {Observable}
*/
public logout(): Observable {
@@ -190,7 +174,7 @@ export class AlfrescoAuthenticationService extends AlfrescoAuthenticationBase {
let auth: AbstractAuthentication = null;
if (this.providersInstance && this.providersInstance.length !== 0) {
this.providersInstance.forEach((provider) => {
- if (provider.TYPE === type) {
+ if (provider.TYPE === type.toUpperCase()) {
auth = provider;
}
});
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.service.ts
index 4054068e80..e233aadf4a 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.service.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.service.ts
@@ -18,15 +18,11 @@
import { Injectable } from '@angular/core';
import { AlfrescoAuthenticationService } from './AlfrescoAuthenticationService.service';
-import { AlfrescoSettingsService } from './AlfrescoSettingsService.service';
@Injectable()
export class AlfrescoContentService {
- constructor(
- private settings: AlfrescoSettingsService,
- private authService: AlfrescoAuthenticationService
- ) {
+ constructor(private authService: AlfrescoAuthenticationService) {
}
/**
@@ -34,9 +30,8 @@ export class AlfrescoContentService {
* @param document Node to get URL for.
* @returns {string} URL address.
*/
- getDocumentThumbnailUrl(document: any) {
- return this.settings.getApiBaseUrl() + '/nodes/' + document.entry.id +
- '/renditions/doclib/content' + '?attachment=false&alf_ticket=' + this.authService.getToken();
+ getDocumentThumbnailUrl(document: any): string {
+ return this.authService.alfrescoApi.content.getDocumentThumbnailUrl(document.entry.id);
}
/**
@@ -44,8 +39,7 @@ export class AlfrescoContentService {
* @param document Node to get URL for.
* @returns {string} URL address.
*/
- getContentUrl(document: any) {
- return this.settings.getApiBaseUrl() + '/nodes/' + document.entry.id +
- '/content' + '?attachment=false&alf_ticket=' + this.authService.getToken();
+ getContentUrl(document: any): string {
+ return this.authService.alfrescoApi.content.getContentUrl(document.entry.id);
}
}
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.spec.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.spec.ts
index 760ed8be9e..0537dc364c 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.spec.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContentService.spec.ts
@@ -26,6 +26,8 @@ describe('AlfrescoContentService', () => {
let injector, service: AlfrescoContentService, authService: AlfrescoAuthenticationService;
const nodeId = 'blah';
+ let DEFAULT_CONTEXT_PATH: string = '/alfresco';
+ let DEFAULT_BASE_API_PATH: string = '/api/-default-/public/alfresco/versions/1';
beforeEach(() => {
injector = ReflectiveInjector.resolveAndCreate([
@@ -35,7 +37,7 @@ describe('AlfrescoContentService', () => {
AlfrescoSettingsService
]);
spyOn(localStorage, 'getItem').and.callFake(function (key) {
- return 'myToken';
+ return 'myTicket';
});
service = injector.get(AlfrescoContentService);
authService = injector.get(AlfrescoAuthenticationService);
@@ -47,9 +49,9 @@ describe('AlfrescoContentService', () => {
id: nodeId
}
})).toBe(
- AlfrescoSettingsService.DEFAULT_HOST_ADDRESS + AlfrescoSettingsService.DEFAULT_CONTEXT_PATH +
- AlfrescoSettingsService.DEFAULT_BASE_API_PATH + '/nodes/' + nodeId + '/content' +
- '?attachment=false&alf_ticket=' + authService.getToken()
+ AlfrescoSettingsService.DEFAULT_HOST_ADDRESS + DEFAULT_CONTEXT_PATH +
+ DEFAULT_BASE_API_PATH + '/nodes/' + nodeId + '/content' +
+ '?attachment=false&alf_ticket=' + authService.getTicket()
);
});
@@ -59,9 +61,9 @@ describe('AlfrescoContentService', () => {
id: nodeId
}
})).toBe(
- AlfrescoSettingsService.DEFAULT_HOST_ADDRESS + AlfrescoSettingsService.DEFAULT_CONTEXT_PATH +
- AlfrescoSettingsService.DEFAULT_BASE_API_PATH + '/nodes/' + nodeId + '/renditions/doclib/content' +
- '?attachment=false&alf_ticket=' + authService.getToken()
+ AlfrescoSettingsService.DEFAULT_HOST_ADDRESS + DEFAULT_CONTEXT_PATH +
+ DEFAULT_BASE_API_PATH + '/nodes/' + nodeId + '/renditions/doclib/content' +
+ '?attachment=false&alf_ticket=' + authService.getTicket()
);
});
});
diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoSettingsService.spec.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoSettingsService.spec.ts
index bcc8dd5f0c..b3f61dde03 100644
--- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoSettingsService.spec.ts
+++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoSettingsService.spec.ts
@@ -37,11 +37,4 @@ describe('AlfrescoSettingsService', () => {
expect(service.host).toBe(address);
});
- it('should format api url', () => {
- let address = 'http://192.168.0.1';
- let expectedUrl =
- `${address}${AlfrescoSettingsService.DEFAULT_CONTEXT_PATH}${AlfrescoSettingsService.DEFAULT_BASE_API_PATH}`;
- service.host = address;
- expect(service.getApiBaseUrl()).toBe(expectedUrl);
- });
});
diff --git a/ng2-components/ng2-alfresco-datatable/demo/package.json b/ng2-components/ng2-alfresco-datatable/demo/package.json
index f54af6007b..5396ef02ef 100644
--- a/ng2-components/ng2-alfresco-datatable/demo/package.json
+++ b/ng2-components/ng2-alfresco-datatable/demo/package.json
@@ -40,7 +40,6 @@
"zone.js": "0.6.12",
"license-check": "1.1.5",
- "rimraf": "2.5.2",
"material-design-icons": "2.2.3",
"material-design-lite": "1.1.3",
"ng2-translate": "2.2.2",
@@ -51,6 +50,7 @@
"devDependencies": {
"browser-sync": "2.10.0",
"concurrently": "2.0.0",
+ "rimraf": "2.5.2",
"tslint": "3.8.1",
"typescript": "1.8.10",
"typings": "1.0.4",
diff --git a/ng2-components/ng2-alfresco-datatable/package.json b/ng2-components/ng2-alfresco-datatable/package.json
index 745a109906..efdbb26b6c 100644
--- a/ng2-components/ng2-alfresco-datatable/package.json
+++ b/ng2-components/ng2-alfresco-datatable/package.json
@@ -67,7 +67,6 @@
"reflect-metadata": "0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "0.6.12",
- "rimraf": "2.5.2",
"ng2-translate": "2.2.2",
"ng2-alfresco-core": "0.2.0"
},
@@ -89,6 +88,7 @@
"karma-mocha-reporter": "2.0.3",
"license-check": "1.1.5",
"remap-istanbul": "0.6.3",
+ "rimraf": "2.5.2",
"traceur": "0.0.91",
"tslint": "3.8.1",
"typescript": "1.8.10",
diff --git a/ng2-components/ng2-alfresco-documentlist/demo/index.html b/ng2-components/ng2-alfresco-documentlist/demo/index.html
index 0e4f578378..83e36b9f9c 100644
--- a/ng2-components/ng2-alfresco-documentlist/demo/index.html
+++ b/ng2-components/ng2-alfresco-documentlist/demo/index.html
@@ -20,7 +20,7 @@
-
+
-
+
-
+
-
+