def create_user_roles()

in lemur/auth/views.py [0:0]


def create_user_roles(profile):
    """Creates new roles based on profile information.

    :param profile:
    :return:
    """
    roles = []

    # update their google 'roles'
    if "googleGroups" in profile:
        for group in profile["googleGroups"]:
            role = role_service.get_by_name(group)
            if not role:
                role = role_service.create(
                    group,
                    description="This is a google group based role created by Lemur",
                    third_party=True,
                )
            if not role.third_party:
                role = role_service.set_third_party(role.id, third_party_status=True)
            roles.append(role)
    else:
        current_app.logger.warning(
            "'googleGroups' not sent by identity provider, no specific roles will assigned to the user."
        )

    role = role_service.get_by_name(profile["email"])

    if not role:
        role = role_service.create(
            profile["email"],
            description="This is a user specific role",
            third_party=True,
        )
    if not role.third_party:
        role = role_service.set_third_party(role.id, third_party_status=True)

    roles.append(role)

    # every user is an operator (tied to a default role)
    if current_app.config.get("LEMUR_DEFAULT_ROLE"):
        default = role_service.get_by_name(current_app.config["LEMUR_DEFAULT_ROLE"])
        if not default:
            default = role_service.create(
                current_app.config["LEMUR_DEFAULT_ROLE"],
                description="This is the default Lemur role.",
            )
        if not default.third_party:
            role_service.set_third_party(default.id, third_party_status=True)
        roles.append(default)

    return roles