ngx permission
Table of contents
About
Angular 2 or Angular 4 implementation of angular-permissionInstallation
Install through npm: ``` npm install --save ngx-permission ``` Then include in your apps module: ```typescript import { NgModule } from '@angular/core'; import { NgxPermissionModule } from 'ngx-permission'; @NgModule({ imports:NgxPermissionModule
})
export class MyModule {}
```
Define role and role validation function by RoleStoreService
```typescript
export class AppComponent {
constructor(roleStoreService:RoleStoreService) {
const adminRole: Role = {
name: 'admin',
validationFunction: () => false
};
const userRole: Role = {
name: 'user',
validationFunction: () => true //boolean or Promise<boolean>
};
roleStoreService.defineRole(adminRole);
roleStoreService.defineRole(userRole);
// or roleStoreService.defineManyRoles([adminRole, userRole])
}
}
```
Now you can use onlyForRoles and exceptRoles directives in your components:
```typescript
import { Component } from '@angular/core';
@Component({
template: `onlyForRoles="'user'">user can see this
<div *onlyForRoles="['admin']">user can't see this</div>`
})
export class MyComponent {}
```
Router
set canActivate property RouterConnector class ``` { path: 'about', component: AboutComponent, data: {ngxPermissions: {
only: ['user']
}
},
canActivate: RouterConnector
},
{
path: 'secret',
component: SectetDataComponent,
data: {
ngxPermissions: {
exept: ['user'],
redirectTo: 'about'
}
},
canActivate: RouterConnector
}
```
Usage without a module bundler
``` ```Documentation
All documentation is auto-generated from the source via compodoc and can be viewed here: https://TekVanDo.github.io/ngx-permission/docs/Roadmap
implements forRoot and forChild functions add support for observables implements permissions improve documentation better tests coverage nested rolesDevelopment
Prepare your environment
- Install Node.js and NPM
- Install local dev dependencies:
npm install
while current directory is this repo
Development server
Runnpm start
to start a development server on port 8000 with auto reload + tests.
Testing
Runnpm test
to run tests once or npm run test:watch
to continually run tests.
Release
- Bump the version in package.json (once the module hits 1.0 this will become automatic)