in ees_microsoft_teams/base_command.py [0:0]
def remove_object_permissions(self, end_time):
"""Remove the permissions of the users removed from the Microsoft Teams objects
:param end_time: End time to fetch the permissions
"""
deleted_permissions_list = []
microsoft_teams_object = self.microsoft_team_channel_object(
self.get_access_token()
)
user_chat_object = self.microsoft_user_chats_object(
self.get_access_token()
)
calendar_object = self.microsoft_calendar_object(
self.get_access_token(is_acquire_for_client=True)
)
teams_permissions = microsoft_teams_object.get_team_members()
user_chats_permissions, _ = user_chat_object.get_user_chats([])
calendar_permissions, _ = calendar_object.get_calendars([], self.config.get_value('start_time'), end_time)
ws_user_permissions = PermissionSyncCommand(
self.logger, self.config, self.workplace_search_custom_client
).list_user_permissions()
for ws_user, ws_permissions in ws_user_permissions.items():
actual_permissions = ws_permissions
ws_permissions = self.manage_permissions(teams_permissions, ws_user, ws_permissions)
ws_permissions = self.manage_permissions(user_chats_permissions, ws_user, ws_permissions)
ws_permissions = self.manage_permissions(calendar_permissions, ws_user, ws_permissions)
deleted_permissions_list.append({"user": ws_user, "actual_permissions": actual_permissions,
"deleted_permissions": ws_permissions})
for permission_dict in deleted_permissions_list:
if permission_dict["deleted_permissions"]:
if self.version >= ENTERPRISE_V8:
self.workplace_search_custom_client.remove_permissions(
{
"external_user_properties": [{'attribute_value': permission_dict['user']}],
"permissions": permission_dict['deleted_permissions']
}
)
else:
self.workplace_search_custom_client.remove_permissions(
{"user": permission_dict['user'], "permissions": permission_dict['deleted_permissions']}
)
self.workplace_search_custom_client.add_permissions(
permission_dict['user'],
list(set(permission_dict['actual_permissions']) - set(permission_dict['deleted_permissions']))
)
self.logger.debug(
f"Removed permissions for {permission_dict['user']} from the Workplace Search"
)
else:
self.logger.debug(
f"No permission found for {permission_dict['user']} to remove from Workplace Search"
)