def apply_user_governance()

in src/pkg/qs_user_gov.py [0:0]


def apply_user_governance(user):
    """
    - Add/Update users in QuickSight.
        - if the namespace does not exist, create it
        - if user does not exist, register the user
        - update the user role.
        - if user role was downgraded - exit.
        - otherwise,
        - if the user's group doesnt exist, create it
        - assign user to its groups
    """

    create_if_not_exists_namespace(user)

    register_if_not_exists_user(user)

    if update_role(user):
        if user.qs_groups:
            create_if_not_exists_groups(user)
            update_memberships(user)