Exemplo n.º 1
0
    def load_data(self, data):
        if data.get("replacements"):
            data["replaces"] = data[
                "replacements"]  # TODO remove when field is deprecated

        if data.get("owner"):
            # Check if role already exists. This avoids adding duplicate role.
            if data.get("roles") and any(
                    r.get("name") == data["owner"] for r in data["roles"]):
                return data

            # Add required role
            owner_role = roles_service.get_or_create(
                data["owner"],
                description=
                f"Auto generated role based on owner: {data['owner']}")

            # Put  role info in correct format using RoleNestedOutputSchema
            owner_role_dict = RoleNestedOutputSchema().dump(owner_role).data
            if data.get("roles"):
                data["roles"].append(owner_role_dict)
            else:
                data["roles"] = [owner_role_dict]

        return data
Exemplo n.º 2
0
def create_certificate_roles(**kwargs):
    # create a role for the owner and assign it
    owner_role = role_service.get_or_create(
        kwargs["owner"],
        description=f"Auto generated role based on owner: {kwargs['owner']}"
    )

    # ensure that the authority's owner is also associated with the certificate
    if kwargs.get("authority"):
        authority_owner_role = role_service.get_by_name(kwargs["authority"].owner)
        return [owner_role, authority_owner_role]

    return [owner_role]