def insert_ow4_user_into_groups(domain, user, group_names, suppress_http_errors=False): """ Inserts a single OW4 user into a G Suite group. :param domain: The domain in which to insert a user into a group. :type domain: str :param user: The user to update group memberships for. :type user: apps.authentication.models.OnlineUser :param group_names: A list of group names to insert the user into. :type group_names: list :param suppress_http_errors: Whether or not to suppress HttpErrors happening during execution. :type suppress_http_errors: bool """ groups = [ "{group}@{domain}".format(group=group_name, domain=domain) for group_name in group_names ] if groups: logger.info( 'Inserting {user} into some new G Suite groups.'.format(user=user), extra={ 'new_groups': group_names, 'user': user }) for group in groups: insert_ow4_user_into_g_suite_group( domain, group, user, suppress_http_errors=suppress_http_errors)
def test_insert_ow4_user_into_g_suite_group_no_online_mail( self, mocked_logger): user = G(OnlineUser, online_mail=None) insert_ow4_user_into_g_suite_group(self.domain, self.group, user) mocked_logger.assert_called_with( "OW4 User '{user}' ({user.pk}) missing Online email address! " "(current: '{user.online_mail}')".format(user=user), extra={ 'user': user, 'group': self.group })
def test_insert_ow4_user_into_g_suite_group_no_online_mail( self, mocked_logger): user = G(OnlineUser, online_mail=None) insert_ow4_user_into_g_suite_group(self.domain, self.group, user) mocked_logger.assert_called_with( f"OW4 User '{user}' ({user.pk}) missing Online email address! " f"(current: '{user.online_mail}')", extra={ "user": user, "group": self.group }, )
def test_insert_ow4_user_into_g_suite_group_no_online_mail( self, mocked_gsuite_client, mocked_logger ): group_name = list(settings.OW4_GSUITE_SYNC.get("GROUPS").keys())[0] user = G(OnlineUser, online_mail=None) ow4_gsuite_sync = self.ow4_gsuite_sync ow4_gsuite_sync["ENABLE_INSERT"] = True with override_settings(OW4_GSUITE_SYNC=ow4_gsuite_sync): insert_ow4_user_into_g_suite_group(self.domain, group_name, user) mocked_logger.assert_called_with( f"OW4 User '{user}' ({user.pk}) missing Online email address! (current: '{user.online_mail}')", extra={"user": user, "group": group_name}, )
def insert_ow4_users_into_g_suite(domain, group_name, missing_users, suppress_http_errors=False): """ Inserts a list of OW4 users into a G Suite group. :param domain: The domain in which to insert a user into a group. :type domain: str :param group_name: The name of the group to insert the user into. :type group_name: str :param missing_users: A list of the missing users to be inserted into said group. :type missing_users: list """ for missing_user in missing_users: insert_ow4_user_into_g_suite_group( domain, group_name, missing_user, suppress_http_errors=suppress_http_errors)
def insert_ow4_users_into_g_suite( domain: str, group_name: str, missing_users: List[Dict[str, str]], suppress_http_errors: bool = False, ): """ Inserts a list of OW4 users into a G Suite group. :param domain: The domain in which to insert a user into a group. :param group_name: The name of the group to insert the user into. :param missing_users: A list of the missing users to be inserted into said group. :param suppress_http_errors: Whether or not to suppress HttpErrors happening during execution. """ for missing_user in missing_users: insert_ow4_user_into_g_suite_group( domain, group_name, missing_user, suppress_http_errors=suppress_http_errors)
def insert_ow4_user_into_groups(domain: str, user: User, group_names: List[str], suppress_http_errors: bool = False): """ Inserts a single OW4 user into a G Suite group. :param domain: The domain in which to insert a user into a group. :param user: The user to update group memberships for. :param group_names: A list of group names to insert the user into. :param suppress_http_errors: Whether or not to suppress HttpErrors happening during execution. """ groups = [f"{group_name}@{domain}" for group_name in group_names] if groups: logger.info( f"Inserting {user} into some new G Suite groups.", extra={ "new_groups": group_names, "user": user }, ) for group in groups: insert_ow4_user_into_g_suite_group( domain, group, user, suppress_http_errors=suppress_http_errors)