def remove_all_permissions()

in ees_microsoft_outlook/permission_sync_command.py [0:0]


    def remove_all_permissions(self, users_accounts):
        """Removes all the permissions present in the Workplace Search"""
        try:
            ws_users_permissions = (
                self.workplace_search_custom_client.list_permissions()
            )
            outlook_user_permissions = []
            indexes_of_existing_users = []
            deleted_users = ws_users_permissions["results"]

            # Create list of current users permissions.
            for account in users_accounts:
                outlook_user_permissions.append(account.primary_smtp_address)

            # Compare existing permission with Workplace Search condition
            # Create list of indexes of existing users to delete from deleted users list.
            for user_permission in range(len(deleted_users)):
                for key, permissions in deleted_users[user_permission].items():
                    if key == "permissions":
                        for permission in permissions:
                            if permission in outlook_user_permissions:
                                indexes_of_existing_users.append(user_permission)

            indexes_of_existing_users = list(unique_everseen(indexes_of_existing_users))

            # Delete existing users from deleted users list.
            for index in sorted(indexes_of_existing_users, reverse=True):
                del deleted_users[index]

            # Pass deleted users list to remove permission function.
            if deleted_users:
                self.logger.info(
                    "Removing the permissions from the Workplace Search..."
                )
                permission_list = deleted_users
                for permission in permission_list:
                    self.workplace_search_custom_client.remove_permissions(permission)
        except Exception as exception:
            self.logger.exception(
                f"Error while removing the permissions from the Workplace Search. Error: {exception}"
            )