Перейти к содержанию

minio_policy_setter

MinioPolicySetter

Service for setting minio policy attribute for sotrans users respectively to their roles

create_new_model_with_minio_policy_attr

create_new_model_with_minio_policy_attr(
    base_user: SotransKeycloakUserCreateModel,
    initial_roles: list[str],
) -> SotransKeycloakUserCreateModelWithMinioPolicy

Get suitable policy from initial roles list and return new updated model

Source code in api/services/minio_policy_setter.py
25
26
27
28
29
30
31
32
33
34
35
def create_new_model_with_minio_policy_attr(
    self,
    base_user: SotransKeycloakUserCreateModel,
    initial_roles: list[str],
) -> SotransKeycloakUserCreateModelWithMinioPolicy:
    """Get suitable policy from initial roles list and return new updated model"""

    policy = self.set_policy_according_to_roles(initial_roles)
    return SotransKeycloakUserCreateModelWithMinioPolicy(
        **base_user.model_dump(exclude_unset=True), policy=policy
    )

set_policy_according_to_roles

set_policy_according_to_roles(
    initial_roles: list[str],
) -> str

Parse list of roles and set policy accordingly

Source code in api/services/minio_policy_setter.py
12
13
14
15
16
17
18
19
20
21
22
23
def set_policy_according_to_roles(self, initial_roles: list[str]) -> str:
    """Parse list of roles and set policy accordingly"""

    # match initial_roles:
    #     case [SotransRole.company_logistician.value] | [
    #         SotransRole.carrier_logistician.value
    #     ]:
    #         policy = "readonly"
    #     case _:
    #         raise UnexpectedUserRoleError
    # return policy
    return "readonly"