Alternative to admin utilities for more autonomy, targeted towards FastAPI.
Project description
Permissions Systems
It's plugin for fastapi (but can be used with similar frameworks) any frameworks, that provides a minimal
setup for maintaining resources and related permissions for user-groups.
How to use it?
application.py
from fastapi import FastAPI
import databases
import sqlalchemy
import os
from permissions_system.PermissionsSystemDatabases import PermissionsS
app = FastAPI()
DB_URI = os.environ["DB_URI"]
database = databases.Database(DB_URI)
metadata = sqlalchemy.MetaData()
ps = PermissionsS(metadata, database, DB_URI)
app.add_event_handler("startup", startup)
app.add_event_handler("shutdown", shutdown)
async def startup():
await database.connect()
ps.setup()
for Flask app you will call ps.setup() after db.init(app), assuming you are using flask_sqlalchemy
Step1 - instantiate PermissionsS class.
Step2 - during startup event after database is connected make a call to setup() ************_************
_PermissionsS will then detect your tables add them to resources, add super-admin user-group, if there isn't already one. Everytime there is a new resource that gets added automatically to resources table. User-group super-admin by default has all CRUD permissions for all resources. To add a new user-group and related permissions use built-in functions add_user_group and add_permissions. To get whether a particular user has CRUD permissions for a particular resource you will call > ps.user_has_permissions(user_id:UUID,resource:str,permission_type:PermissionTypesEnum) -> bool*
PermissionsSystem is not like django-admin or flask-admin. It doesn't provide a front-end admin dashboard, but a minimal setup to manage resources and permissions. It aims to provide autonomy and more control over to the developer. For front-end you will end up using something more custom or React-admin or vue-element-admin
Find an example here, to learn how it can be used.
PermissionsSystem now only uses sqlalchemy and is completely sync.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file permissions-system-0.2.3.tar.gz
.
File metadata
- Download URL: permissions-system-0.2.3.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 683bd4f49c5aa553f59d1c84cffb7b7c8d88bba78ea10060eb240cf6c43e35c7 |
|
MD5 | 65e71570893193d7d98928a0d204f908 |
|
BLAKE2b-256 | 8be7fa6484c47e451e5034351bae73b3bd279017c9404e0209b4e885d76aee4c |
File details
Details for the file permissions_system-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: permissions_system-0.2.3-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | db1b6d9fe41c8db76bbf6a7a44b04f03f3dc6eb6e8be25cada30d32a37517520 |
|
MD5 | 566a92efbf0e61ebb23998194e1bc0b7 |
|
BLAKE2b-256 | d6a64b92f0758a6bf3f1cac0f637a1b1b2b4b71e9dd28d8f0adc492de536868a |