rbac 5.0.3 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/RBAC.test.js"],"names":["testRBAC","storage","storageType","describe","rbac","response","permissions","roles","grants","admin","user","permissionsAsObject","article","it","decoded","Permission","decodeName","expect","toBeDefined","action","toBe","resource","RBAC","data","create","should","have","properties","i","length","name","instance","permission","createName","deleteUser","delete_user","granted","grant","createArticle","create_article","can","canAny","canAll","getRole","toBeUndefined","getPermission","rejects","toEqual","Error","revoked","revokeByName","grantByName","get","removed","remove","guest","role","removeByName","exists","existsRole","existsPermission","localrbac","init","scope","getScope","containDeep","localRBAC","password","superadmin","Memory"],"mappings":"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","sourcesContent":["import { RBAC, Permission, Memory/*, Mongoose, Dynamoose, MySql */ } from '../src/index';\nimport should from 'should';\n// import mongoose from 'mongoose';\n// import dynamoose from 'dynamoose';\n\nfunction testRBAC(storage, storageType) {\n describe(`RBAC ${storageType}`, () => {\n let rbac;\n let response;\n\n const permissions = [\n ['create', 'article'],\n ['delete', 'user'],\n ['update', 'article'],\n ];\n\n const roles = ['superadmin', 'admin', 'user', 'guest'];\n\n const grants = {\n admin: ['user', 'delete_user'],\n user: ['create_article', 'update_article'],\n };\n\n const permissionsAsObject = {\n article: ['create', 'update'],\n user: ['delete'],\n };\n\n it('decode permission', () => {\n const decoded = Permission.decodeName('create_article', '_');\n\n expect(decoded).toBeDefined();\n\n expect(decoded.action).toBe('create');\n expect(decoded.resource).toBe('article');\n });\n\n it('should be able to create roles and permissions', async () => {\n rbac = new RBAC({ storage });\n const data = await rbac.create(roles, permissionsAsObject);\n expect(data).toBeDefined();\n\n response = data;\n response.should.have.properties(['roles', 'permissions']);\n\n for (let i = 0; i < roles.length; i += 1) {\n const name = roles[i];\n expect(response.roles[name]).toBeDefined();\n\n const instance = response.roles[name];\n expect(instance.name).toBe(name);\n }\n\n for (let i = 0; i < permissions.length; i += 1) {\n const permission = permissions[i];\n const name = Permission.createName(permission[0], permission[1], '_');\n expect(response.permissions[name]).toBeDefined();\n\n // check name\n const instance = response.permissions[name];\n expect(instance.name).toBe(name);\n }\n });\n\n it('grant permissions for admin', async () => {\n const { admin } = response.roles;\n const deleteUser = response.permissions.delete_user;\n\n const granted = await admin.grant(deleteUser);\n expect(granted).toBe(true);\n });\n\n it('grant permissions for user', async () => {\n const { user } = response.roles;\n const createArticle = response.permissions.create_article;\n await user.grant(createArticle);\n });\n\n it('grant role for admin', async () => {\n const { admin, user } = response.roles;\n\n await admin.grant(user);\n });\n\n it('admin can create article', async () => {\n const { admin } = response.roles;\n\n const can = await admin.can('create', 'article');\n expect(can).toBe(true);\n });\n\n it('admin can delete user', async () => {\n const { admin } = response.roles;\n\n const can = await admin.can('delete', 'user');\n expect(can).toBe(true);\n });\n\n it('user can not delete user', async () => {\n const { user } = response.roles;\n\n const can = await user.can('delete', 'user');\n expect(can).toBe(false);\n });\n\n it('user can create article', async () => {\n const { user } = response.roles;\n\n const can = await user.can('create', 'article');\n expect(can).toBe(true);\n });\n\n it('user can any create article', async () => {\n const { user } = response.roles;\n\n const can = await user.canAny(permissions);\n expect(can).toBe(true);\n });\n\n it('user can all create article', async () => {\n const { user } = response.roles;\n\n const can = await user.canAll(permissions);\n expect(can).toBe(false);\n });\n\n it('admin can all create article', async () => {\n const { admin } = response.roles;\n\n await rbac.grants(grants);\n const can = await admin.canAll(permissions);\n expect(can).toBe(true);\n });\n\n it('should be able to get role', async () => {\n const admin = await rbac.getRole('admin');\n expect(admin.name).toBe('admin');\n });\n\n it('should not be able to get permission through getRole', async () => {\n const permission = await rbac.getRole('create_article');\n expect(permission).toBeUndefined();\n });\n\n it('should be able to get permission', async () => {\n const permission = await rbac.getPermission('create', 'article');\n expect(permission.name).toBe('create_article');\n });\n\n it('should not be able to get role through getPermission', async () => {\n await expect(rbac.getPermission('admin', '')).rejects.toEqual(new Error('Resource is not defined'));\n });\n\n it('should able to revoke permission', async () => {\n const revoked = await rbac.revokeByName('user', 'create_article');\n expect(revoked).toBe(true);\n });\n\n it('user can not create article because it is revoked', async () => {\n const { user } = response.roles;\n\n const can = await user.can('create', 'article');\n expect(can).toBe(false);\n });\n\n it('should able to grant permission again', async () => {\n const granted = await rbac.grantByName('user', 'create_article');\n expect(granted).toBe(true);\n });\n\n it('user can create article because it is granted again', async () => {\n const { user } = response.roles;\n\n const can = await user.can('create', 'article');\n expect(can).toBe(true);\n });\n\n it('should be able to get role', async () => {\n const user = await rbac.get('user');\n expect(user.name).toBe('user');\n });\n\n it('should be able to get permission', async () => {\n const permission = await rbac.get('create_article');\n expect(permission.name).toBe('create_article');\n });\n\n it('should be able to remove permission', async () => {\n const removed = await rbac.remove(response.permissions.create_article);\n expect(removed).toBe(true);\n });\n\n it('should not be able to get removed permission', async () => {\n const permission = await rbac.get('create_article');\n expect(permission).toBeUndefined();\n });\n\n it('should be able to remove role', async () => {\n const removed = await rbac.remove(response.roles.guest);\n expect(removed).toBe(true);\n });\n\n it('should not be able to get removed role', async () => {\n const role = await rbac.get('guest');\n expect(role).toBeUndefined();\n });\n\n it('should be able to remove permission by name', async () => {\n const removed = await rbac.removeByName('delete_user');\n expect(removed).toBe(true);\n });\n\n it('should not be able to get removed permission', async () => {\n const permission = await rbac.get('delete_user');\n expect(permission).toBeUndefined();\n });\n\n it('should able to check existance of role', async () => {\n const exists = await rbac.exists('admin');\n expect(exists).toBe(true);\n });\n\n it('should able to check existance of non exist role', async () => {\n const exists = await rbac.exists('adminooooo');\n expect(exists).toBe(false);\n });\n\n it('should able to check existance of role', async () => {\n const exists = await rbac.existsRole('admin');\n expect(exists).toBe(true);\n });\n\n it('should able to check existance of permission', async () => {\n const exists = await rbac.existsPermission('update', 'article');\n expect(exists).toBe(true);\n });\n\n it('should be able to create roles and permissions with constructor', async () => {\n const localrbac = new RBAC({\n roles,\n permissions: permissionsAsObject,\n grants,\n });\n\n await localrbac.init();\n\n rbac = localrbac;\n\n expect(localrbac).toBeDefined();\n });\n\n it('should be able to get scope for admin', async () => {\n const scope = await rbac.getScope('admin');\n scope.should.containDeep(['delete_user', 'create_article', 'update_article']);\n });\n\n it('should be able to get scope for user', async () => {\n const scope = await rbac.getScope('user');\n scope.should.containDeep(['create_article', 'update_article']);\n });\n\n it('should be able to get scope for more complex object', async () => {\n const localRBAC = new RBAC({\n roles: ['superadmin', 'admin', 'user', 'guest'],\n permissions: {\n user: ['create', 'delete'],\n password: ['change', 'forgot'],\n article: ['create'],\n rbac: ['update'],\n },\n grants: {\n guest: ['create_user', 'forgot_password'],\n user: ['change_password'],\n admin: ['user', 'delete_user', 'update_rbac', 'create_article'],\n superadmin: ['admin'],\n },\n });\n\n await localRBAC.init();\n\n const scope = await localRBAC.getScope('admin');\n scope.should.containDeep(['delete_user', 'update_rbac', 'create_article', 'change_password']);\n });\n });\n}\n\ntestRBAC(new Memory(), 'Memory');\n/*\nconst mongooseStorage = new Mongoose({\n connection: mongoose.connect('mongodb://localhost/rbac'),\n});\n\ntestRBAC(mongooseStorage, 'Mongoose');\n\n\nconst mysqlStorage = new MySql({\n username: 'root',\n password: ''\n});\n\ntestRBAC(mysqlStorage, 'MySql');\n*/\n// dynamoose.AWS.config.update({\n// accessKeyId: 'AKID',\n// secretAccessKey: 'SECRET',\n// region: 'us-west-2',\n// });\n//\n// dynamoose.local();\n//\n// const dynamooseStorage = new Dynamoose({\n// connection: dynamoose,\n// });\n//\n// testRBAC(dynamooseStorage, 'Dynamoose');\n"],"file":"RBAC.test.js"}
package/gulpfile.js DELETED
@@ -1,10 +0,0 @@
1
- import jsdoc from 'gulp-jsdoc3';
2
- import gulp from 'gulp';
3
- import babel from 'gulp-babel';
4
- import config from './jsdocConfig';
5
-
6
- gulp.task('doc', (cb) => {
7
- return gulp.src('./src/**/*.js')
8
- .pipe(babel())
9
- .pipe(jsdoc(config, cb));
10
- });
package/jsdocConfig.js DELETED
@@ -1,20 +0,0 @@
1
- export default {
2
- "tags": {
3
- "allowUnknownTags": true
4
- },
5
- "opts": {
6
- "destination": "./docs/gen"
7
- },
8
- "plugins": [
9
- "plugins/markdown"
10
- ],
11
- };
12
- /*
13
- opts: {
14
- destination: './documentation',
15
- },
16
- templates: {
17
- //path: 'node_modules/jaguarjs-jsdoc',
18
- },
19
- };
20
- */