Skip to content

Permission for Almasix

almasix-permission adds roles and permissions to Almasix. Install as almasix.permission:

terminal
pip install almasix-permission
# or from the framework extras:
pip install "almasix[permission]"
app/models/user.py
from almasix.permission import HasRoles, Permission, Role

Mix HasRoles onto your user, create roles and permissions, then check with has_permission_to / has_role — or with user.can(…) via Gate.before.

Framework authorization (Gates and Policies) stays separate: this package plugs into that stack so existing can checks, @can, and can middleware keep working.

  • Roles and permissions (direct or via roles), polymorphic assignment
  • Gate.before so user.can(…), @can, and can middleware work
  • Multi-guard namespacing
  • Teams (permission.teams + set_permissions_team_id)
  • Wildcard permissions (permission.enable_wildcard_permission)
  • Enum names (enum.Enum / StrEnum)
  • Cache + permission:cache-reset
  • Opt-in events (permission.events_enabled)
  • UUID/ULID via permission.key_type before migrate
  • Extending models through permission.models.*

Continue with Installation, or jump to Roles, Permissions, Teams, Middleware and Prism, or Commands.