Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ba0f3/rbac.nim
Simple Role-based Access Control library
https://github.com/ba0f3/rbac.nim
access-control acl acl-library rbac role-based role-based-access-control
Last synced: about 1 month ago
JSON representation
Simple Role-based Access Control library
- Host: GitHub
- URL: https://github.com/ba0f3/rbac.nim
- Owner: ba0f3
- License: mit
- Created: 2019-07-25T11:40:41.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-10-01T00:57:50.000Z (almost 3 years ago)
- Last Synced: 2024-05-03T00:15:50.573Z (4 months ago)
- Topics: access-control, acl, acl-library, rbac, role-based, role-based-access-control
- Language: Nim
- Size: 5.86 KB
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# RBAC
Simple Role-based Access Control library### Usage
```nim
import rbactype
Role = enum
Guest, User, Author, Editor, AdministratorSubject = enum
Posts, Users, SettingsPermission = enum
Read, Create, Edit, Delete, EditOthers, DeleteOthers, Managevar acl = newAcl[Role, Subject, Permission]()
acl.addRoles(User, Guest)
acl.addRole(Author, @[User])
acl.addRole(Editor, @[Author])
acl.addRole(Administrator, @[Editor])acl.addSubjects(Posts, Users, Settings)
acl.allow(User, Read, Posts)
acl.allow(Author, Create, Posts)
acl.allow(Author, Edit, Posts)
acl.allow(Author, Delete, Posts)acl.allow(Editor, EditOthers, Posts)
acl.allow(Editor, DeleteOthers, Posts)acl.allow(Administrator, Create, Users)
acl.allow(Administrator, Edit, Users)
acl.allow(Administrator, Delete, Users)acl.allow(Administrator, Manage, Settings)
acl.deny(Guest, Read, Posts)
assert acl.isDenied(Guest, Read, Posts)
```Please find in [tests](tree/master/tests) folder for more examples