Tokko Auth2 flavor.
Project description
Install
# Install from PyPi
pip install tokko-auth
# Install from sources
# Tokko REPO Permission is required
pip install -e git@github.com:TokkoLabs/authorization.git
Import & Configure dj-plugin
your-project/settings.py
# Add app to installed apps
INSTALLED_APPS = [
'tokko_auth'
]
# Also declare app's middleware
MIDDLEWARE = [
# Has request JWT?
"tokko_auth.middleware.HasJWTMiddleware",
# JWT has required NAMESPACE?
"tokko_auth.middleware.NamespaceAuthorizationMiddleware",
# Fill "request.user" attribute
"tokko_auth.middleware.UserRecoverMiddleware",
]
# Finally, declare your AUTH0_DOMAIN
AUTH0_DOMAIN = 'my-auth-sub-dns.auth0.com'
Tools (Future)
future.tools.permission
Users
Retrieve user permissions
from tokko_auth.future.tools.permissions import PermissionProvider
# Provider Initialization
provider = PermissionProvider()
# Retrieve user permission
provider.users.get("user@email.com")
Response:
{
"user_id": "user@email.com",
"permissions": [
"namespace_a:action_1",
"namespace_b:action_1",
"namespace_a:action_2"
]
}
Grant user permission
from tokko_auth.future.tools.permissions import PermissionProvider
# Provider Initialization
provider = PermissionProvider()
# Grant permission
provider.users.grant("user@email.com", "namespace-is-required", "action-is-required")
Response:
{
"success": true
}
Revoke user permission
from tokko_auth.future.tools.permissions import PermissionProvider
# Provider Initialization
provider = PermissionProvider()
# Grant permission
provider.users.revoke("user@email.com", "namespace-is-required", "action-is-required")
Response:
{
"success": true
}
Permissions
List permission
from tokko_auth.future.tools.permissions import PermissionProvider
# Provider Initialization
provider = PermissionProvider()
# Create permission
provider.permissions.list()
# List permissions method also allows filter permissions
# by namespace or action partial
# provider.permissions.list(partial="nam")
# provider.permissions.list(partial="act")
Response:
[{
"namespace": "namespace",
"action": "action",
"permission": "namespace:action",
"description": "description"
}]
Create permission
from tokko_auth.future.tools.permissions import PermissionProvider
# Provider Initialization
provider = PermissionProvider()
# Create permission
provider.permissions.add("namespace-is-required",
"action-is-required",
"description-argument-is-optional")
Response:
{
"namespace": "namespace-is-required",
"action": "action-is-required",
"permission": "namespace-is-required:action-is-required",
"description": "description-argument-is-optional"
}
Delete permission
from tokko_auth.future.tools.permissions import PermissionProvider
# Provider Initialization
provider = PermissionProvider()
# Delete permission
provider.permissions.delete("namespace-is-required", "action-is-required")
Response:
{
"success": true
}
Testing
Local environment
Unit Test
python manage.py test authorization.tests.unit
Service Test
python manage.py test authorization.tests.service
Docker environment
Unit Test
# Require: docker-compose up [-d] [--build]
docker-compose exec app bash -c "python manage.py test authorization.tests.unit"
Service Test
# Require: docker-compose up [-d] [--build]
docker-compose exec app bash -c "python manage.py test authorization.tests.service"
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
tokko_auth-0.1.9.9.tar.gz
(27.1 kB
view hashes)
Built Distribution
Close
Hashes for tokko_auth-0.1.9.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f630feafdeb05607500818f0b157ce866a4651e653ffb01c89f54a08ac0f0dba |
|
MD5 | 3738e9d869f5016ad439f5c70e970e6f |
|
BLAKE2b-256 | 0eab2a808a2fe24123f4bf27d0228761230f107099c989083908b202c20b600f |