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}"
)