-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Description
Hi, I'm the author of Casbin. It is a Go authorization library that supports access control models like ACL, RBAC, ABAC. It's already used in some large systems, mostly web frameworks. See details here: https://github.com/casbin/casbin
I noticed that semaphore still lacks an authorization mechanism, and there's demand for it (see: #344). (Thanks to @matejkramny for pointing it out for me:)) I think a RBAC-based authorization will fit in our scenario. About our scenario, Casbin can provide:
- roles can be global or within a tenant (aka project). So the platform owner can have a global
admin
role, and the project owner will have a localadmin
role, which only works inside his project. - roles can be cascaded. e.g.
admin
role can be a member oftemplate admin
andtask admin
roles. Soadmin
role will have all the permissions that are assigned totemplate admin
andtask admin
. - support permission groups (like roles). This is useful when you want to group the permissions.
- the permission granting and user-role mapping can be persisted in files or database (MySQL, NoSQL, etc), support for other DBs can be added if needed.
So what do you think? I can make PR if it's OK. Thanks!
macau23
Metadata
Metadata
Assignees
Labels
No labels