User Management
Groups

User Groups

Manage user groups for access control. Responses are dicts from the management API. HTTP is via intapp-rest-client.

get_all_user_groups()

List user groups (paginated API):

from dealcloud_sdk import DealCloud, DealCloudConfig
 
config = DealCloudConfig(
    siteUrl="yoursite.dealcloud.com",
    clientId=12345,
    clientSecret="your-secret",
)
dc = DealCloud.from_config_object(config)
 
groups = dc.get_all_user_groups(page_number=1, page_size=1000)
for g in groups:
    print(g.get("id"), g.get("name"))

get_user_groups()

Fetch one group by ID or name, or multiple by passing a list of IDs/names:

g = dc.get_user_groups("My Group Name")
# or
g = dc.get_user_groups(12345)
 
# Multiple
rows = dc.get_user_groups([101, 102])

Members on a group

The group payload may expose members as users or memberIds depending on the API shape—inspect the dict you receive:

def member_ids_from_group(group: dict) -> list:
    users = group.get("users") or group.get("memberIds") or []
    out = []
    for u in users:
        if isinstance(u, dict):
            out.append(u.get("id"))
        else:
            out.append(u)
    return [x for x in out if x is not None]

add_user_to_group() / remove_user_from_group()

dc.add_user_to_group(user_id=12345, group_id=67890)
dc.remove_user_from_group(user_id=12345, group_id=67890)
dc.add_user_to_group(user_id=12345, group_id=67890)

update_user_group()

Replace metadata or replace the full member list when member_ids is provided:

dc.update_user_group(
    group_id=67890,
    name="Renamed Group",
    description="Optional",
    member_ids=[1, 2, 3],
)
⚠️

If you pass member_ids, it replaces existing membership for that group—fetch current members first if you need to merge.

delete_user_group()

dc.delete_user_group(67890)
# or by name
dc.delete_user_group("Old Group")

Related