v 2.3.8
Changelog
Bug fixes
- #407
SecurableObject.get_user_effective_permissions
de-serializing response bug fixed - #400 improved support for managing file versions (SharePoint API)
- initial support for Reports API has been introduced
- initial support for Search API has been introduced
Examples
Example: how to download a file version
ctx = ClientContext(team_site_url).with_credentials(client_credentials)
version = ctx.web.get_file_by_server_relative_path(file_url).versions.get_by_id(512)
with open(download_path, "wb") as local_file:
file = version.download(local_file).execute_query()
Documentation:
Example: how to determine what kind of permissions the user has on a file
Documentation: ListItem.GetUserEffectivePermissions
method
from pprint import pprint
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.permissions.permission_kind import PermissionKind
client = ClientContext(team_site_url).with_credentials(user_credentials)
file_url = "/sites/team/Shared Documents/Guide.docx"
target_user = client.web.site_users.get_by_email(test_user_principal_name_alt)
target_file = client.web.get_file_by_server_relative_path(file_url)
result = target_file.listItemAllFields.get_user_effective_permissions(target_user).execute_query()
pprint(result.value.permission_levels) # print all permission levels
# verify whether user has Reader role to a file
if result.value.has(PermissionKind.OpenItems):
print("User has access to read a file")
Example: how to get the count of Microsoft 365 activations on desktops and devices (via Reports API)
Documentation: reportRoot: getOffice365ActivationsUserCounts
import msal
from office365.graph_client import GraphClient
def acquire_token_by_client_credentials():
settings = load_settings()
authority_url = 'https://login.microsoftonline.com/{0}'.format(tenant)
app = msal.ConfidentialClientApplication(
authority=authority_url,
client_id=client_id,
client_credential=client_secret
)
return app.acquire_token_for_client(scopes=["https://graph.microsoft.com/.default"])
client = GraphClient(acquire_token_by_client_credentials)
result = client.reports.get_office365_activations_user_counts().execute_query()
Example: how to search files (via Search API)
Documentation: use the Microsoft Search API to search content in OneDrive and SharePoint
import msal
from office365.graph_client import GraphClient
def acquire_token_by_client_credentials():
settings = load_settings()
authority_url = 'https://login.microsoftonline.com/{0}'.format(tenant)
app = msal.ConfidentialClientApplication(
authority=authority_url,
client_id=client_id,
client_credential=client_secret
)
return app.acquire_token_for_client(scopes=["https://graph.microsoft.com/.default"])
client = GraphClient(acquire_token_by_client_credentials)
result = client.search.query("Guide.docx", entity_types=["driveItem"]).execute_query()