UNPKG

@yoyoboot/l-52abp-ng

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13.

89 lines 8.78 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@delon/acl"; export class PermissionService { constructor(aclService) { this.aclService = aclService; } /** * 判断是否拥有某权限 * @param permissionName (单个/多个) 权限名称 */ isGranted(permissionName) { if (!permissionName || permissionName.length === 0) { return true; } if (Array.isArray(permissionName)) { return this.aclService.can({ role: permissionName, mode: 'allOf' }); } else { return this.aclService.can(permissionName); } } /** * 添加权限名称 * @param permissionName 添加(单个/多个)权限名称 */ addPermission(permissionName) { if (!permissionName || permissionName.length === 0) { return; } if (Array.isArray(permissionName)) { for (const tmppermissionName of permissionName) { if (this.aclService.data.abilities.find(item => item === tmppermissionName)) { continue; } this.aclService.attachRole([tmppermissionName]); } } else { if (this.aclService.data.abilities.find(item => item === permissionName)) { return; } this.aclService.attachRole([permissionName]); } } /** * 移除单个/多个权限 * @param permissionName (单个/多个)权限名称 */ removePermission(permissionName) { if (!permissionName || permissionName.length === 0) { return; } if (Array.isArray(permissionName)) { this.aclService.removeRole(permissionName); } else { this.aclService.removeRole([permissionName]); } } /** * 清空所有权限 */ clear() { const tmppermissionNames = this.aclService.data.abilities; this.removePermission(tmppermissionNames); } /** * 填充数据 * @param auth abp.auth 数据 */ extend(auth) { const permissions = []; // tslint:disable-next-line:forin for (const key in auth.grantedPermissions) { permissions.push(key); } this.addPermission(permissions); } } PermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, deps: [{ token: i1.ACLService }], target: i0.ɵɵFactoryTarget.Injectable }); PermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.ACLService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbC01MmFicC1uZy9zcmMvYXV0aC9wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFJLENBQUM7SUFFL0M7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLGNBQWlDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEQsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO2dCQUN6QixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsY0FBaUM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNsRCxPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDakMsS0FBSyxNQUFNLGlCQUFpQixJQUFJLGNBQWMsRUFBRTtnQkFDOUMsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FDbkMsRUFDRDtvQkFDQSxTQUFTO2lCQUNWO2dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Y7YUFBTTtZQUNMLElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsRUFDcEU7Z0JBQ0EsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLGNBQWlDO1FBQ2hELElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEQsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsTUFBTSxrQkFBa0IsR0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxJQUFJO1FBQ1QsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLGlDQUFpQztRQUNqQyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDOzsrR0F2RlUsaUJBQWlCO21IQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFDTFNlcnZpY2UgfSBmcm9tICdAZGVsb24vYWNsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY2xTZXJ2aWNlOiBBQ0xTZXJ2aWNlKSB7IH1cblxuICAvKipcbiAgICog5Yik5pat5piv5ZCm5oul5pyJ5p+Q5p2D6ZmQXG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uTmFtZSAo5Y2V5LiqL+WkmuS4qikg5p2D6ZmQ5ZCN56ewXG4gICAqL1xuICBpc0dyYW50ZWQocGVybWlzc2lvbk5hbWU6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFwZXJtaXNzaW9uTmFtZSB8fCBwZXJtaXNzaW9uTmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uTmFtZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjbFNlcnZpY2UuY2FuKHtcbiAgICAgICAgcm9sZTogcGVybWlzc2lvbk5hbWUsXG4gICAgICAgIG1vZGU6ICdhbGxPZidcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5hY2xTZXJ2aWNlLmNhbihwZXJtaXNzaW9uTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOa3u+WKoOadg+mZkOWQjeensFxuICAgKiBAcGFyYW0gcGVybWlzc2lvbk5hbWUg5re75YqgKOWNleS4qi/lpJrkuKop5p2D6ZmQ5ZCN56ewXG4gICAqL1xuICBhZGRQZXJtaXNzaW9uKHBlcm1pc3Npb25OYW1lOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGlmICghcGVybWlzc2lvbk5hbWUgfHwgcGVybWlzc2lvbk5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGVybWlzc2lvbk5hbWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IHRtcHBlcm1pc3Npb25OYW1lIG9mIHBlcm1pc3Npb25OYW1lKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UuZGF0YS5hYmlsaXRpZXMuZmluZChcbiAgICAgICAgICAgIGl0ZW0gPT4gaXRlbSA9PT0gdG1wcGVybWlzc2lvbk5hbWVcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWNsU2VydmljZS5hdHRhY2hSb2xlKFt0bXBwZXJtaXNzaW9uTmFtZV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuYWNsU2VydmljZS5kYXRhLmFiaWxpdGllcy5maW5kKGl0ZW0gPT4gaXRlbSA9PT0gcGVybWlzc2lvbk5hbWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hY2xTZXJ2aWNlLmF0dGFjaFJvbGUoW3Blcm1pc3Npb25OYW1lXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOenu+mZpOWNleS4qi/lpJrkuKrmnYPpmZBcbiAgICogQHBhcmFtIHBlcm1pc3Npb25OYW1lICjljZXkuKov5aSa5LiqKeadg+mZkOWQjeensFxuICAgKi9cbiAgcmVtb3ZlUGVybWlzc2lvbihwZXJtaXNzaW9uTmFtZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAoIXBlcm1pc3Npb25OYW1lIHx8IHBlcm1pc3Npb25OYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHBlcm1pc3Npb25OYW1lKSkge1xuICAgICAgdGhpcy5hY2xTZXJ2aWNlLnJlbW92ZVJvbGUocGVybWlzc2lvbk5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjbFNlcnZpY2UucmVtb3ZlUm9sZShbcGVybWlzc2lvbk5hbWVdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog5riF56m65omA5pyJ5p2D6ZmQXG4gICAqL1xuICBjbGVhcigpIHtcbiAgICBjb25zdCB0bXBwZXJtaXNzaW9uTmFtZXM6IGFueSA9IHRoaXMuYWNsU2VydmljZS5kYXRhLmFiaWxpdGllcztcbiAgICB0aGlzLnJlbW92ZVBlcm1pc3Npb24odG1wcGVybWlzc2lvbk5hbWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDloavlhYXmlbDmja5cbiAgICogQHBhcmFtIGF1dGggYWJwLmF1dGgg5pWw5o2uXG4gICAqL1xuICBleHRlbmQoYXV0aCkge1xuICAgIGNvbnN0IHBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxuICAgIGZvciAoY29uc3Qga2V5IGluIGF1dGguZ3JhbnRlZFBlcm1pc3Npb25zKSB7XG4gICAgICBwZXJtaXNzaW9ucy5wdXNoKGtleSk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRQZXJtaXNzaW9uKHBlcm1pc3Npb25zKTtcbiAgfVxufVxuIl19