UNPKG

@alfresco/adf-content-services

Version:
67 lines 9.47 kB
/*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * 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. */ /* eslint-disable @angular-eslint/no-input-rename */ import { Directive, Input, Output, EventEmitter } from '@angular/core'; import { ContentService } from '../../common/services/content.service'; import { NodesApiService } from '../../common/services/nodes-api.service'; import { AllowableOperationsEnum } from '../../common/models/allowable-operations.enum'; import * as i0 from "@angular/core"; import * as i1 from "../../common/services/nodes-api.service"; import * as i2 from "../../common/services/content.service"; export class InheritPermissionDirective { constructor(nodeService, contentService) { this.nodeService = nodeService; this.contentService = contentService; /** Emitted when the node is updated. */ this.updated = new EventEmitter(); /** Emitted when an error occurs. */ this.error = new EventEmitter(); } onInheritPermissionClicked() { this.nodeService.getNode(this.nodeId).subscribe((node) => { if (this.contentService.hasAllowableOperations(node, AllowableOperationsEnum.UPDATEPERMISSIONS)) { const nodeBody = { permissions: { isInheritanceEnabled: !node?.permissions?.isInheritanceEnabled ?? false } }; this.nodeService.updateNode(this.nodeId, nodeBody, { include: ['permissions'] }).subscribe((nodeUpdated) => { this.updated.emit(nodeUpdated); }, (error) => this.error.emit(error)); } else { this.error.emit('PERMISSION_MANAGER.ERROR.NOT-ALLOWED'); } }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: InheritPermissionDirective, deps: [{ token: i1.NodesApiService }, { token: i2.ContentService }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: InheritPermissionDirective, isStandalone: true, selector: "button[adf-inherit-permission], mat-button-toggle[adf-inherit-permission]", inputs: { nodeId: "nodeId" }, outputs: { updated: "updated", error: "error" }, host: { attributes: { "role": "button" }, listeners: { "click": "onInheritPermissionClicked()" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: InheritPermissionDirective, decorators: [{ type: Directive, args: [{ selector: 'button[adf-inherit-permission], mat-button-toggle[adf-inherit-permission]', standalone: true, host: { role: 'button', '(click)': 'onInheritPermissionClicked()' } }] }], ctorParameters: () => [{ type: i1.NodesApiService }, { type: i2.ContentService }], propDecorators: { nodeId: [{ type: Input }], updated: [{ type: Output }], error: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5oZXJpdGVkLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb24tbWFuYWdlci9jb21wb25lbnRzL2luaGVyaXRlZC1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILG9EQUFvRDtBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUFVeEYsTUFBTSxPQUFPLDBCQUEwQjtJQWFuQyxZQUFvQixXQUE0QixFQUFVLGNBQThCO1FBQXBFLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVJ4Rix3Q0FBd0M7UUFFeEMsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZELG9DQUFvQztRQUVwQyxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFd0MsQ0FBQztJQUU1RiwwQkFBMEI7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFO1lBQzNELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2dCQUM5RixNQUFNLFFBQVEsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUM5RyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQ3RGLENBQUMsV0FBaUIsRUFBRSxFQUFFO29CQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDcEMsQ0FBQztZQUNOLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBN0JRLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQVJ0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyRUFBMkU7b0JBQ3JGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsU0FBUyxFQUFFLDhCQUE4QjtxQkFDNUM7aUJBQ0o7aUhBSUcsTUFBTTtzQkFETCxLQUFLO2dCQUtOLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL25vZGVzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEFsbG93YWJsZU9wZXJhdGlvbnNFbnVtIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9hbGxvd2FibGUtb3BlcmF0aW9ucy5lbnVtJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdidXR0b25bYWRmLWluaGVyaXQtcGVybWlzc2lvbl0sIG1hdC1idXR0b24tdG9nZ2xlW2FkZi1pbmhlcml0LXBlcm1pc3Npb25dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2J1dHRvbicsXG4gICAgICAgICcoY2xpY2spJzogJ29uSW5oZXJpdFBlcm1pc3Npb25DbGlja2VkKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBJbmhlcml0UGVybWlzc2lvbkRpcmVjdGl2ZSB7XG4gICAgLyoqIElEIG9mIHRoZSBub2RlIHRvIGFkZC9yZW1vdmUgaW5oZXJpdGVkIHBlcm1pc3Npb25zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9kZUlkOiBzdHJpbmc7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBub2RlIGlzIHVwZGF0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdXBkYXRlZDogRXZlbnRFbWl0dGVyPE5vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vZGVTZXJ2aWNlOiBOb2Rlc0FwaVNlcnZpY2UsIHByaXZhdGUgY29udGVudFNlcnZpY2U6IENvbnRlbnRTZXJ2aWNlKSB7fVxuXG4gICAgb25Jbmhlcml0UGVybWlzc2lvbkNsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMubm9kZVNlcnZpY2UuZ2V0Tm9kZSh0aGlzLm5vZGVJZCkuc3Vic2NyaWJlKChub2RlOiBOb2RlKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKG5vZGUsIEFsbG93YWJsZU9wZXJhdGlvbnNFbnVtLlVQREFURVBFUk1JU1NJT05TKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVCb2R5ID0geyBwZXJtaXNzaW9uczogeyBpc0luaGVyaXRhbmNlRW5hYmxlZDogIW5vZGU/LnBlcm1pc3Npb25zPy5pc0luaGVyaXRhbmNlRW5hYmxlZCA/PyBmYWxzZSB9IH07XG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlU2VydmljZS51cGRhdGVOb2RlKHRoaXMubm9kZUlkLCBub2RlQm9keSwgeyBpbmNsdWRlOiBbJ3Blcm1pc3Npb25zJ10gfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAobm9kZVVwZGF0ZWQ6IE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlZC5lbWl0KG5vZGVVcGRhdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLmVycm9yLmVtaXQoZXJyb3IpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KCdQRVJNSVNTSU9OX01BTkFHRVIuRVJST1IuTk9ULUFMTE9XRUQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19