Roles¶
roles
¶
Role-based access control (RBAC) core logic.
Provides business logic for role and permission management including creation, assignment, and permission checking.
Classes¶
RoleNotFoundError
¶
Bases: Exception
Raised when a role is not found.
PermissionNotFoundError
¶
Bases: Exception
Raised when a permission is not found.
RoleAlreadyExistsError
¶
Bases: Exception
Raised when trying to create a role that already exists.
PermissionAlreadyExistsError
¶
Bases: Exception
Raised when trying to create a permission that already exists.
Functions¶
create_role
¶
create_role(
*, roles: RoleAdapter, name: str, description: str | None = None
) -> Any
Create a new role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
name |
str
|
Unique role name |
required |
description |
str | None
|
Optional role description |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Created role object |
Raises:
| Type | Description |
|---|---|
RoleAlreadyExistsError
|
If a role with the name already exists |
Source code in fastauth/core/roles.py
create_permission
¶
create_permission(
*, roles: RoleAdapter, name: str, description: str | None = None
) -> Any
Create a new permission.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
name |
str
|
Unique permission name |
required |
description |
str | None
|
Optional permission description |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Created permission object |
Raises:
| Type | Description |
|---|---|
PermissionAlreadyExistsError
|
If a permission with the name already exists |
Source code in fastauth/core/roles.py
assign_role
¶
assign_role(*, roles: RoleAdapter, user_id: UUID, role_name: str) -> None
Assign a role to a user by role name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
role_name |
str
|
Name of the role to assign |
required |
Raises:
| Type | Description |
|---|---|
RoleNotFoundError
|
If the role does not exist |
Source code in fastauth/core/roles.py
remove_role
¶
remove_role(*, roles: RoleAdapter, user_id: UUID, role_name: str) -> None
Remove a role from a user by role name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
role_name |
str
|
Name of the role to remove |
required |
Raises:
| Type | Description |
|---|---|
RoleNotFoundError
|
If the role does not exist |
Source code in fastauth/core/roles.py
assign_permission_to_role
¶
assign_permission_to_role(
*, roles: RoleAdapter, role_name: str, permission_name: str
) -> None
Assign a permission to a role by names.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
role_name |
str
|
Name of the role |
required |
permission_name |
str
|
Name of the permission to assign |
required |
Raises:
| Type | Description |
|---|---|
RoleNotFoundError
|
If the role does not exist |
PermissionNotFoundError
|
If the permission does not exist |
Source code in fastauth/core/roles.py
check_permission
¶
check_permission(
*, roles: RoleAdapter, user_id: UUID, permission_name: str
) -> bool
Check if a user has a specific permission through any of their roles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
permission_name |
str
|
Name of the permission to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if user has the permission, False otherwise |
Source code in fastauth/core/roles.py
get_user_roles
¶
get_user_roles(*, roles: RoleAdapter, user_id: UUID) -> list[Any]
Get all roles assigned to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
Returns:
| Type | Description |
|---|---|
list[Any]
|
List of role objects |
Source code in fastauth/core/roles.py
get_user_permissions
¶
get_user_permissions(*, roles: RoleAdapter, user_id: UUID) -> list[Any]
Get all permissions for a user across all their roles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
Returns:
| Type | Description |
|---|---|
list[Any]
|
List of permission objects |
Source code in fastauth/core/roles.py
get_role_permissions
¶
get_role_permissions(*, roles: RoleAdapter, role_name: str) -> list[Any]
Get all permissions assigned to a role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roles |
RoleAdapter
|
Role adapter for database operations |
required |
role_name |
str
|
Name of the role |
required |
Returns:
| Type | Description |
|---|---|
list[Any]
|
List of permission objects |
Raises:
| Type | Description |
|---|---|
RoleNotFoundError
|
If the role does not exist |