This class serves as a base for implementing authentication backends, providing a standard interface for user authentication and permission retrieval. It defines methods for fetching user instances and calculating granular user, group, or global permissions. The class supports both synchronous and asynchronous execution patterns for all core operations.
Methods
authenticate()
@classmethod
def authenticate(
request: [HttpRequest](../../../http/request/httprequest.md?sid=django_http_request_httprequest),
**kwargs: dict
) - > User|None
Authenticates a user based on the provided credentials and request context.
Parameters
| Name | Type | Description |
|---|
| request | [HttpRequest](../../../http/request/httprequest.md?sid=django_http_request_httprequest) | The current HTTP request object used to provide additional context for authentication |
| **kwargs | dict | Arbitrary keyword arguments containing credentials such as username and password |
Returns
| Type | Description |
|---|
| `User | None` |
aauthenticate()
@classmethod
def aauthenticate(
request: [HttpRequest](../../../http/request/httprequest.md?sid=django_http_request_httprequest),
**kwargs: dict
) - > User|None
Asynchronously authenticates a user by wrapping the synchronous authenticate method.
Parameters
| Name | Type | Description |
|---|
| request | [HttpRequest](../../../http/request/httprequest.md?sid=django_http_request_httprequest) | The current HTTP request object used to provide additional context for authentication |
| **kwargs | dict | Arbitrary keyword arguments containing credentials such as username and password |
Returns
| Type | Description |
|---|
| `User | None` |
get_user()
@classmethod
def get_user(
user_id: int|str
) - > User|None
Retrieves a user instance from the backend using a unique identifier.
Parameters
| Name | Type | Description |
|---|
| user_id | `int | str` |
Returns
| Type | Description |
|---|
| `User | None` |
aget_user()
@classmethod
def aget_user(
user_id: int|str
) - > User|None
Asynchronously retrieves a user instance from the backend using a unique identifier.
Parameters
| Name | Type | Description |
|---|
| user_id | `int | str` |
Returns
| Type | Description |
|---|
| `User | None` |
get_user_permissions()
@classmethod
def get_user_permissions(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
obj: Model|None
) - > set
Fetches the set of specific permissions assigned directly to the user.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance for which permissions are being queried |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
set | A set of permission strings belonging directly to the user |
aget_user_permissions()
@classmethod
def aget_user_permissions(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
obj: Model|None
) - > set
Asynchronously fetches the set of specific permissions assigned directly to the user.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance for which permissions are being queried |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
set | A coroutine that resolves to a set of permission strings |
get_group_permissions()
@classmethod
def get_group_permissions(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
obj: Model|None
) - > set
Fetches the set of permissions the user inherits from their group memberships.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance whose group permissions are being queried |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
set | A set of permission strings derived from the user's groups |
aget_group_permissions()
@classmethod
def aget_group_permissions(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
obj: Model|None
) - > set
Asynchronously fetches the set of permissions the user inherits from their group memberships.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance whose group permissions are being queried |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
set | A coroutine that resolves to a set of group-derived permission strings |
get_all_permissions()
@classmethod
def get_all_permissions(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
obj: Model|None
) - > set
Aggregates both direct user permissions and inherited group permissions into a single set.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance for which all permissions are being aggregated |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
set | A combined set of all permission strings available to the user |
aget_all_permissions()
@classmethod
def aget_all_permissions(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
obj: Model|None
) - > set
Asynchronously aggregates both direct user permissions and inherited group permissions.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance for which all permissions are being aggregated |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
set | A coroutine that resolves to a combined set of all permission strings |
has_perm()
@classmethod
def has_perm(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
perm: string,
obj: Model|None
) - > boolean
Determines if a user has a specific permission by checking their aggregated permissions.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance whose permissions are being validated |
| perm | string | The permission codename string to check for |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
boolean | True if the user has the specified permission, False otherwise |
ahas_perm()
@classmethod
def ahas_perm(
user_obj: [User](../models/user.md?sid=django_contrib_auth_models_user),
perm: string,
obj: Model|None
) - > boolean
Asynchronously determines if a user has a specific permission.
Parameters
| Name | Type | Description |
|---|
| user_obj | [User](../models/user.md?sid=django_contrib_auth_models_user) | The user instance whose permissions are being validated |
| perm | string | The permission codename string to check for |
| obj | `Model | None` |
Returns
| Type | Description |
|---|
boolean | A coroutine that resolves to True if the user has the permission, otherwise False |