5
5
6
6
from ..models import TaskItem , UserItem , GroupItem , PermissionsRule , FavoriteItem
7
7
8
+ from typing import Optional , TYPE_CHECKING
9
+
8
10
9
11
def _add_multipart (parts ):
10
12
mime_multipart_parts = list ()
@@ -312,24 +314,30 @@ def publish_req_chunked(self, flow_item, connections=None):
312
314
313
315
314
316
class GroupRequest (object ):
315
- def add_user_req (self , user_id ) :
317
+ def add_user_req (self , user_id : str ) -> bytes :
316
318
xml_request = ET .Element ("tsRequest" )
317
319
user_element = ET .SubElement (xml_request , "user" )
318
320
user_element .attrib ["id" ] = user_id
319
321
return ET .tostring (xml_request )
320
322
321
- def create_local_req (self , group_item ) :
323
+ def create_local_req (self , group_item : GroupItem ) -> bytes :
322
324
xml_request = ET .Element ("tsRequest" )
323
325
group_element = ET .SubElement (xml_request , "group" )
324
- group_element .attrib ["name" ] = group_item .name
326
+ if group_item .name is not None :
327
+ group_element .attrib ["name" ] = group_item .name
328
+ else :
329
+ raise ValueError ("Group name must be populated" )
325
330
if group_item .minimum_site_role is not None :
326
331
group_element .attrib ["minimumSiteRole" ] = group_item .minimum_site_role
327
332
return ET .tostring (xml_request )
328
333
329
- def create_ad_req (self , group_item ) :
334
+ def create_ad_req (self , group_item : GroupItem ) -> bytes :
330
335
xml_request = ET .Element ("tsRequest" )
331
336
group_element = ET .SubElement (xml_request , "group" )
332
- group_element .attrib ["name" ] = group_item .name
337
+ if group_item .name is not None :
338
+ group_element .attrib ["name" ] = group_item .name
339
+ else :
340
+ raise ValueError ("Group name must be populated" )
333
341
import_element = ET .SubElement (group_element , "import" )
334
342
import_element .attrib ["source" ] = "ActiveDirectory"
335
343
if group_item .domain_name is None :
@@ -343,7 +351,7 @@ def create_ad_req(self, group_item):
343
351
import_element .attrib ["siteRole" ] = group_item .minimum_site_role
344
352
return ET .tostring (xml_request )
345
353
346
- def update_req (self , group_item , default_site_role = None ):
354
+ def update_req (self , group_item : GroupItem , default_site_role : Optional [ str ] = None ) -> bytes :
347
355
# (1/8/2021): Deprecated starting v0.15
348
356
if default_site_role is not None :
349
357
import warnings
@@ -358,13 +366,20 @@ def update_req(self, group_item, default_site_role=None):
358
366
359
367
xml_request = ET .Element ("tsRequest" )
360
368
group_element = ET .SubElement (xml_request , "group" )
361
- group_element .attrib ["name" ] = group_item .name
369
+
370
+ if group_item .name is not None :
371
+ group_element .attrib ["name" ] = group_item .name
372
+ else :
373
+ raise ValueError ("Group name must be populated" )
362
374
if group_item .domain_name is not None and group_item .domain_name != "local" :
363
375
# Import element is only accepted in the request for AD groups
364
376
import_element = ET .SubElement (group_element , "import" )
365
377
import_element .attrib ["source" ] = "ActiveDirectory"
366
378
import_element .attrib ["domainName" ] = group_item .domain_name
367
- import_element .attrib ["siteRole" ] = group_item .minimum_site_role
379
+ if isinstance (group_item .minimum_site_role , str ):
380
+ import_element .attrib ["siteRole" ] = group_item .minimum_site_role
381
+ else :
382
+ raise ValueError ("Minimum site role must be provided." )
368
383
if group_item .license_mode is not None :
369
384
import_element .attrib ["grantLicenseMode" ] = group_item .license_mode
370
385
else :
0 commit comments