react-permissions
Permissioned Component rendering in React.
Installation
npm install --save react-permissions
Basic Usage
Component Definition
;; const requiredPermissions = "VIEW" "UPDATE"Component { return <div>Hey there i am a component</div> ; } MyComponent requiredPermissions;
requiredPermissions
parameter can be omitted and the required permissions passed as allowedPermissions
props
; const ViewComponent = { return <MyComponent allowedPermissions="VIEW" "UPDATE"/>; } ;
User Permissions
User's permissions array should be set on the static Permissioned.allPermissions
field or a mapper set on Permissioned.mapPermissions
(for store(Redux) connected components)
;; PermissionedallPermissions = "VIEW" "UPDATE" "DELETE" "EDIT" "SIGN_IN" "CREATE_USER" "UPLOAD";
For store connected components
;;; Permissioned{ //map & return an array of user permissions gotten from props } const mapStateToPropsstate ownProps //State to props mapping (redux)Component { return <div>Hey there i am a component<div/> ; };
hasAll
By default, the permisioned component renders if the user has at least one of the allowedPermission
. Set hasAll
prop to true
to require all allowedPermissions
; const ViewComponent = { return <div> <MyComponent hasAll=true allowedPermissions="VIEW" "UPDATE"/> <div/> ; } ;
### Alternate View
You can set an alternate view component which will be render in place of the permissioned component when restricted. Alternate view should be set as a alternateView
prop
; const MyAlternateView = { return <div>You are not allowed to view this<div/> ; }const ViewComponent = { return <div> <MyComponent alternateView=MyAlternateView hasAll=true allowedPermissions="VIEW" "UPDATE"/> <div/> ; } ;
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/IkoroVictor/react-permissions. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The module is available as open source under the terms of the MIT License.