Skip to content

Commit ba9deae

Browse files
author
Cyrus Nouroozi
committed
Add OrganizationMemberships
1 parent 3d4ee95 commit ba9deae

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

clerk/sessions.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,3 @@ async def revoke(self, session_id: str) -> types.Session:
2121
"""Revoke a session by its id"""
2222
r = await self._client.post(f"{self.endpoint}/{session_id}/revoke")
2323
return types.Session.model_validate_json(r.content)
24-
25-
async def verify(self, session_id: str, token: str) -> types.Session:
26-
"""Verify a session by its id and a given token"""
27-
request = types.VerifyRequest(token=token)
28-
29-
r = await self._client.post(f"{self.endpoint}/{session_id}/verify", request=request)
30-
return types.Session.model_validate_json(r.content)

clerk/types.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class Session(BaseModel):
1010
user_id: str
1111
status: str
1212
last_active_at: int
13+
last_active_organization_id: str
1314
expire_at: int
1415
abandon_at: int
1516

@@ -123,3 +124,16 @@ class UpdateOrganizationRequest(BaseModel):
123124
slug: str | None = None
124125
max_allowed_memberships: int | None = None
125126
admin_delete_enabled: bool | None = None
127+
128+
129+
class OrganizationMembership(BaseModel):
130+
id: str
131+
object: str
132+
role: str
133+
permissions: List[str]
134+
public_metadata: dict
135+
private_metadata: dict
136+
organization: Organization
137+
public_user_data: Any
138+
created_at: int
139+
updated_at: int

clerk/users.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,8 @@ async def update(self, user_id: str, request: types.UpdateUserRequest) -> types.
2929
json=request.model_dump_json(exclude_unset=True),
3030
)
3131
return types.User.model_validate_json(r.content)
32+
33+
async def memberships(self, user_id: str) -> List[types.Membership]:
34+
"""Retrieve a list of all memberships for a user"""
35+
r = await self._client.get(f"{self.endpoint}/{user_id}/memberships")
36+
return [types.OrganizationMembership.model_validate(s) for s in r.json()["data"]]

0 commit comments

Comments
 (0)