|
|
|
@ -4,8 +4,6 @@ A permission is a simple policy that is granted or prohibited for a particular u
|
|
|
|
|
|
|
|
|
|
You can get permission of authenticated user using `getGrantedPolicy` or `getGrantedPolicy$` method of `PermissionService`.
|
|
|
|
|
|
|
|
|
|
> ConfigState's getGrantedPolicy selector and ConfigStateService's getGrantedPolicy method deprecated. Use permission service's `getGrantedPolicy$` or `getGrantedPolicy`methods instead
|
|
|
|
|
|
|
|
|
|
You can get permission as boolean value:
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
@ -77,4 +75,46 @@ const routes: Routes = [
|
|
|
|
|
];
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Granted Policies are stored in the `auth` property of `ConfigState`.
|
|
|
|
|
## Customization
|
|
|
|
|
|
|
|
|
|
In some cases, a custom permission management may be needed. All you need to do is to replace the service with your own. Here is how to achieve this:
|
|
|
|
|
|
|
|
|
|
- First, create a service of your own. Let's call it `CustomPermissionService` and extend `PermissionService` from `@abp/ng.core` as follows:
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
import { ConfigStateService, PermissionService } from '@abp/ng.core';
|
|
|
|
|
import { Injectable } from '@angular/core';
|
|
|
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
|
providedIn: 'root',
|
|
|
|
|
})
|
|
|
|
|
export class CustomPermissionService extends PermissionService {
|
|
|
|
|
constructor(configStateService: ConfigStateService) {
|
|
|
|
|
super(configStateService);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This is an example to show how to override the methods
|
|
|
|
|
getGrantedPolicy$(key: string) {
|
|
|
|
|
return super.getGrantedPolicy$(key);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- Then, in `app.module.ts`, provide this service as follows:
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
@NgModule({
|
|
|
|
|
// ...
|
|
|
|
|
providers: [
|
|
|
|
|
// ...
|
|
|
|
|
{
|
|
|
|
|
provide: PermissionService,
|
|
|
|
|
useExisting: CustomPermissionService,
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
// ...
|
|
|
|
|
})
|
|
|
|
|
export class AppModule {}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
That's it. Now, when a directive/guard asks for `PermissionService` from angular, it will inject your service.
|
|
|
|
|