def update_memberships()

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


def update_memberships(user):
    """
    Assign a user to its new groups and remove the user from groups it no
    longer belongs to.
    """

    current_memberships = get_memberships(user)
    # assign user to new groups
    for grp in user.qs_groups:
        if grp not in current_memberships:
            QS_CLIENT.create_group_membership(
                MemberName=user.qs_username,
                GroupName=grp,
                AwsAccountId=user.account_id,
                Namespace=user.namespace,
            )
            LOGGER.info(f"[{user.qs_username}] assigned to Group [{grp}].")
    # remove user from old groups
    for grp in current_memberships:
        if grp not in user.qs_groups:
            QS_CLIENT.delete_group_membership(
                MemberName=user.qs_username,
                GroupName=grp,
                AwsAccountId=user.account_id,
                Namespace=user.namespace,
            )
            LOGGER.info(f"[{user.qs_username}] removed from Group [{grp}].")