main
tag: launch-2026-06-01
tag: magicmirror-v0.1.1
tag: magicmirror-v0.3.0
tag: mnw-cli-v0.1.2
tag: mnw-cli-v0.1.3
tag: mnw-cli-v0.1.4
tag: pom-v0.4.1
tag: pom-v0.4.2
tag: pom-v0.4.3
tag: pom-v0.4.4
tag: pom-v0.4.5
tag: wam-v0.3.0
tag: wam-v0.3.1
Files
Commits
Tags
Notes
Issues
Add SyncKitClient::list_members
Lists a group's members (id, role, joined-at) via GET /groups/{id}/members, so
an admin UI can show who to remove. Part of Groups p4 M4.
Co-Authored-By
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 files changed,
+27 insertions,
-0 deletions
264
264
pub created_at: DateTime<Utc>,
265
265
}
266
266
267
+
/// A member of a group, as returned by
268
+
/// [`SyncKitClient::list_members`](crate::SyncKitClient::list_members). Grants are
269
+
/// not included — each member fetches only their own.
270
+
#[derive(Debug, Clone, Deserialize)]
271
+
#[non_exhaustive]
272
+
pub struct GroupMember {
273
+
/// The member's account id.
274
+
pub user_id: UserId,
275
+
/// `"admin"` or `"member"`.
276
+
pub role: String,
277
+
/// When they were added.
278
+
pub added_at: DateTime<Utc>,
279
+
}
280
+
267
281
/// The caller's sealed Group Content Key grant, as returned by
268
282
/// [`SyncKitClient::group_grant`](crate::SyncKitClient::group_grant). Opened with
269
283
/// the member's identity private key to recover the GCK.
147
147
Ok(())
148
148
}
149
149
150
+
/// List a group's members (id, role, joined-at). Admin only (the server gates
151
+
/// it); use to show who can be removed.
152
+
#[instrument(skip(self))]
153
+
pub async fn list_members(&self, group_id: GroupId) -> Result<Vec<GroupMember>> {
154
+
let token = self.require_token()?;
155
+
let url = self.endpoints.group_members(group_id);
156
+
self.retry_request_json(Idempotency::ReadOnly, || {
157
+
let req = self.http.get(&url).bearer_auth(&token);
158
+
async move { check_response(req.send().await?).await }
159
+
})
160
+
.await
161
+
}
162
+
150
163
/// Remove a member from a group by user id. Admin only. The server membership
151
164
/// ACL revokes the member's group read/write access immediately.
152
165
///