Skip to content

module/service_sync.py

module.service_sync

Service Sync

SyncGSuite

Bases: GSuite

Sync GSuite

Parameters:

Name Type Description Default
credentialfile str

Credentialfile path.

required
with_subject str

Admin user mail.

required
Source code in module/service_sync.py
class SyncGSuite(GSuite):
    ''' Sync GSuite

    Args:
        credentialfile (str): Credentialfile path.
        with_subject (str): Admin user mail.

    '''

    def __init__(self, credentialfile: str, with_subject: str) -> None:
        super().__init__(
            credentialfile=credentialfile, with_subject=with_subject)

    def add_users_into_group(self, group: str, users: list[str]) -> None:
        ''' Add some users into one group

        Args:
            group (str): group_key or mail.
            users (list): List of user mails.

        '''
        group_info = self.groups_get(group_key=group)

        for user in users:
            if self.members_has_member(group_key=group_info['id'], email=user)['isMember']:
                logging.info('[%s] isMember: True', user)
            else:
                logging.info('Add [%s] into [%s]', user, group_info['id'])
                self.members_insert(group_key=group_info['id'], email=user)

    def del_users_from_group(self, group: str, users: list[str]) -> None:
        ''' del some users from one group

        Args:
            group (str): group_key or mail.
            users (list): List of user mails.

        '''
        group_info = self.groups_get(group_key=group)

        for user in users:
            if self.members_has_member(group_key=group_info['id'], email=user)['isMember']:
                logging.info('del [%s] from [%s]', user, group_info['id'])
                self.members_delete(group_key=group_info['id'], email=user)
            else:
                logging.info('[%s] isMember: False', user)

add_users_into_group

add_users_into_group(group: str, users: list[str]) -> None

Add some users into one group

Parameters:

Name Type Description Default
group str

group_key or mail.

required
users list

List of user mails.

required
Source code in module/service_sync.py
def add_users_into_group(self, group: str, users: list[str]) -> None:
    ''' Add some users into one group

    Args:
        group (str): group_key or mail.
        users (list): List of user mails.

    '''
    group_info = self.groups_get(group_key=group)

    for user in users:
        if self.members_has_member(group_key=group_info['id'], email=user)['isMember']:
            logging.info('[%s] isMember: True', user)
        else:
            logging.info('Add [%s] into [%s]', user, group_info['id'])
            self.members_insert(group_key=group_info['id'], email=user)

del_users_from_group

del_users_from_group(group: str, users: list[str]) -> None

del some users from one group

Parameters:

Name Type Description Default
group str

group_key or mail.

required
users list

List of user mails.

required
Source code in module/service_sync.py
def del_users_from_group(self, group: str, users: list[str]) -> None:
    ''' del some users from one group

    Args:
        group (str): group_key or mail.
        users (list): List of user mails.

    '''
    group_info = self.groups_get(group_key=group)

    for user in users:
        if self.members_has_member(group_key=group_info['id'], email=user)['isMember']:
            logging.info('del [%s] from [%s]', user, group_info['id'])
            self.members_delete(group_key=group_info['id'], email=user)
        else:
            logging.info('[%s] isMember: False', user)