def remove_object_permissions()

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