Saltar a contenido

Roles

Los roles predefinidos en Callisto, se encuentran en el archivo app/common/auth/roles.py

Definición

class AuthRoles(str, Enum):
    GOTU = "GOTU"  # God Of The Universe
    COMPANY_OWNER = "COMPANY_OWNER"
    REGULAR_USER = "REGULAR_USER"
    AUDITOR = "AUDITOR"
    EXECUTIVE = "EXECUTIVE"
    BUSINESS_ANALYST = "BUSINESS_ANALYST"
    ANONYMOUS_USER = "ANONYMOUS_USER"

    ALL_ROLES: list[str] = [
        "GOTU",
        "COMPANY_OWNER",
        "REGULAR_USER",
        "AUDITOR",
        "EXECUTIVE",
        "BUSINESS_ANALYST",
        "ANONYMOUS_USER",
    ]

Ejemplo

1
2
3
4
5
6
7
8
from app.common.auth.roles import AuthRoles
...

match roles:
    case AuthRoles.COMPANY_OWNER:
        filter = {"company_id": company_id, "status": DefaultStatus.Active}
    case _:
        return response(403, HTTPStatus.FORBIDDEN, error="invalid role")

Para tener en cuenta

Los nombres de roles definidos en esta clase, son utilizados en diferentes partes de Callisto, por lo que es importante, si los cambia, que correspondan con los nombres de roles que definas para tu proyecto.