def share(self, user_principal_name, shareOption=ExternalSharingSiteOption.View, sendEmail=True, emailSubject=None, emailBody=None): """ Share a Web with user :param str user_principal_name: User identifier :param ExternalSharingSiteOption shareOption: The sharing type of permission to grant on the object. :param bool sendEmail: A flag to determine if an email notification SHOULD be sent (if email is configured). :param str emailSubject: The email subject. :param str emailBody: The email subject. :return: SharingResult """ picker_result = ClientResult(str) sharing_result = ClientResult(SharingResult(self.context)) def _picker_value_resolved(picker_value): picker_result.value = picker_value def _grp_resolved(role_value): def _web_loaded(): sharing_result.value = Web.share_object(self.context, self.url, picker_result.value, role_value, 0, False, sendEmail, False, emailSubject, emailBody) self.ensure_property("Url", _web_loaded) params = ClientPeoplePickerQueryParameters(user_principal_name) ClientPeoplePickerWebServiceInterface.client_people_picker_resolve_user(self.context, params, _picker_value_resolved) Web._resolve_group_value(self.context, shareOption, _grp_resolved) return sharing_result.value
def test1_get_search_results(self): params = ClientPeoplePickerQueryParameters( settings.get('first_account_name')) result = ClientPeoplePickerWebServiceInterface.client_people_picker_resolve_user( self.client, params) self.client.execute_query() self.assertIsNotNone(result.value)
def share(self, user_principal_name, shareOption=ExternalSharingSiteOption.View, sendEmail=True, emailSubject=None, emailBody=None): """ Share a ListItem (file or folder facet) :param str user_principal_name: User identifier :param ExternalSharingSiteOption shareOption: The sharing type of permission to grant on the object. :param bool sendEmail: A flag to determine if an email notification SHOULD be sent (if email is configured). :param str emailSubject: The email subject. :param str emailBody: The email subject. :return: SharingResult """ result = ClientResult(SharingResult(self.context)) file_result = ClientResult(str) role_values = { ExternalSharingSiteOption.View: "role:1073741826", ExternalSharingSiteOption.Edit: "role:1073741827", } def _property_resolved(): file_result.value = self.get_property("EncodedAbsUrl") def _picker_value_resolved(picker_value): from office365.sharepoint.webs.web import Web result.value = Web.share_object(self.context, file_result.value, picker_value, role_values[shareOption], 0, False, sendEmail, False, emailSubject, emailBody) self.ensure_property("EncodedAbsUrl", _property_resolved) params = ClientPeoplePickerQueryParameters(user_principal_name) ClientPeoplePickerWebServiceInterface.client_people_picker_resolve_user( self.context, params, _picker_value_resolved) return result.value