Skip to content

Commit 3244d19

Browse files
vvgrem@gmail.comvvgrem@gmail.com
authored andcommitted
Bug fixes (#306) and SharePoint API improvements (hubsite, utility namespaces)
1 parent 5dbbf60 commit 3244d19

File tree

21 files changed

+253
-37
lines changed

21 files changed

+253
-37
lines changed

examples/sharepoint/connect_with_user_credential.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from settings import settings
22

3-
from office365.sharepoint.client_context import ClientContext
43

4+
from office365.sharepoint.client_context import ClientContext
55
ctx = ClientContext(settings["url"]).with_user_credentials(settings.get('user_credentials').get('username'),
66
settings.get('user_credentials').get('password'))
77

examples/sharepoint/folders/create_docset.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
settings.get('client_credentials').get('client_secret'))
88

99

10-
def create_folder():
11-
pass
12-
13-
1410
# ctx = ListDataService(site_url)
1511
# ctx = ClientContext(site_url).with_credentials(credentials)
1612
# ctx.execute_query()

examples/sharepoint/folders/create_folders.py

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from settings import settings
2+
3+
from office365.runtime.auth.user_credential import UserCredential
4+
from office365.sharepoint.client_context import ClientContext
5+
6+
credentials = UserCredential(settings['user_credentials']['username'],
7+
settings['user_credentials']['password'])
8+
ctx = ClientContext(settings['url']).with_credentials(credentials)
9+
10+
target_folder = "/Shared Documents/Archive/2020/Sept"
11+
target_folder = ctx.web.ensure_folder_path(target_folder).execute_query()
12+
print(target_folder.serverRelativeUrl)
13+
14+
15+
16+
17+

generator/metadata/SharePoint.xml

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

office365/runtime/auth/providers/saml_token_provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def xml_escape(s_val):
2929

3030

3131
def is_valid_auth_cookies(values):
32-
return any(values) and values.get('FedAuth', None) is not None
32+
return any(values) and (values.get('FedAuth', None) is not None or values.get('SPOIDCRL', None) is not None)
3333

3434

3535
class SamlTokenProvider(AuthenticationProvider, office365.logger.LoggerContext):

office365/sharepoint/folders/folder_collection.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ def get_by_path(self, decoded_url):
4141

4242
def ensure_folder_path(self, path):
4343
"""
44-
Function to create a folder
45-
:type path: string
46-
:param path: relative server URL (path) to a folder
44+
Creates a nested folder structure
45+
46+
:param str path: relative server URL (path) to a folder
4747
"""
4848

4949
url_component = os.path.normpath(path).split(os.path.sep)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from office365.runtime.client_value import ClientValue
2+
3+
4+
class WikiPageCreationInformation(ClientValue):
5+
6+
def __init__(self, server_relative_url, content):
7+
super().__init__()
8+
self.ServerRelativeUrl = server_relative_url
9+
self.WikiHtmlContent = content
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from office365.runtime.queries.service_operation_query import ServiceOperationQuery
2+
from office365.runtime.resource_path import ResourcePath
3+
from office365.sharepoint.base_entity import BaseEntity
4+
from office365.sharepoint.tenant.administration.hub_site_collection import HubSiteCollection
5+
6+
7+
class SPHubSitesUtility(BaseEntity):
8+
9+
def __init__(self, context):
10+
super().__init__(context, ResourcePath("Microsoft.SharePoint.Portal.SPHubSitesUtility"))
11+
12+
def get_hub_sites(self):
13+
hub_sites = HubSiteCollection(self.context)
14+
qry = ServiceOperationQuery(self, "GetHubSites", None, None, None, hub_sites)
15+
self.context.add_query(qry)
16+
return hub_sites

office365/sharepoint/sites/site.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,20 @@ def get_catalog(self, type_catalog):
135135
:type type_catalog: int"""
136136
return List(self.context, ResourcePathServiceOperation("getCatalog", [type_catalog], self.resource_path))
137137

138+
def register_hub_site(self, creationInformation):
139+
"""Registers an existing site as a hub site.
140+
141+
:type creationInformation: HubSiteCreationInformation
142+
"""
143+
qry = ServiceOperationQuery(self, "RegisterHubSite", None, creationInformation, "creationInformation", None)
144+
self.context.add_query(qry)
145+
return self
146+
147+
def unregister_hub_site(self):
148+
qry = ServiceOperationQuery(self, "UnRegisterHubSite", None, None, None, None)
149+
self.context.add_query(qry)
150+
return self
151+
138152
@property
139153
def root_web(self):
140154
"""Get root web"""
@@ -162,6 +176,13 @@ def id(self):
162176
"""
163177
return self.properties.get("Id", None)
164178

179+
@property
180+
def is_hub_site(self):
181+
"""
182+
:rtype: bool
183+
"""
184+
return self.properties.get("IsHubSite", None)
185+
165186
@property
166187
def recycle_bin(self):
167188
"""Get recycle bin"""

0 commit comments

Comments
 (0)