🔍 Code Extractor

class DirectSharingAbilities

Maturity: 47

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.

File:
/tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/sharing/direct_abilities.py
Lines:
5 - 30
Complexity:
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 users
  • can_add_internal_principal: SharingAbilityStatus indicating permission to share with internal users
  • can_request_grant_access: SharingAbilityStatus indicating permission to request access grants
  • supports_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

Similar Components

AI-powered semantic similarity - components with related functionality:

  • class SharingAbilities 85.1% similar

    Represents the matrix of possible sharing abilities for direct sharing and tokenized sharing links along with the state of each capability for the current user in SharePoint.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/sharing/abilities.py
  • class SharingAbilityStatus 81.1% similar

    A data class representing the status of a specific sharing capability for the current user in SharePoint, including whether it's enabled and the reason if disabled.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/sharing/ability_status.py
  • class SharingLinkAbilities 80.3% similar

    A data class representing the set of capabilities for tokenized sharing links in SharePoint, indicating which sharing operations are enabled or disabled for the current user.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/sharing/link_abilities.py
  • class SiteSharingReportCapabilities 74.7% similar

    SiteSharingReportCapabilities is a data transfer object class that inherits from ClientValue, representing capabilities related to site sharing reports in Office 365/SharePoint.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/sharing/reports/site_capabilities.py
  • class SharingCapabilities 74.4% similar

    An enumeration-style class that defines external sharing capability levels for SharePoint site collections in Office 365.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/tenant/administration/sharing_capabilities.py
← Back to Browse