All Projects â†’ Exelord â†’ Monarchy

Exelord / Monarchy

Licence: mit
Hierarchical access management system with advanced roles inheritance. 🦋

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Monarchy

Security.identity
.NET DevPack Identity is a set of common implementations to help you implementing Identity, Jwt, claims validation and another facilities
Stars: ✭ 165 (+243.75%)
Mutual labels:  authorization, access-control, roles
Think Authz
An authorization library that supports access control models like ACL, RBAC, ABAC in ThinkPHP 6.0 .
Stars: ✭ 155 (+222.92%)
Mutual labels:  authorization, access-control, roles
Accesscontrolhelper
AccessControlHelper for asp.net mvc and asp.net core, strategy based authorization
Stars: ✭ 71 (+47.92%)
Mutual labels:  authorization, access-control, access
keycloak-restrict-client-auth
A Keycloak authenticator to restrict authorization on clients
Stars: ✭ 34 (-29.17%)
Mutual labels:  roles, authorization, access-control
Ngx Permissions
Permission and roles based access control for your angular(angular 2,4,5,6,7,9+) applications(AOT, lazy modules compatible
Stars: ✭ 749 (+1460.42%)
Mutual labels:  access-control, roles, access
ngx-access
Add access control to your components using hierarchical configuration with logical expressions.
Stars: ✭ 21 (-56.25%)
Mutual labels:  roles, access, access-control
Accesscontrol
Role and Attribute based Access Control for Node.js
Stars: ✭ 1,723 (+3489.58%)
Mutual labels:  authorization, access-control, roles
Php Casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in PHP .
Stars: ✭ 865 (+1702.08%)
Mutual labels:  authorization, access-control, roles
nova-permissions
Add Permissions based authorization for your Nova installation via User-based Roles and Permissions. Roles are defined in the database whereas Permissions are defined in the code base.
Stars: ✭ 115 (+139.58%)
Mutual labels:  roles, authorization, access-control
Access Granted
Multi-role and whitelist based authorization gem for Rails (and not only Rails!)
Stars: ✭ 733 (+1427.08%)
Mutual labels:  rails, authorization, access-control
Laravel Acl
This package helps you to associate users with permissions and permission groups with laravel framework
Stars: ✭ 404 (+741.67%)
Mutual labels:  authorization, access-control
Casbin Rs
An authorization library that supports access control models like ACL, RBAC, ABAC in Rust.
Stars: ✭ 375 (+681.25%)
Mutual labels:  authorization, access-control
Gorm Adapter
Gorm adapter for Casbin
Stars: ✭ 373 (+677.08%)
Mutual labels:  authorization, access-control
Xorm Adapter
Xorm adapter for Casbin
Stars: ✭ 329 (+585.42%)
Mutual labels:  authorization, access-control
Role Acl
Role based access control using actions, attributes and sync and async conditions
Stars: ✭ 502 (+945.83%)
Mutual labels:  access-control, roles
Policyserver.local
Sample OSS version of PolicyServer
Stars: ✭ 444 (+825%)
Mutual labels:  authorization, roles
Awesome Auth
📊 Software and Libraries for Authentication & Authorization
Stars: ✭ 520 (+983.33%)
Mutual labels:  authorization, access-control
Cancancan
The authorization Gem for Ruby on Rails.
Stars: ✭ 5,046 (+10412.5%)
Mutual labels:  rails, authorization
Pycasbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Python
Stars: ✭ 625 (+1202.08%)
Mutual labels:  authorization, access-control
Six
Ultra lite authorization library
Stars: ✭ 323 (+572.92%)
Mutual labels:  rails, authorization

Sublime's custom image

Monarchy is a ruby gem offering a complete solution to manage an authorization access in Ruby on Rails applications. A hierarchical structure as well as built-in roles inheritance options make it the most powerful tool to control access to application data resources.

Thanks to closure_tree - a gem used to manage binary trees - Monarchy can deliver the best-in-class algorithmic performance and enables developers to forget about hierarchies and complicated structures.

If you feel limited while using rolify, feel free to use Monarchy with its advanced capacity to inherit roles and collect all accessible resources with just one method.

Usage Example

After Monarchy setup you can enjoy with roles inheritance and accessible resources.

# Create roles
admin_role = Monarchy.role_class.create(name: :admin, level: 5, inherited: true)
manager_role = Monarchy.role_class.create(name: :manager, level: 4, inherited_role: admin_role, inherited: true)

# Create resources
project1 = Project.create()
project2 = Project.create(parent: project1)
project3 = Project.create(parent: project2)
project4 = Project.create(parent: project1)

# Grant user
user.grant(:manager, project2)

# Accessible projects
Project.accessible_for(user)  # returns [project1, project2, project3]

# User inherited roles
user.roles_for(project1) # returns a default role eg. [guest_role]
user.roles_for(project2) # returns [manager_role]
user.roles_for(project3) # returns [admin_role]
user.roles_for(project4) # returns empty array []

# Graphical visualization

#                              project1 (default role, eg. guest)
#                                 |
#                                 |
#   (granted as manager) project2   project4 (no access)
#                           |
#                           |
#                        project3 (admin | inherited role from manager_role)

Requirements

Monarchy requires:

  • Ruby 2.3

Documentation

We are preparing an official website with documentation. Meanwhile you can look to the docs directory for actual documentation.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/exelord/Monarchy. 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

This version of the gem is available as open source under the terms of the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].