This commit is contained in:
@@ -22,6 +22,18 @@ team membership can be removed independently. Configure `OwnerRole` when
|
||||
constructing the service before exposing membership-removal operations. The
|
||||
SQLite adapter then refuses to suspend or remove the final active direct owner.
|
||||
|
||||
For a reviewed access-administration page, use `organizations.Members` to list
|
||||
bounded active and suspended memberships, and
|
||||
`access.OrganizationUserBindings` to list only current direct,
|
||||
organization-wide user roles. The latter intentionally excludes team grants
|
||||
and project, environment, or service bindings. Replace a member's direct role
|
||||
with `access.ReplaceOrganizationUserRole`, passing the exact displayed binding
|
||||
IDs as `ExpectedBindingIDs`. The SQLite adapter serializes that replacement,
|
||||
rejects stale state, writes the new binding and audit event atomically, and
|
||||
will not demote the final active direct owner. The application must still
|
||||
authorize the administrator and bind any required fresh passkey assertion to
|
||||
the organization, target user, target role, and expected IDs.
|
||||
|
||||
`access.Service` evaluates a permission against a complete resource scope:
|
||||
|
||||
```go
|
||||
|
||||
Reference in New Issue
Block a user