class ExternalSharingSiteOption
A constants class that defines string options for external sharing site permissions in SharePoint or similar collaboration platforms.
/tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/sharing/external_site_option.py
1 - 14
simple
Purpose
This class serves as an enumeration-like container for sharing permission levels. It provides three predefined string constants (View, Edit, Owner) that represent different access levels for external sharing in a site. These constants map to specific SharePoint groups: AssociatedVisitorGroup for viewing, AssociatedMemberGroup for editing, and AssociatedOwnerGroup for ownership permissions. The class is designed to be used as a namespace for these constants rather than being instantiated multiple times.
Source Code
class ExternalSharingSiteOption:
"""Defines the options for Sharing Site"""
def __init__(self):
pass
View = "View"
"""Provides sharing to AssociatedVisitorGroup"""
Edit = "Edit"
"""Provides sharing to AssociatedMemberGroup"""
Owner = "Owner"
"""Provides sharing to AssociatedOwnerGroup"""
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
- | - |
Parameter Details
__init__: The constructor takes no parameters and performs no initialization. It exists only to allow instantiation of the class, though the class is primarily designed to be used for its class-level string constants rather than through instances.
Return Value
Instantiating this class returns an ExternalSharingSiteOption object with no instance-specific state. The primary value comes from accessing the class-level string constants (View, Edit, Owner) which return string values representing permission levels.
Class Interface
Methods
__init__(self) -> None
Purpose: Initializes an instance of ExternalSharingSiteOption with no specific state or configuration
Returns: None - constructor returns an instance of the class
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
View |
str | String constant 'View' representing view-only permission level, provides sharing to AssociatedVisitorGroup | class |
Edit |
str | String constant 'Edit' representing edit permission level, provides sharing to AssociatedMemberGroup | class |
Owner |
str | String constant 'Owner' representing owner permission level, provides sharing to AssociatedOwnerGroup | class |
Usage Example
# Access constants directly from the class (recommended)
from external_sharing_site_option import ExternalSharingSiteOption
# Use constants without instantiation
permission_level = ExternalSharingSiteOption.View
print(permission_level) # Output: 'View'
# Check permission types
if permission_level == ExternalSharingSiteOption.Edit:
print("User has edit permissions")
elif permission_level == ExternalSharingSiteOption.Owner:
print("User has owner permissions")
else:
print("User has view-only permissions")
# Can also instantiate (though not necessary)
option = ExternalSharingSiteOption()
view_permission = option.View # Output: 'View'
# Typical usage in a function
def set_sharing_permission(user_id, permission):
valid_permissions = [
ExternalSharingSiteOption.View,
ExternalSharingSiteOption.Edit,
ExternalSharingSiteOption.Owner
]
if permission in valid_permissions:
# Apply permission logic
return f"Setting {permission} permission for user {user_id}"
else:
raise ValueError("Invalid permission type")
result = set_sharing_permission("user123", ExternalSharingSiteOption.Edit)
Best Practices
- Use class-level constants directly without instantiation (e.g., ExternalSharingSiteOption.View) for better performance and clarity
- This class follows a constants/enumeration pattern and should not be modified at runtime
- The class is thread-safe as it only contains immutable string constants
- Consider using Python's enum.Enum for more robust enumeration behavior in production code
- Do not modify the class-level string values as they may be used as keys or identifiers in external systems
- When comparing permissions, use direct string comparison or reference the class constants to avoid typos
- This class has no state management or side effects - it's purely a container for constants
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class SharingCapabilities 77.9% similar
-
class SiteType 66.5% similar
-
class SharingPermissionInformation 65.8% similar
-
class SharingLinkKind 65.4% similar
-
class Role 65.3% similar