https://github.com/arcletproject/cithun
FS-Like Permission System
https://github.com/arcletproject/cithun
Last synced: 2 months ago
JSON representation
FS-Like Permission System
- Host: GitHub
- URL: https://github.com/arcletproject/cithun
- Owner: ArcletProject
- License: mit
- Created: 2022-02-09T15:53:30.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-12-18T01:20:20.000Z (4 months ago)
- Last Synced: 2025-12-19T14:13:37.948Z (4 months ago)
- Language: Python
- Homepage:
- Size: 264 KB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cithun
仿照 Linux 下的文件权限系统实现的权限管理系统。
## 特性
- 通过类似 Linux 下的文件权限系统的方式管理权限
- 支持用户组
- 支持用户组继承
## Example
```python
from arclet.cithun import Permission
from arclet.cithun.builtins import System
system = System("data.json")
with system.transaction():
AUTH_1 = system.create_role("ROLE_AUTH_1", "AUTH_1")
AUTH_2 = system.create_role("ROLE_AUTH_2", "AUTH_2")
AUTH_3 = system.create_role("ROLE_AUTH_3", "AUTH_3")
AUTH_4 = system.create_role("ROLE_AUTH_4", "AUTH_4")
AUTH_5 = system.create_role("ROLE_AUTH_5", "AUTH_5")
system.inherit(AUTH_2, AUTH_1)
system.inherit(AUTH_3, AUTH_2)
system.inherit(AUTH_4, AUTH_3)
system.inherit(AUTH_5, AUTH_4)
alice = system.create_user("alice", "Alice")
bob = system.create_user("bob", "Bob")
carol = system.create_user("carol", "Carol")
system.inherit(alice, AUTH_1)
system.inherit(bob, AUTH_3)
system.inherit(carol, AUTH_5)
system.assign(AUTH_1, "app", Permission.AVAILABLE)
system.assign(AUTH_3, "app", Permission.VISIT)
system.assign(AUTH_5, "app.data", Permission.AVAILABLE | Permission.VISIT | Permission.MODIFY)
system.assign(AUTH_4, "app.secret", Permission.AVAILABLE | Permission.VISIT)
system.assign(alice, "app.data", Permission.MODIFY)
system.assign(bob, "app.config", Permission.MODIFY)
system.depend(alice, "app.data", AUTH_4, "app.secret", Permission.VISIT)
system.depend(bob, "app.config", alice, "app.data",Permission.VISIT)
```