예제 #1
0
파일: main.py 프로젝트: mgimle/onlineweb4
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)
예제 #2
0
 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
         })
예제 #3
0
 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
         },
     )
예제 #4
0
    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},
            )
예제 #5
0
파일: main.py 프로젝트: mgimle/onlineweb4
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)
예제 #6
0
파일: main.py 프로젝트: tor0405/onlineweb4
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)
예제 #7
0
파일: main.py 프로젝트: tor0405/onlineweb4
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)