class DirectSharingAbilities
A data class representing the set of direct sharing capabilities available to the current user in SharePoint, including permissions to add external/internal principals and request access grants.
/tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/sharing/direct_abilities.py
5 - 30
simple
Purpose
This class encapsulates the various sharing abilities a user has within SharePoint's direct sharing system. It serves as a data transfer object (DTO) that holds four different sharing capability statuses: the ability to add external principals, add internal principals, request grant access, and support review permissions. This class inherits from ClientValue, making it compatible with SharePoint's client-side object model for serialization and communication with SharePoint services.
Source Code
class DirectSharingAbilities(ClientValue):
"""Represents the set of capabilities for direct sharing for the current user."""
def __init__(
self,
can_add_external_principal=SharingAbilityStatus(),
can_add_internal_principal=SharingAbilityStatus(),
can_request_grant_access=SharingAbilityStatus(),
supports_review_permission=SharingAbilityStatus(),
):
"""
:param SharingAbilityStatus can_add_external_principal: Indicates whether the current user can share to new
external users.
:param SharingAbilityStatus can_add_internal_principal: Indicates whether the current user can share to
internal users.
:param SharingAbilityStatus can_request_grant_access: Indicates whether the current user can initiate a
request for someone with higher permissions to grant access.
"""
self.canAddExternalPrincipal = can_add_external_principal
self.canAddInternalPrincipal = can_add_internal_principal
self.canRequestGrantAccess = can_request_grant_access
self.supportsReviewPermission = supports_review_permission
@property
def entity_type_name(self):
return "SP.Sharing.DirectSharingAbilities"
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
ClientValue | - |
Parameter Details
can_add_external_principal: A SharingAbilityStatus object indicating whether the current user has permission to share content with external users (users outside the organization). Defaults to an empty SharingAbilityStatus() instance.
can_add_internal_principal: A SharingAbilityStatus object indicating whether the current user has permission to share content with internal users (users within the organization). Defaults to an empty SharingAbilityStatus() instance.
can_request_grant_access: A SharingAbilityStatus object indicating whether the current user can initiate a request to someone with higher permissions to grant access to content. Defaults to an empty SharingAbilityStatus() instance.
supports_review_permission: A SharingAbilityStatus object indicating whether the user's environment supports reviewing permissions. Defaults to an empty SharingAbilityStatus() instance.
Return Value
Instantiation returns a DirectSharingAbilities object that contains four SharingAbilityStatus attributes representing different sharing capabilities. The entity_type_name property returns the string 'SP.Sharing.DirectSharingAbilities', which is used for SharePoint API type identification.
Class Interface
Methods
__init__(self, can_add_external_principal=SharingAbilityStatus(), can_add_internal_principal=SharingAbilityStatus(), can_request_grant_access=SharingAbilityStatus(), supports_review_permission=SharingAbilityStatus())
Purpose: Initializes a DirectSharingAbilities instance with four sharing capability statuses
Parameters:
can_add_external_principal: SharingAbilityStatus indicating permission to share with external userscan_add_internal_principal: SharingAbilityStatus indicating permission to share with internal userscan_request_grant_access: SharingAbilityStatus indicating permission to request access grantssupports_review_permission: SharingAbilityStatus indicating support for permission reviews
Returns: None (constructor)
@property entity_type_name(self) -> str
property
Purpose: Returns the SharePoint entity type identifier for this class
Returns: String 'SP.Sharing.DirectSharingAbilities' used for SharePoint API type identification
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
canAddExternalPrincipal |
SharingAbilityStatus | Stores the status indicating whether the current user can share to new external users | instance |
canAddInternalPrincipal |
SharingAbilityStatus | Stores the status indicating whether the current user can share to internal users | instance |
canRequestGrantAccess |
SharingAbilityStatus | Stores the status indicating whether the current user can initiate a request for someone with higher permissions to grant access | instance |
supportsReviewPermission |
SharingAbilityStatus | Stores the status indicating whether the environment supports reviewing permissions | instance |
Dependencies
office365
Required Imports
from office365.runtime.client_value import ClientValue
from office365.sharepoint.sharing.ability_status import SharingAbilityStatus
from office365.sharepoint.sharing.direct_sharing_abilities import DirectSharingAbilities
Usage Example
from office365.sharepoint.sharing.ability_status import SharingAbilityStatus
from office365.sharepoint.sharing.direct_sharing_abilities import DirectSharingAbilities
# Create individual ability statuses
external_status = SharingAbilityStatus()
internal_status = SharingAbilityStatus()
request_status = SharingAbilityStatus()
review_status = SharingAbilityStatus()
# Instantiate DirectSharingAbilities with specific statuses
sharing_abilities = DirectSharingAbilities(
can_add_external_principal=external_status,
can_add_internal_principal=internal_status,
can_request_grant_access=request_status,
supports_review_permission=review_status
)
# Access the entity type name for SharePoint API operations
entity_type = sharing_abilities.entity_type_name
print(entity_type) # Output: SP.Sharing.DirectSharingAbilities
# Access individual abilities
can_share_external = sharing_abilities.canAddExternalPrincipal
can_share_internal = sharing_abilities.canAddInternalPrincipal
Best Practices
- This class is primarily a data container and should be instantiated with appropriate SharingAbilityStatus objects for each capability
- The class uses camelCase for internal attribute names (canAddExternalPrincipal, etc.) to match SharePoint API conventions, while constructor parameters use snake_case following Python conventions
- This class is immutable after instantiation - attributes are set in __init__ and not modified thereafter
- The entity_type_name property is used by the SharePoint client library for type identification during serialization/deserialization
- Typically received from SharePoint API responses rather than manually constructed by client code
- No methods modify state - this is a pure data class for representing sharing capabilities
- When using with SharePoint API, ensure the parent ClientValue serialization mechanisms are properly configured
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class SharingAbilities 85.1% similar
-
class SharingAbilityStatus 81.1% similar
-
class SharingLinkAbilities 80.3% similar
-
class SiteSharingReportCapabilities 74.7% similar
-
class SharingCapabilities 74.4% similar