1.0.4 • Published 4 years ago

react-rbac-lib v1.0.4

Weekly downloads
3
License
ISC
Repository
github
Last release
4 years ago

react-rbac-lib

npm install npm version license Known Vulnerabilities Library

A tiny useful library to integrate role based access control for react (Typescript)

Installation

To use in your projects:

npm install react-rbac-lib --save

Usage

import RBAC from "react-rbac-lib";
import _ from "lodash";

let userData: any;
try {
    const localStorageUserData: any = localStorage.getItem("user");
    userData = JSON.parse(localStorageUserData || "{}");
} catch (error)
const abilities = RBAC.hasAccessFor("member", _.get(userData, "data.role", {})

//eg.Method for user access check
const checkUsrAccess = () => {
    return (
        abilities.can('create', 'userRoleManagement.userAccessPermissions.roleAccess_1')       ||   //returns true
        abilities.can('view', 'userRoleManagement.userAccessPermissions.roleAccess_1')         ||   //returns false
        abilities.can('update', 'userRoleManagement.userAccessPermissions.roleAccess_1')       ||   //returns true
        abilities.can('delete', 'userRoleManagement.userAccessPermissions.roleAccess_1')       ||   //returns false   
        abilities.can('create', 'userRoleManagement.userAccessPermissions.roleAccess_2')       ||   //returns false   
        abilities.can('edit', 'userRoleManagement.userAccessPermissions.roleAccess_2')              //returns false  
    );
};
return (
    checkUsrAccess() && (<ComponentsAccordingToTheUserAccess/>)
);

Sample json data

{
    "data": {
        ".....": {
            .....
            .....
        },
        "role": {
            "isSuperAdminPermission": false,  // [true  - overrides role checks to true.] 
                                              // [false - checks individual role permissions]

            "userRoleManagement": {
                "userAccessPermissions": {
                    "roleAccess_1": {
                        "create": true,
                        "view": false,
                        "update": true,
                        "delete": false,
                    },
                    "roleAccess_2": {
                        "create": false,
                        "edit": false,
                        ......
                        ......
                    }
                },
               ........
               ........
            },
            ...........
            ...........
        }
    },
}

Author

Sreekanth T U Follow on Facebook Follow on LinkedIn Follow on Twitter

License

MIT License. See LICENSE.md for details.

1.0.4

4 years ago

1.0.2

4 years ago

1.0.3

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago