sessions
app.common.middlewares.sessions
Middlewares (clases y funciones) para validación de sesiones de usuario. No modifiques este módulo directamente, hazle una copia y realiza tu propia implementación para la gestión de sesiones, roles y permisos.
Para más información, te recomendamos leer la documentación del Proyecto.
- https://fastapi.tiangolo.com/advanced/using-request-directly/
- https://www.starlette.io/requests/
- https://fastapi.tiangolo.com/pt/tutorial/security/simple-oauth2/
- https://fastapi.tiangolo.com/tutorial/dependencies/
- https://fastapi.tiangolo.com/advanced/advanced-dependencies/
- https://fastapi.tiangolo.com/tutorial/dependencies/classes-as-dependencies/
HasRoles
Una clase utilizada como DI
para obtener una lista con información de los roles, validarlos y utilizarlos dentro de una vista (view).
Notes
- esta clase chequea que al menos uno de los roles exista, en la lista de roles enviados por la vista.
- si no se envía ningún rol, se asigna y se valida el rol de menor privilegio,
AuthRoles.ANONYMOUS_USER
. - esta clase obtiene los datos a validar, del objeto
request.state
para más información, consulta la funciónvalidate_auth_session
enapp.common.middlewares.auth
.
Raises:
Type | Description |
---|---|
HTTPException | una excepción para devolver respuestas HTTP con errores al cliente |
DefaultException | excepciones para el manejo de errores personalizados |
None | en caso de un error |
Examples:
__init__(role_list)
Constructor de la clase HasRoles
Parameters:
Name | Type | Description | Default |
---|---|---|---|
role_list | list[StrictStr] | un lista con los nombres de los roles a validar. | required |
__call__(request)
async
Este método permite que la instancia de esta clase, sea callable
, y de esta manera podemos "parametrizar" nuestra dependencia.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request | Request | una instancia de | required |
Raises:
Type | Description |
---|---|
HTTPException | una excepción para devolver respuestas HTTP con errores al cliente |
DefaultException | excepciones para el manejo de errores personalizados |
None | en caso de un error |
Returns:
Type | Description |
---|---|
Optional[StrictStr] | el rol del obtenido de la |
HasPerms
Una clase utilizada como DI
para obtener una lista con información de los permisos, validarlos y utilizarlos dentro de una vista (view).
Notes
- al menos un permiso es requerido.
- esta clase chequea que todos y cada uno los permisos a validar, existan en la lista de permisos enviados por la vista.
- esta clase obtiene los datos a validar, del objeto
request.state
para más información, consulta la funciónvalidate_auth_session
enapp.common.middlewares.auth
.
Raises:
Type | Description |
---|---|
HTTPException | una excepción para devolver respuestas HTTP con errores al cliente |
DefaultException | excepciones para el manejo de errores personalizados |
None | en caso de un error |
Examples:
__init__(perm_list)
Constructor de la clase HasPerms
Parameters:
Name | Type | Description | Default |
---|---|---|---|
perm_list | list[StrictStr] | una lista con los nombres de los permisos. | required |
__call__(request)
async
Este método permite que la instancia de esta clase, sea callable
, y de esta manera podemos "parametrizar" nuestra dependencia.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request | Request | una instancia de | required |
Raises:
Type | Description |
---|---|
HTTPException | una excepción para devolver respuestas HTTP con errores al cliente |
DefaultException | excepciones para el manejo de errores personalizados |
None | en caso de un error |
Returns:
Type | Description |
---|---|
Optional[list[StrictStr]] | una lista de permisos obtenidos de la |
session_info(request)
Una función utilizada como DI
para obtener un objeto con información de la sesión y utilizarlo dentro de una vista (view).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request | Request | una instancia de | required |
Notes
- esta clase valida que existan algunos campos comunes, en el objeto de la
sesión
. - esta clase obtiene los datos a validar, del objeto
request.state
para más información, consulta la funciónvalidate_auth_session
enapp.common.middlewares.auth
.
Raises:
Type | Description |
---|---|
HTTPException | una excepción para devolver respuestas HTTP con errores al cliente |
DefaultException | excepciones para el manejo de errores personalizados |
None | en caso de un error |
Returns:
Type | Description |
---|---|
Optional[object] | un objeto con la información obtenida de la |
Examples: