@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
JavaScript
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