🔍 Code Extractor

class Group_v1

Maturity: 36

Represents a SharePoint Directory Group entity that provides methods to retrieve group members, owners, and member information with lazy loading support.

File:
/tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/directory/group.py
Lines:
7 - 48
Complexity:
moderate

Purpose

This class extends the Entity base class to represent a SharePoint Directory Group. It provides methods to fetch group members, owners, and detailed member information. The class uses lazy loading patterns with ensure_property to defer API calls until the group's ID is available. It integrates with SharePoint's directory services through the SPHelper utility class and returns EntityCollection or MembersInfo objects for further processing.

Source Code

class Group(Entity):
    def get_members_info(self, row_limit):
        """"""
        result = MembersInfo(self.context)

        def _user_loaded():
            from office365.sharepoint.directory.helper import SPHelper

            SPHelper.get_members_info(
                self.context, self.properties["Id"], row_limit, result
            )

        self.ensure_property("Id", _user_loaded)
        return result

    def get_members(self):
        """"""
        from office365.directory.users.user import User

        members = EntityCollection(self.context, User)

        def _group_loaded():
            SPHelper.get_members(self.context, self.properties["Id"], members)

        self.ensure_property("Id", _group_loaded)
        return members

    def get_owners(self):
        """"""
        from office365.directory.users.user import User

        owners = EntityCollection(self.context, User)

        def _group_loaded():
            SPHelper.get_owners(self.context, self.properties["Id"], owners)

        self.ensure_property("Id", _group_loaded)
        return owners

    @property
    def entity_type_name(self):
        return "SP.Directory.Group"

Parameters

Name Type Default Kind
bases Entity -

Parameter Details

context: The SharePoint client context object required for making API calls to SharePoint services. Inherited from Entity base class and used throughout the class methods.

bases: Inherits from Entity class which provides base functionality for SharePoint entities including property management, context handling, and lazy loading capabilities.

Return Value

Instantiation returns a Group object representing a SharePoint directory group. Methods return: get_members_info() returns MembersInfo object containing detailed member information; get_members() returns EntityCollection of User objects representing group members; get_owners() returns EntityCollection of User objects representing group owners. The entity_type_name property returns the string 'SP.Directory.Group'.

Class Interface

Methods

get_members_info(self, row_limit) -> MembersInfo

Purpose: Retrieves detailed information about group members with a specified row limit

Parameters:

  • row_limit: Integer specifying the maximum number of member records to retrieve

Returns: MembersInfo object containing detailed member information that will be populated after execute_query() is called

get_members(self) -> EntityCollection

Purpose: Retrieves all members of the group as a collection of User entities

Returns: EntityCollection of User objects representing all group members, populated after execute_query() is called

get_owners(self) -> EntityCollection

Purpose: Retrieves all owners of the group as a collection of User entities

Returns: EntityCollection of User objects representing all group owners, populated after execute_query() is called

@property entity_type_name(self) -> str property

Purpose: Returns the SharePoint entity type name for this group

Returns: String 'SP.Directory.Group' identifying the SharePoint entity type

Attributes

Name Type Description Scope
context ClientContext SharePoint client context object inherited from Entity base class, used for making API calls instance
properties dict Dictionary containing entity properties including 'Id', inherited from Entity base class instance

Dependencies

  • office365
  • office365.sharepoint.directory.helper
  • office365.sharepoint.directory.members_info
  • office365.sharepoint.entity
  • office365.sharepoint.entity_collection
  • office365.directory.users.user

Required Imports

from office365.sharepoint.directory.group import Group
from office365.sharepoint.entity import Entity

Conditional/Optional Imports

These imports are only needed under specific conditions:

from office365.sharepoint.directory.helper import SPHelper

Condition: Imported lazily inside get_members_info method when the method is called

Required (conditional)
from office365.directory.users.user import User

Condition: Imported lazily inside get_members and get_owners methods when these methods are called

Required (conditional)

Usage Example

from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.directory.group import Group

# Initialize SharePoint context
ctx = ClientContext('https://yourtenant.sharepoint.com')
ctx.with_credentials(user_credentials)

# Get a group instance (typically retrieved from SharePoint)
group = ctx.web.site_groups.get_by_name('GroupName')

# Get members with limit
members_info = group.get_members_info(row_limit=100)
ctx.execute_query()
print(f'Members count: {len(members_info)}')

# Get all members
members = group.get_members()
ctx.execute_query()
for member in members:
    print(f'Member: {member.properties.get("Title")}')

# Get group owners
owners = group.get_owners()
ctx.execute_query()
for owner in owners:
    print(f'Owner: {owner.properties.get("Title")}')

Best Practices

  • Always ensure the Group object has been loaded from SharePoint before calling methods, as they depend on the 'Id' property being available
  • Call ctx.execute_query() after invoking get_members(), get_owners(), or get_members_info() to actually execute the deferred API calls
  • The methods use lazy loading pattern - they return collection objects immediately but populate them asynchronously when the Id property is ensured
  • Set appropriate row_limit in get_members_info() to control the number of results returned and avoid performance issues with large groups
  • Handle the returned EntityCollection objects properly - they may be empty until execute_query() is called on the context
  • The class uses callback functions (_user_loaded, _group_loaded) that execute only after the Id property is available, ensuring proper sequencing of API calls
  • Import statements for User and SPHelper are done lazily inside methods to avoid circular dependencies

Similar Components

AI-powered semantic similarity - components with related functionality:

  • class User_v2 85.6% similar

    Represents a SharePoint Directory User entity with methods to check group membership and retrieve user's groups.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/directory/user.py
  • class SharePointDirectoryProvider 68.2% similar

    A SharePoint directory provider entity class that represents the SP.Directory.Provider.SharePointDirectoryProvider resource in SharePoint's REST API.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/directory/provider/provider.py
  • class SPHelper 65.7% similar

    SPHelper is a utility class for SharePoint directory operations, providing static methods to check group membership, site availability, retrieve group members/owners, and manage external members.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/directory/helper.py
  • class GroupService 65.6% similar

    GroupService is a SharePoint service class that provides operations for managing SharePoint groups, including retrieving group images and synchronizing group properties.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/portal/groups/service.py
  • class Group_v2 65.1% similar

    Represents a collection of members in a SharePoint site. A group is a type of SP.Principal.

    From: /tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/sharepoint/principal/groups/group.py
← Back to Browse