Skip to content

Permission System OverviewΒΆ

GeneralManager enforces attribute-based access control (ABAC) through permission classes attached to managers. Permissions evaluate context (request user, manager attributes, related managers) before allowing read or write operations.

Each manager defines a nested Permission class derived from general_manager.permission.base_permission.BasePermission or a subclass such as AdditiveManagerPermission or OverrideManagerPermission. The permission class decides:

  • Whether the user can perform CRUD actions on the manager.
  • Which specific attributes are visible or editable.
  • How permission filters are applied to buckets so that only authorised records are returned.

The following pages dive into detailed patterns:

When you write GraphQL resolvers or REST endpoints, always go through the manager API so that permissions stay consistent across entry points.