rbac

Simple Role-based Access Control Library

Pure Nim score 30/100 · tests present · docs generated

Summary

Latest Version 0.1.1
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-08-11 05:40

Authors

  • Huy Doan

Installation

nimble install rbac
choosenim install rbac
git clone https://github.com/ba0f3/rbac.nim

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
rbac - - - - - - -

Dependencies

Package Version Optional
nim >= 0.20.9 No

Source

Repository https://github.com/ba0f3/rbac.nim
Homepage https://github.com/ba0f3/rbac.nim
Documentation View Documentation
Registry Source nimble_official

README

RBAC

Simple Role-based Access Control library

Usage

import rbac

type
  Role = enum
    Guest, User, Author, Editor, Administrator

  Subject = enum
    Posts, Users, Settings

  Permission = enum
    Read, Create, Edit, Delete, EditOthers, DeleteOthers, Manage


var 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 folder for more examples