[ACA-2734] Be able to show an extension based on provider (#1405)

* Ability to disable extension based on provider

* Remove mystake

* Use latest adf
This commit is contained in:
Maurizio Vitale 2020-04-08 20:04:49 +01:00 committed by GitHub
parent 74f49a7df1
commit 3ee61c3d29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 34 additions and 22 deletions

View File

@ -179,6 +179,11 @@
"description": "Unique identifier", "description": "Unique identifier",
"type": "string" "type": "string"
}, },
"provider": {
"description": "Define on which system the user should be authenticate",
"type": "string",
"enum": ["BPM", "ECM", "ALL"]
},
"icon": { "icon": {
"description": "Element icon", "description": "Element icon",
"type": "string" "type": "string"

28
package-lock.json generated
View File

@ -5,25 +5,25 @@
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@alfresco/adf-content-services": { "@alfresco/adf-content-services": {
"version": "3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5", "version": "3.8.0-83e362d31a737200bc9251e9505137f198509d2f",
"resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5.tgz", "resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.8.0-83e362d31a737200bc9251e9505137f198509d2f.tgz",
"integrity": "sha512-C+2t2qe6KXOG1pDq2aSTTiDqohNf0z4gWitI70khQ0bBLzg6arZPLtCoH9sbyojnzUJ9OZrmm8MjCb71wARkQA==", "integrity": "sha512-zazTFT5uMb8J7SKoAwQWYOEAQRyifhtRdoDO02sl5/KKh8BPELH7Ba5wgq+SWOPxUwHq2bR8aESfQvs/64NyIw==",
"requires": { "requires": {
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }
}, },
"@alfresco/adf-core": { "@alfresco/adf-core": {
"version": "3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5", "version": "3.8.0-83e362d31a737200bc9251e9505137f198509d2f",
"resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5.tgz", "resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.8.0-83e362d31a737200bc9251e9505137f198509d2f.tgz",
"integrity": "sha512-IWP2C9fyjOq/RoyVU1LhSz+14mO2JuQUJu9AZ7XfVLAyYAOHVsIOoLTYjjfjhlhlXeGPnwinBpNsbzvrOz3+OA==", "integrity": "sha512-DW4fUWOtopsZLDhadULW8ywJKHqOdZIRE9YoTlT7023U2iAN6eLMBep7zPAcMNRuzRshw5Uteit1k5uLI2lSPw==",
"requires": { "requires": {
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }
}, },
"@alfresco/adf-extensions": { "@alfresco/adf-extensions": {
"version": "3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5", "version": "3.8.0-83e362d31a737200bc9251e9505137f198509d2f",
"resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5.tgz", "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.8.0-83e362d31a737200bc9251e9505137f198509d2f.tgz",
"integrity": "sha512-kaYtmIhO1pcPjnYcyg52Zy51jIxQ2jlkKaGZKc+u5mVy/dQhvb/+JYVhinuWvEhho+fOA6qh+8HHlpDAkbJgag==", "integrity": "sha512-ywg63QF9yPHrbwvYlFqESw+jJWssJhY3DdhfDwrGsDIeqd64S0t7VXPkiWc0alKEMOA+t2mz5xvOifRaqNOcBw==",
"requires": { "requires": {
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }
@ -6717,7 +6717,7 @@
}, },
"http-errors": { "http-errors": {
"version": "1.6.3", "version": "1.6.3",
"resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
"requires": { "requires": {
"depd": "~1.1.2", "depd": "~1.1.2",
@ -8140,13 +8140,13 @@
"dependencies": { "dependencies": {
"core-js": { "core-js": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz",
"integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=",
"dev": true "dev": true
}, },
"es6-promise": { "es6-promise": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
"integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=",
"dev": true "dev": true
}, },
@ -8158,7 +8158,7 @@
}, },
"readable-stream": { "readable-stream": {
"version": "2.0.6", "version": "2.0.6",
"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -8172,7 +8172,7 @@
}, },
"string_decoder": { "string_decoder": {
"version": "0.10.31", "version": "0.10.31",
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true "dev": true
} }

View File

@ -40,9 +40,9 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@alfresco/adf-content-services": "3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5", "@alfresco/adf-content-services": "3.8.0-83e362d31a737200bc9251e9505137f198509d2f",
"@alfresco/adf-core": "3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5", "@alfresco/adf-core": "3.8.0-83e362d31a737200bc9251e9505137f198509d2f",
"@alfresco/adf-extensions": "3.8.0-179bdb2790b85b5316ae2512b5a13e8beffc74f5", "@alfresco/adf-extensions": "3.8.0-83e362d31a737200bc9251e9505137f198509d2f",
"@alfresco/js-api": "3.8.0-17d85a03af98b8dd906f51d10c6887393910e64b", "@alfresco/js-api": "3.8.0-17d85a03af98b8dd906f51d10c6887393910e64b",
"@angular-custom-builders/lite-serve": "0.0.2", "@angular-custom-builders/lite-serve": "0.0.2",
"@angular/animations": "7.2.15", "@angular/animations": "7.2.15",

View File

@ -22,11 +22,11 @@
</ng-template> </ng-template>
</ng-container> </ng-container>
<ng-container *ngIf="!item.component"> <ng-container *ngIf="isLoggedIn(item.provider) && !item.component">
<app-expand-menu [item]="item"></app-expand-menu> <app-expand-menu [item]="item"></app-expand-menu>
</ng-container> </ng-container>
<ng-container *ngIf="item.component"> <ng-container *ngIf="isLoggedIn(item.provider) && item.component">
<adf-dynamic-component <adf-dynamic-component
[data]="{ item: item, state: 'expanded' }" [data]="{ item: item, state: 'expanded' }"
[id]="item.component" [id]="item.component"
@ -51,11 +51,11 @@
</ng-template> </ng-template>
</ng-container> </ng-container>
<ng-container *ngIf="!item.component"> <ng-container *ngIf="isLoggedIn(item.provider) && !item.component">
<app-button-menu [item]="item"></app-button-menu> <app-button-menu [item]="item"></app-button-menu>
</ng-container> </ng-container>
<ng-container *ngIf="item.component"> <ng-container *ngIf="isLoggedIn(item.provider) && item.component">
<adf-dynamic-component <adf-dynamic-component
[data]="{ item: item, state: 'collapsed' }" [data]="{ item: item, state: 'collapsed' }"
[id]="item.component" [id]="item.component"

View File

@ -36,6 +36,7 @@ import { CollapsedTemplateDirective } from './directives/collapsed-template.dire
import { ExpandedTemplateDirective } from './directives/expanded-template.directive'; import { ExpandedTemplateDirective } from './directives/expanded-template.directive';
import { AppExtensionService } from '../../extensions/extension.service'; import { AppExtensionService } from '../../extensions/extension.service';
import { NavBarGroupRef } from '@alfresco/adf-extensions'; import { NavBarGroupRef } from '@alfresco/adf-extensions';
import { AuthenticationService } from '@alfresco/adf-core';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { AppStore, getSideNavState } from '@alfresco/aca-shared/store'; import { AppStore, getSideNavState } from '@alfresco/aca-shared/store';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@ -62,7 +63,8 @@ export class SidenavComponent implements OnInit, OnDestroy {
constructor( constructor(
private store: Store<AppStore>, private store: Store<AppStore>,
private extensions: AppExtensionService private extensions: AppExtensionService,
private authService: AuthenticationService
) {} ) {}
ngOnInit() { ngOnInit() {
@ -80,6 +82,11 @@ export class SidenavComponent implements OnInit, OnDestroy {
}); });
} }
isLoggedIn(provider: string): boolean {
if (provider === undefined) return true;
return this.authService.isLoggedInWith(provider);
}
trackById(_: number, obj: { id: string }) { trackById(_: number, obj: { id: string }) {
return obj.id; return obj.id;
} }