ees_microsoft_teams/permission_sync_command.py (18 lines of code) (raw):
#
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License 2.0;
# you may not use this file except in compliance with the Elastic License 2.0.
#
"""This module allows to synchronize the user permissions from Microsoft Teams to the Workplace Search.
"""
class PermissionSyncCommand:
"""This class contains logic to sync user permissions from Microsoft Teams."""
def __init__(self, logger, config, workplace_search_custom_client):
self.logger = logger
self.workplace_search_custom_client = workplace_search_custom_client
self.config = config
self.enterprise_search_source_id = self.config.get_value("enterprise_search.source_id")
def list_user_permissions(self):
""" Returns the list of users permissions from Workplace Search
"""
self.logger.debug("Fetching the user permissions from the workplace search")
user_permissions_dict = {}
user_permission = self.workplace_search_custom_client.list_permissions()
for user_dict in user_permission["results"]:
user_name = user_dict['user'] if 'user' in user_dict else user_dict["external_user_properties"][0][
"attribute_value"]
user_permissions_dict.update(
{user_name: user_dict["permissions"]}
)
self.logger.info("Successfully retrieved all permissions from the Workplace Search")
return user_permissions_dict