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
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]