You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(web): add multi-owner support with promote/demote actions
Allow owners to promote members to owner and demote owners to member,
enabling multiple owners per organization. This is gated behind the
org-management entitlement as an enterprise feature.
- Add promoteToOwner and demoteToMember server actions in ee/features/userManagement
- Update leaveOrg to allow non-last owners to leave
- Replace "Transfer ownership" UI with "Promote to owner" / "Demote to member"
- Support self-demotion (with last-owner protection)
- Deprecate transferOwnership action
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
<AlertDialogTitle>Promote to Owner</AlertDialogTitle>
282
319
<AlertDialogDescription>
283
-
{`Are you sure you want to transfer ownership of ${orgName} to ${memberToTransfer?.name??memberToTransfer?.email}?`}
320
+
{`Are you sure you want to promote ${memberToPromote?.name??memberToPromote?.email} to owner? They will have full administrative access to ${orgName}.`}
284
321
</AlertDialogDescription>
285
322
</AlertDialogHeader>
286
323
<AlertDialogFooter>
287
324
<AlertDialogCancel>Cancel</AlertDialogCancel>
288
325
<AlertDialogAction
289
326
onClick={()=>{
290
-
onTransferOwnership(memberToTransfer?.id??"");
327
+
onPromoteToOwner(memberToPromote?.id??"");
291
328
}}
292
329
>
293
-
Transfer
330
+
Promote
331
+
</AlertDialogAction>
332
+
</AlertDialogFooter>
333
+
</AlertDialogContent>
334
+
</AlertDialog>
335
+
<AlertDialog
336
+
open={isDemoteDialogOpen}
337
+
onOpenChange={setIsDemoteDialogOpen}
338
+
>
339
+
<AlertDialogContent>
340
+
<AlertDialogHeader>
341
+
<AlertDialogTitle>Demote to Member</AlertDialogTitle>
342
+
<AlertDialogDescription>
343
+
{memberToDemote?.id===currentUserId
344
+
? `Are you sure you want to step down as owner? You will lose administrative access to ${orgName}.`
345
+
: `Are you sure you want to demote ${memberToDemote?.name??memberToDemote?.email} from owner to member? They will lose administrative access.`
0 commit comments