def add_permissions()

in ees_sharepoint/enterprise_search_wrapper.py [0:0]


    def add_permissions(self, user_name, permission_list):
        """Add one or more permission for a given user. Permissions are added atop the existing.
        :param user_name: user to assign permissions
        :param permission_list: list of permissions
        """
        try:
            if self.version >= ENTERPRISE_V8:
                from elastic_enterprise_search.exceptions import ConflictError

                external_user_properties = [
                    {
                        "attribute_name": "_elasticsearch_username",
                        "attribute_value": user_name,
                    }
                ]
                try:
                    self.workplace_search_client.create_external_identity(
                        content_source_id=self.ws_source,
                        external_user_id=user_name,
                        external_user_properties=external_user_properties,
                        permissions=permission_list,
                    )
                except ConflictError:
                    self.logger.debug(
                        f"External entity :{user_name}  already exits. Trying to update the existing permissions.."
                    )
                    self.workplace_search_client.put_external_identity(
                        content_source_id=self.ws_source,
                        external_user_id=user_name,
                        external_user_properties=external_user_properties,
                        permissions=permission_list,
                    )
            else:
                self.workplace_search_client.add_user_permissions(
                    content_source_id=self.ws_source,
                    user=user_name,
                    body={"permissions": permission_list},
                )
            self.logger.info(
                f"Successfully indexed the permissions for user {user_name} to the workplace"
            )
        except Exception as exception:
            self.logger.exception(
                f"Error while indexing the permissions for user: {user_name} to the workplace. Error: {exception}"
            )