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"
Metadata
Release files for tokko-auth 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tokko_auth-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for tokko_auth-0.2.2-py3-none-any.whl |
Release files / tokko_auth-0.2.2-py3-none-any.whl
| Download URL | tokko_auth-0.2.2-py3-none-any.whl |
|---|---|
| Size | 39.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
191f4e0f0b2f12280992034a4ef560d55ec87d09f9f48d8ad96e295c2189695f
|
|
BLAKE2b-256 checksum How to use checksums |
5352e953616b288396ee43b74f9437402053e8f3d0752c4ed288bb3e0962ef63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6
|
Security for tokko-auth 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.