Skip to content

Commit ba3483b

Browse files
rikunosukeclaude
andcommitted
feat: Add update_project_user_permission method to SDK
- Add new method to update or assign user permissions for projects - Support roles: annotator, reviewer, owner, and none (for removal) - Update README with usage examples This enables SDK users to manage project user permissions programmatically, matching the API endpoint added in fastlabel-application PR #10438. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent db03b45 commit ba3483b

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2547,6 +2547,32 @@ project_metadata_id = client.update_project_metadata(
25472547
)
25482548
```
25492549

2550+
### Update Project User Permission
2551+
2552+
Update or assign user permissions for a project.
2553+
2554+
```python
2555+
# Add or update user permission
2556+
result = client.update_project_user_permission(
2557+
project="YOUR_PROJECT_SLUG",
2558+
2559+
role="annotator"
2560+
)
2561+
2562+
# Remove user from project
2563+
result = client.update_project_user_permission(
2564+
project="YOUR_PROJECT_SLUG",
2565+
2566+
role="none"
2567+
)
2568+
```
2569+
2570+
Available roles:
2571+
- `annotator`: Annotator
2572+
- `reviewer`: Reviewer
2573+
- `owner`: Project owner
2574+
- `none`: Remove user from project
2575+
25502576
## Tags
25512577

25522578
### Get Tags

fastlabel/__init__.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4137,6 +4137,30 @@ def update_project_metadata(
41374137
}
41384138
return self.api.put_request(endpoint, payload=payload)
41394139

4140+
def update_project_user_permission(
4141+
self,
4142+
project: str,
4143+
email: str,
4144+
role: str,
4145+
) -> bool:
4146+
"""
4147+
Update project user permission.
4148+
4149+
project is the slug of the project (Required).
4150+
email is the email address of the user (Required).
4151+
role is the role of the user in the project (Required).
4152+
role can be 'annotator', 'reviewer', 'owner',
4153+
'external_annotator', 'external_reviewer', 'external_approver',
4154+
'external_sub_owner', 'external_owner', or 'none' to remove user from project.
4155+
"""
4156+
endpoint = "projects-users"
4157+
payload = {
4158+
"project": project,
4159+
"email": email,
4160+
"role": role
4161+
}
4162+
return self.api.put_request(endpoint, payload=payload)
4163+
41404164
# Tags
41414165

41424166
def get_tags(

0 commit comments

Comments
 (0)