Skip to main content

BaseBackend

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

NameTypeDescription
request[HttpRequest](../../../http/request/httprequest.md?sid=django_http_request_httprequest)The current HTTP request object used to provide additional context for authentication
**kwargsdictArbitrary keyword arguments containing credentials such as username and password

Returns

TypeDescription
`UserNone`

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

NameTypeDescription
request[HttpRequest](../../../http/request/httprequest.md?sid=django_http_request_httprequest)The current HTTP request object used to provide additional context for authentication
**kwargsdictArbitrary keyword arguments containing credentials such as username and password

Returns

TypeDescription
`UserNone`

get_user()

@classmethod
def get_user(
user_id: int|str
) - > User|None

Retrieves a user instance from the backend using a unique identifier.

Parameters

NameTypeDescription
user_id`intstr`

Returns

TypeDescription
`UserNone`

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

NameTypeDescription
user_id`intstr`

Returns

TypeDescription
`UserNone`

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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance for which permissions are being queried
obj`ModelNone`

Returns

TypeDescription
setA 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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance for which permissions are being queried
obj`ModelNone`

Returns

TypeDescription
setA 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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance whose group permissions are being queried
obj`ModelNone`

Returns

TypeDescription
setA 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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance whose group permissions are being queried
obj`ModelNone`

Returns

TypeDescription
setA 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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance for which all permissions are being aggregated
obj`ModelNone`

Returns

TypeDescription
setA 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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance for which all permissions are being aggregated
obj`ModelNone`

Returns

TypeDescription
setA 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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance whose permissions are being validated
permstringThe permission codename string to check for
obj`ModelNone`

Returns

TypeDescription
booleanTrue 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

NameTypeDescription
user_obj[User](../models/user.md?sid=django_contrib_auth_models_user)The user instance whose permissions are being validated
permstringThe permission codename string to check for
obj`ModelNone`

Returns

TypeDescription
booleanA coroutine that resolves to True if the user has the permission, otherwise False