ngx-permission
v0.2.1
Published
[![Build Status](https://travis-ci.org/TekVanDo/ngx-permission.svg?branch=master)](https://travis-ci.org/TekVanDo/ngx-permission) [![codecov](https://codecov.io/gh/TekVanDo/ngx-permission/branch/master/graph/badge.svg)](https://codecov.io/gh/TekVanDo/ngx
Downloads
324
Maintainers
Readme
ngx permission
Table of contents
About
Angular 2 or Angular 4 implementation of angular-permission
Installation
Install through npm:
npm install --save ngx-permission
Then include in your apps module:
import { NgModule } from '@angular/core';
import { NgxPermissionModule } from 'ngx-permission';
@NgModule({
imports: [
NgxPermissionModule
]
})
export class MyModule {}
Define role and role validation function by RoleStoreService
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:
import { Component } from '@angular/core';
@Component({
template: `<div *onlyForRoles="['user']">user can see this</div>
<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
<script src="node_modules/ngx-permission/bundles/ngx-permission.umd.js"></script>
<script>
// everything is exported ngxPermission namespace
</script>
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 roles
Development
Prepare your environment
- Install Node.js and NPM
- Install local dev dependencies:
npm install
while current directory is this repo
Development server
Run npm start
to start a development server on port 8000 with auto reload + tests.
Testing
Run npm 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)
npm run release
License
MIT