@actuate-media/cms-admin 0.31.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,15 +57,35 @@ const PERMISSIONS = {
57
57
  };
58
58
  const { cmsApi } = vi.hoisted(() => ({ cmsApi: vi.fn() }));
59
59
  vi.mock('../../lib/api.js', () => ({ cmsApi }));
60
+ const DIRECTORY = [
61
+ {
62
+ id: 'u1',
63
+ name: 'Priya Nair',
64
+ email: 'priya@actuatemedia.com',
65
+ status: 'active',
66
+ isCurrentUser: false,
67
+ },
68
+ {
69
+ id: 'u2',
70
+ name: 'Dana Chen',
71
+ email: 'dana@actuatemedia.com',
72
+ status: 'active',
73
+ isCurrentUser: false,
74
+ },
75
+ ];
60
76
  cmsApi.mockImplementation(async (endpoint) => {
61
77
  if (!endpoint)
62
78
  return { data: null, status: 200 };
79
+ if (endpoint.includes('/transfer-content'))
80
+ return { data: { documents: 4, media: 0, templates: 0, total: 4 }, status: 200 };
63
81
  if (endpoint.endsWith('/sessions'))
64
82
  return { data: SESSIONS, status: 200 };
65
83
  if (endpoint.endsWith('/permissions'))
66
84
  return { data: PERMISSIONS, status: 200 };
67
85
  if (endpoint.endsWith('/activity'))
68
86
  return { data: [], status: 200 };
87
+ if (endpoint === '/users' || endpoint.startsWith('/users?'))
88
+ return { data: DIRECTORY, status: 200 };
69
89
  if (endpoint.startsWith('/users/u1'))
70
90
  return { data: DETAIL, status: 200 };
71
91
  return { data: null, status: 200 };
@@ -109,5 +129,16 @@ describe('UserDetailDrawer', () => {
109
129
  await waitFor(() => expect(screen.getByText('content.publish')).toBeTruthy());
110
130
  expect(screen.getByText('dashboard.view')).toBeTruthy();
111
131
  });
132
+ it('transfers content ownership to a chosen active recipient', async () => {
133
+ render(_jsx(UserDetailDrawer, { userId: "u1", open: true, onOpenChange: () => { } }));
134
+ await screen.findByText('Priya Nair');
135
+ fireEvent.click(screen.getByRole('button', { name: 'Transfer content' }));
136
+ // Modal opens and loads the directory, excluding the target (u1).
137
+ expect(await screen.findByText('Transfer content ownership')).toBeTruthy();
138
+ const select = (await screen.findByLabelText('Transfer to'));
139
+ fireEvent.change(select, { target: { value: 'u2' } });
140
+ fireEvent.click(screen.getByRole('button', { name: 'Transfer' }));
141
+ await waitFor(() => expect(cmsApi.mock.calls.some(([endpoint]) => String(endpoint).includes('/users/u1/transfer-content'))).toBe(true));
142
+ });
112
143
  });
113
144
  //# sourceMappingURL=user-detail-drawer.render.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-detail-drawer.render.test.js","sourceRoot":"","sources":["../../../src/__tests__/views/user-detail-drawer.render.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-detail-drawer.render.test.js","sourceRoot":"","sources":["../../../src/__tests__/views/user-detail-drawer.render.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserDetailDrawer.d.ts","sourceRoot":"","sources":["../../../src/views/users/UserDetailDrawer.tsx"],"names":[],"mappings":"AAuRA,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,qBAAqB,2CA4nBhG"}
1
+ {"version":3,"file":"UserDetailDrawer.d.ts","sourceRoot":"","sources":["../../../src/views/users/UserDetailDrawer.tsx"],"names":[],"mappings":"AA+YA,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,qBAAqB,2CAqpBhG"}
@@ -105,6 +105,45 @@ function ReauthDialog({ open, onClose, onSubmit, }) {
105
105
  submit();
106
106
  }, autoComplete: "current-password", className: "border-border bg-input-background text-foreground focus:ring-brand w-full rounded-md border px-3 py-2 text-sm focus:ring-2 focus:outline-none" })] }));
107
107
  }
108
+ function TransferContentModal({ open, onClose, fromUser, onTransferred, }) {
109
+ // Only fetch the directory while the picker is open.
110
+ const members = useApiData(open ? '/users' : null);
111
+ const [toUserId, setToUserId] = useState('');
112
+ const [busy, setBusy] = useState(false);
113
+ const recipients = (members.data ?? []).filter((m) => m.id !== fromUser.id && m.status === 'active');
114
+ const submit = async () => {
115
+ if (!toUserId || busy)
116
+ return;
117
+ setBusy(true);
118
+ try {
119
+ const res = await cmsApi(`/users/${fromUser.id}/transfer-content`, {
120
+ method: 'POST',
121
+ body: JSON.stringify({ toUserId }),
122
+ });
123
+ if (res.error) {
124
+ toast.error(res.error);
125
+ return;
126
+ }
127
+ const c = res.data;
128
+ toast.success(c && c.total > 0
129
+ ? `Transferred ${c.total} item${c.total === 1 ? '' : 's'} (${c.documents} docs, ${c.media} media, ${c.templates} templates).`
130
+ : 'Nothing to transfer.');
131
+ setToUserId('');
132
+ onClose();
133
+ onTransferred();
134
+ }
135
+ finally {
136
+ setBusy(false);
137
+ }
138
+ };
139
+ return (_jsxs(Modal, { open: open, onClose: () => {
140
+ setToUserId('');
141
+ onClose();
142
+ }, title: "Transfer content ownership", actions: _jsxs(_Fragment, { children: [_jsx(Button, { variant: "ghost", onClick: () => {
143
+ setToUserId('');
144
+ onClose();
145
+ }, children: "Cancel" }), _jsx(Button, { variant: "primary", loading: busy, disabled: !toUserId || busy, onClick: submit, children: "Transfer" })] }), children: [_jsxs("p", { className: "text-muted-foreground mb-3 text-sm", children: ["Reassign ", fromUser.name, "'s authored documents, uploaded media, and templates to another active member. Version history and audit records are left unchanged."] }), _jsx("label", { htmlFor: "transfer-to", className: "text-card-foreground mb-1 block text-sm font-medium", children: "Transfer to" }), members.loading ? (_jsx(Skeleton, { variant: "table-row", lines: 1 })) : recipients.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "No other active members to receive the content." })) : (_jsxs("select", { id: "transfer-to", value: toUserId, onChange: (e) => setToUserId(e.target.value), className: "border-border bg-input-background text-foreground focus:ring-brand w-full rounded-md border px-3 py-2 text-sm focus:ring-2 focus:outline-none", children: [_jsx("option", { value: "", children: "Select a member\u2026" }), recipients.map((m) => (_jsxs("option", { value: m.id, children: [m.name, " (", m.email, ")"] }, m.id)))] }))] }));
146
+ }
108
147
  // ---------------------------------------------------------------------------
109
148
  // Small presentational bits
110
149
  // ---------------------------------------------------------------------------
@@ -137,6 +176,7 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }) {
137
176
  const [reauth, setReauth] = useState(null);
138
177
  const [confirm, setConfirm] = useState(null);
139
178
  const [pending, setPending] = useState(null);
179
+ const [showTransfer, setShowTransfer] = useState(false);
140
180
  const refreshAfterChange = useCallback(() => {
141
181
  detail.refetch();
142
182
  onChanged?.();
@@ -179,7 +219,7 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }) {
179
219
  }
180
220
  }, []);
181
221
  const u = detail.data;
182
- return (_jsxs(_Fragment, { children: [_jsx(Drawer, { open: open, onOpenChange: onOpenChange, width: "max-w-xl", title: u ? u.name : detail.loading ? 'Loading…' : 'User', description: u?.email, headerExtra: u ? (_jsx("span", { className: `mr-1 inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${ROLE_PILL[u.roleName] ?? ROLE_PILL.Viewer}`, children: u.roleName })) : undefined, children: detail.loading ? (_jsxs("div", { className: "space-y-3", children: [_jsx(Skeleton, { variant: "card" }), _jsx(Skeleton, { variant: "table-row", lines: 4 })] })) : detail.error || !u ? (_jsxs("div", { className: "flex items-center gap-3 py-6", children: [_jsx(AlertTriangle, { size: 18, className: "text-destructive shrink-0", "aria-hidden": true }), _jsx("span", { className: "text-destructive flex-1 text-sm", children: detail.error ?? 'User not found.' }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => detail.refetch(), children: "Retry" })] })) : (_jsxs(Tabs.Root, { value: tab, onValueChange: setTab, children: [_jsx(Tabs.List, { className: "border-border mb-4 flex gap-1 overflow-x-auto border-b", "aria-label": "User detail sections", children: TABS.map((t) => (_jsx(Tabs.Trigger, { value: t.id, className: "text-muted-foreground hover:text-foreground data-[state=active]:text-foreground data-[state=active]:border-brand focus-visible:ring-ring -mb-px shrink-0 border-b-2 border-transparent px-3 py-2 text-sm font-medium transition-colors focus-visible:ring-2 focus-visible:outline-none", children: t.label }, t.id))) }), _jsxs(Tabs.Content, { value: "overview", tabIndex: -1, className: "focus:outline-none", children: [_jsxs("div", { className: "mb-4 flex items-center gap-2", children: [_jsxs("span", { className: `inline-flex items-center gap-1.5 text-sm ${STATUS_META[u.status].text}`, children: [_jsx("span", { className: `h-2 w-2 rounded-full ${STATUS_META[u.status].dot}`, "aria-hidden": true }), STATUS_META[u.status].label] }), u.isCurrentUser && (_jsx("span", { className: "bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-xs", children: "You" })), u.externalDomain && (_jsx("span", { className: "bg-warning/10 text-warning rounded px-1.5 py-0.5 text-xs", children: "External domain" }))] }), _jsxs("dl", { className: "grid grid-cols-2 gap-x-4 gap-y-4", children: [_jsx(Fact, { label: "Role", value: u.roleName }), _jsx(Fact, { label: "Status", value: STATUS_META[u.status].label }), _jsx(Fact, { label: "Last active", value: relativeTime(u.lastActiveAt) }), _jsx(Fact, { label: "Last sign-in", value: relativeTime(u.lastLoginAt) }), _jsx(Fact, { label: "Created", value: formatDate(u.createdAt) }), _jsx(Fact, { label: "Accepted invite", value: formatDate(u.acceptedInviteAt) }), _jsx(Fact, { label: "Invited by", value: u.invitedBy ? (u.invitedBy.name) : (_jsx("span", { className: "text-muted-foreground", children: "\u2014" })) }), _jsx(Fact, { label: "Email domain", value: u.email.split('@')[1] ?? '—' }), _jsx(Fact, { label: "Content owned", value: `${u.contentOwnedCount} ${u.contentOwnedCount === 1 ? 'item' : 'items'}` }), _jsx(Fact, { label: "Email verified", value: u.emailVerified ? 'Yes' : _jsx("span", { className: "text-warning", children: "No" }) }), u.authProvider && _jsx(Fact, { label: "Auth provider", value: u.authProvider }), u.oauthProviders.length > 0 && (_jsx(Fact, { label: "Connected accounts", value: u.oauthProviders.join(', ') }))] }), u.contentOwnedCount > 0 && (_jsxs("div", { className: "border-info/30 bg-info/5 text-muted-foreground mt-4 flex items-start gap-2 rounded-md border p-3 text-xs", children: [_jsx(FileText, { size: 14, className: "text-info mt-0.5 shrink-0", "aria-hidden": true }), _jsxs("span", { children: ["This user owns ", u.contentOwnedCount, " content", ' ', u.contentOwnedCount === 1 ? 'item' : 'items', ". Revoking access suspends the account and preserves their content and authorship."] })] }))] }), _jsxs(Tabs.Content, { value: "security", tabIndex: -1, className: "focus:outline-none", children: [_jsx(SecurityRow, { icon: u.mfaEnabled ? _jsx(ShieldCheck, { size: 16 }) : _jsx(ShieldAlert, { size: 16 }), title: "Multi-factor authentication", description: u.mfaEnabled
222
+ return (_jsx(_Fragment, { children: _jsxs(Drawer, { open: open, onOpenChange: onOpenChange, width: "max-w-xl", title: u ? u.name : detail.loading ? 'Loading…' : 'User', description: u?.email, headerExtra: u ? (_jsx("span", { className: `mr-1 inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${ROLE_PILL[u.roleName] ?? ROLE_PILL.Viewer}`, children: u.roleName })) : undefined, children: [detail.loading ? (_jsxs("div", { className: "space-y-3", children: [_jsx(Skeleton, { variant: "card" }), _jsx(Skeleton, { variant: "table-row", lines: 4 })] })) : detail.error || !u ? (_jsxs("div", { className: "flex items-center gap-3 py-6", children: [_jsx(AlertTriangle, { size: 18, className: "text-destructive shrink-0", "aria-hidden": true }), _jsx("span", { className: "text-destructive flex-1 text-sm", children: detail.error ?? 'User not found.' }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => detail.refetch(), children: "Retry" })] })) : (_jsxs(Tabs.Root, { value: tab, onValueChange: setTab, children: [_jsx(Tabs.List, { className: "border-border mb-4 flex gap-1 overflow-x-auto border-b", "aria-label": "User detail sections", children: TABS.map((t) => (_jsx(Tabs.Trigger, { value: t.id, className: "text-muted-foreground hover:text-foreground data-[state=active]:text-foreground data-[state=active]:border-brand focus-visible:ring-ring -mb-px shrink-0 border-b-2 border-transparent px-3 py-2 text-sm font-medium transition-colors focus-visible:ring-2 focus-visible:outline-none", children: t.label }, t.id))) }), _jsxs(Tabs.Content, { value: "overview", tabIndex: -1, className: "focus:outline-none", children: [_jsxs("div", { className: "mb-4 flex items-center gap-2", children: [_jsxs("span", { className: `inline-flex items-center gap-1.5 text-sm ${STATUS_META[u.status].text}`, children: [_jsx("span", { className: `h-2 w-2 rounded-full ${STATUS_META[u.status].dot}`, "aria-hidden": true }), STATUS_META[u.status].label] }), u.isCurrentUser && (_jsx("span", { className: "bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-xs", children: "You" })), u.externalDomain && (_jsx("span", { className: "bg-warning/10 text-warning rounded px-1.5 py-0.5 text-xs", children: "External domain" }))] }), _jsxs("dl", { className: "grid grid-cols-2 gap-x-4 gap-y-4", children: [_jsx(Fact, { label: "Role", value: u.roleName }), _jsx(Fact, { label: "Status", value: STATUS_META[u.status].label }), _jsx(Fact, { label: "Last active", value: relativeTime(u.lastActiveAt) }), _jsx(Fact, { label: "Last sign-in", value: relativeTime(u.lastLoginAt) }), _jsx(Fact, { label: "Created", value: formatDate(u.createdAt) }), _jsx(Fact, { label: "Accepted invite", value: formatDate(u.acceptedInviteAt) }), _jsx(Fact, { label: "Invited by", value: u.invitedBy ? (u.invitedBy.name) : (_jsx("span", { className: "text-muted-foreground", children: "\u2014" })) }), _jsx(Fact, { label: "Email domain", value: u.email.split('@')[1] ?? '—' }), _jsx(Fact, { label: "Content owned", value: `${u.contentOwnedCount} ${u.contentOwnedCount === 1 ? 'item' : 'items'}` }), _jsx(Fact, { label: "Email verified", value: u.emailVerified ? 'Yes' : _jsx("span", { className: "text-warning", children: "No" }) }), u.authProvider && _jsx(Fact, { label: "Auth provider", value: u.authProvider }), u.oauthProviders.length > 0 && (_jsx(Fact, { label: "Connected accounts", value: u.oauthProviders.join(', ') }))] }), u.contentOwnedCount > 0 && (_jsxs("div", { className: "border-info/30 bg-info/5 mt-4 flex items-start gap-2 rounded-md border p-3", children: [_jsx(FileText, { size: 14, className: "text-info mt-0.5 shrink-0", "aria-hidden": true }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("p", { className: "text-muted-foreground text-xs", children: ["This user owns ", u.contentOwnedCount, " content", ' ', u.contentOwnedCount === 1 ? 'item' : 'items', ". Revoking access suspends the account and preserves their content and authorship \u2014 or reassign it to another member first."] }), _jsx(Button, { size: "sm", variant: "outline", className: "mt-2", leftIcon: _jsx(FileText, { size: 14, "aria-hidden": true }), onClick: () => setShowTransfer(true), children: "Transfer content" })] })] }))] }), _jsxs(Tabs.Content, { value: "security", tabIndex: -1, className: "focus:outline-none", children: [_jsx(SecurityRow, { icon: u.mfaEnabled ? _jsx(ShieldCheck, { size: 16 }) : _jsx(ShieldAlert, { size: 16 }), title: "Multi-factor authentication", description: u.mfaEnabled
183
223
  ? 'Enabled for this account.'
184
224
  : u.mfaRequired
185
225
  ? 'Required but not yet enrolled.'
@@ -228,9 +268,9 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }) {
228
268
  onConfirm: () => runAction('revoke-all', `/users/${u.id}/sessions/revoke-all`, { method: 'POST' }, { successMsg: 'Sessions revoked.', after: () => sessions.refetch() }),
229
269
  }), children: "Revoke all" }) }), _jsx("ul", { className: "space-y-2", children: sessions.data
230
270
  ?.filter((s) => s.active)
231
- .map((s) => (_jsxs("li", { className: "border-border flex items-center justify-between gap-3 rounded-md border p-3", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [_jsx(Monitor, { size: 16, className: "text-muted-foreground shrink-0", "aria-hidden": true }), _jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "text-card-foreground flex items-center gap-1.5 text-sm", children: [_jsx("span", { className: "truncate", children: s.deviceLabel }), s.current && (_jsx("span", { className: "bg-success/10 text-success rounded px-1 text-[10px]", children: "This device" }))] }), _jsxs("div", { className: "text-muted-foreground text-xs", children: ["Signed in ", relativeTime(s.createdAt), " \u00B7 expires", ' ', formatDate(s.expiresAt)] })] })] }), _jsx("button", { type: "button", disabled: pending === `revoke-${s.id}`, onClick: () => runAction(`revoke-${s.id}`, `/users/${u.id}/sessions/${s.id}`, { method: 'DELETE' }, { successMsg: 'Session revoked.', after: () => sessions.refetch() }), className: "text-muted-foreground hover:text-destructive shrink-0 text-xs font-medium transition-colors disabled:opacity-50", children: "Revoke" })] }, s.id))) })] })) }), _jsx(Tabs.Content, { value: "activity", tabIndex: -1, className: "focus:outline-none", children: activity.loading ? (_jsx(Skeleton, { variant: "table-row", lines: 4 })) : activity.error ? (_jsxs("div", { className: "flex items-center gap-3 py-4", children: [_jsx(AlertTriangle, { size: 16, className: "text-destructive shrink-0", "aria-hidden": true }), _jsx("span", { className: "text-destructive flex-1 text-sm", children: activity.error }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => activity.refetch(), children: "Retry" })] })) : (activity.data?.length ?? 0) === 0 ? (_jsx(EmptyState, { icon: _jsx(ActivityIcon, { size: 24, "aria-hidden": true }), title: "No recent activity", description: "Audit events for this user will appear here." })) : (_jsx("ul", { className: "space-y-1", children: activity.data?.map((e) => (_jsxs("li", { className: "hover:bg-accent/30 flex items-center justify-between gap-3 rounded-md px-2 py-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [_jsx(ActivityIcon, { size: 14, className: "text-muted-foreground shrink-0", "aria-hidden": true }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-card-foreground truncate text-sm", children: humanizeEvent(e.event) }), _jsxs("div", { className: "text-muted-foreground text-xs", children: [e.role === 'target' ? 'Affected this user' : 'Performed by this user', e.ipAddress ? ` · ${e.ipAddress}` : ''] })] })] }), _jsx("span", { className: "text-muted-foreground shrink-0 text-xs", children: relativeTime(e.timestamp) })] }, e.id))) })) }), _jsx(Tabs.Content, { value: "permissions", tabIndex: -1, className: "focus:outline-none", children: perms.loading ? (_jsx(Skeleton, { variant: "table-row", lines: 4 })) : perms.error ? (_jsxs("div", { className: "flex items-center gap-3 py-4", children: [_jsx(AlertTriangle, { size: 16, className: "text-destructive shrink-0", "aria-hidden": true }), _jsx("span", { className: "text-destructive flex-1 text-sm", children: perms.error }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => perms.refetch(), children: "Retry" })] })) : perms.data ? (_jsxs(_Fragment, { children: [_jsxs("p", { className: "text-muted-foreground mb-3 text-sm", children: ["Effective role", ' ', _jsx("span", { className: "text-card-foreground font-medium", children: perms.data.roleName }), ' ', "grants ", perms.data.permissions.length, " permission", perms.data.permissions.length === 1 ? '' : 's', ". Permissions are derived from the role and managed in configuration."] }), _jsx("ul", { className: "flex flex-wrap gap-1.5", children: perms.data.permissions.map((p) => (_jsxs("li", { className: "border-border bg-muted/50 text-card-foreground inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs", children: [_jsx(Check, { size: 12, className: "text-success", "aria-hidden": true }), p] }, p))) })] })) : null })] })) }), confirm && (_jsx(ConfirmDialog, { open: !!confirm, onClose: () => setConfirm(null), onConfirm: confirm.onConfirm, title: confirm.title, description: confirm.description, confirmLabel: confirm.confirmLabel, destructive: confirm.destructive })), _jsx(ReauthDialog, { open: !!reauth, onClose: () => setReauth(null), onSubmit: async (password) => {
232
- if (reauth)
233
- await reauth.run(password);
234
- } })] }));
271
+ .map((s) => (_jsxs("li", { className: "border-border flex items-center justify-between gap-3 rounded-md border p-3", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [_jsx(Monitor, { size: 16, className: "text-muted-foreground shrink-0", "aria-hidden": true }), _jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "text-card-foreground flex items-center gap-1.5 text-sm", children: [_jsx("span", { className: "truncate", children: s.deviceLabel }), s.current && (_jsx("span", { className: "bg-success/10 text-success rounded px-1 text-[10px]", children: "This device" }))] }), _jsxs("div", { className: "text-muted-foreground text-xs", children: ["Signed in ", relativeTime(s.createdAt), " \u00B7 expires", ' ', formatDate(s.expiresAt)] })] })] }), _jsx("button", { type: "button", disabled: pending === `revoke-${s.id}`, onClick: () => runAction(`revoke-${s.id}`, `/users/${u.id}/sessions/${s.id}`, { method: 'DELETE' }, { successMsg: 'Session revoked.', after: () => sessions.refetch() }), className: "text-muted-foreground hover:text-destructive shrink-0 text-xs font-medium transition-colors disabled:opacity-50", children: "Revoke" })] }, s.id))) })] })) }), _jsx(Tabs.Content, { value: "activity", tabIndex: -1, className: "focus:outline-none", children: activity.loading ? (_jsx(Skeleton, { variant: "table-row", lines: 4 })) : activity.error ? (_jsxs("div", { className: "flex items-center gap-3 py-4", children: [_jsx(AlertTriangle, { size: 16, className: "text-destructive shrink-0", "aria-hidden": true }), _jsx("span", { className: "text-destructive flex-1 text-sm", children: activity.error }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => activity.refetch(), children: "Retry" })] })) : (activity.data?.length ?? 0) === 0 ? (_jsx(EmptyState, { icon: _jsx(ActivityIcon, { size: 24, "aria-hidden": true }), title: "No recent activity", description: "Audit events for this user will appear here." })) : (_jsx("ul", { className: "space-y-1", children: activity.data?.map((e) => (_jsxs("li", { className: "hover:bg-accent/30 flex items-center justify-between gap-3 rounded-md px-2 py-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [_jsx(ActivityIcon, { size: 14, className: "text-muted-foreground shrink-0", "aria-hidden": true }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-card-foreground truncate text-sm", children: humanizeEvent(e.event) }), _jsxs("div", { className: "text-muted-foreground text-xs", children: [e.role === 'target' ? 'Affected this user' : 'Performed by this user', e.ipAddress ? ` · ${e.ipAddress}` : ''] })] })] }), _jsx("span", { className: "text-muted-foreground shrink-0 text-xs", children: relativeTime(e.timestamp) })] }, e.id))) })) }), _jsx(Tabs.Content, { value: "permissions", tabIndex: -1, className: "focus:outline-none", children: perms.loading ? (_jsx(Skeleton, { variant: "table-row", lines: 4 })) : perms.error ? (_jsxs("div", { className: "flex items-center gap-3 py-4", children: [_jsx(AlertTriangle, { size: 16, className: "text-destructive shrink-0", "aria-hidden": true }), _jsx("span", { className: "text-destructive flex-1 text-sm", children: perms.error }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => perms.refetch(), children: "Retry" })] })) : perms.data ? (_jsxs(_Fragment, { children: [_jsxs("p", { className: "text-muted-foreground mb-3 text-sm", children: ["Effective role", ' ', _jsx("span", { className: "text-card-foreground font-medium", children: perms.data.roleName }), ' ', "grants ", perms.data.permissions.length, " permission", perms.data.permissions.length === 1 ? '' : 's', ". Permissions are derived from the role and managed in configuration."] }), _jsx("ul", { className: "flex flex-wrap gap-1.5", children: perms.data.permissions.map((p) => (_jsxs("li", { className: "border-border bg-muted/50 text-card-foreground inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs", children: [_jsx(Check, { size: 12, className: "text-success", "aria-hidden": true }), p] }, p))) })] })) : null })] })), confirm && (_jsx(ConfirmDialog, { open: !!confirm, onClose: () => setConfirm(null), onConfirm: confirm.onConfirm, title: confirm.title, description: confirm.description, confirmLabel: confirm.confirmLabel, destructive: confirm.destructive })), _jsx(ReauthDialog, { open: !!reauth, onClose: () => setReauth(null), onSubmit: async (password) => {
272
+ if (reauth)
273
+ await reauth.run(password);
274
+ } }), u && (_jsx(TransferContentModal, { open: showTransfer, onClose: () => setShowTransfer(false), fromUser: { id: u.id, name: u.name, contentOwnedCount: u.contentOwnedCount }, onTransferred: refreshAfterChange }))] }) }));
235
275
  }
236
276
  //# sourceMappingURL=UserDetailDrawer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserDetailDrawer.js","sourceRoot":"","sources":["../../../src/views/users/UserDetailDrawer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserDetailDrawer.js","sourceRoot":"","sources":["../../../src/views/users/UserDetailDrawer.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actuate-media/cms-admin",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/actuate-media/actuatecms.git",
@@ -88,7 +88,7 @@
88
88
  "tailwindcss": "^4.0.0",
89
89
  "typescript": "^5.7.0",
90
90
  "vitest": "^4.1.0",
91
- "@actuate-media/cms-core": "0.40.0",
91
+ "@actuate-media/cms-core": "0.41.0",
92
92
  "@actuate-media/component-blocks": "0.2.0"
93
93
  },
94
94
  "scripts": {
@@ -62,11 +62,32 @@ const PERMISSIONS = {
62
62
  const { cmsApi } = vi.hoisted(() => ({ cmsApi: vi.fn() }))
63
63
  vi.mock('../../lib/api.js', () => ({ cmsApi }))
64
64
 
65
+ const DIRECTORY = [
66
+ {
67
+ id: 'u1',
68
+ name: 'Priya Nair',
69
+ email: 'priya@actuatemedia.com',
70
+ status: 'active',
71
+ isCurrentUser: false,
72
+ },
73
+ {
74
+ id: 'u2',
75
+ name: 'Dana Chen',
76
+ email: 'dana@actuatemedia.com',
77
+ status: 'active',
78
+ isCurrentUser: false,
79
+ },
80
+ ]
81
+
65
82
  cmsApi.mockImplementation(async (endpoint?: string) => {
66
83
  if (!endpoint) return { data: null, status: 200 }
84
+ if (endpoint.includes('/transfer-content'))
85
+ return { data: { documents: 4, media: 0, templates: 0, total: 4 }, status: 200 }
67
86
  if (endpoint.endsWith('/sessions')) return { data: SESSIONS, status: 200 }
68
87
  if (endpoint.endsWith('/permissions')) return { data: PERMISSIONS, status: 200 }
69
88
  if (endpoint.endsWith('/activity')) return { data: [], status: 200 }
89
+ if (endpoint === '/users' || endpoint.startsWith('/users?'))
90
+ return { data: DIRECTORY, status: 200 }
70
91
  if (endpoint.startsWith('/users/u1')) return { data: DETAIL, status: 200 }
71
92
  return { data: null, status: 200 }
72
93
  })
@@ -116,4 +137,26 @@ describe('UserDetailDrawer', () => {
116
137
  await waitFor(() => expect(screen.getByText('content.publish')).toBeTruthy())
117
138
  expect(screen.getByText('dashboard.view')).toBeTruthy()
118
139
  })
140
+
141
+ it('transfers content ownership to a chosen active recipient', async () => {
142
+ render(<UserDetailDrawer userId="u1" open onOpenChange={() => {}} />)
143
+ await screen.findByText('Priya Nair')
144
+
145
+ fireEvent.click(screen.getByRole('button', { name: 'Transfer content' }))
146
+
147
+ // Modal opens and loads the directory, excluding the target (u1).
148
+ expect(await screen.findByText('Transfer content ownership')).toBeTruthy()
149
+ const select = (await screen.findByLabelText('Transfer to')) as HTMLSelectElement
150
+ fireEvent.change(select, { target: { value: 'u2' } })
151
+
152
+ fireEvent.click(screen.getByRole('button', { name: 'Transfer' }))
153
+
154
+ await waitFor(() =>
155
+ expect(
156
+ cmsApi.mock.calls.some(([endpoint]) =>
157
+ String(endpoint).includes('/users/u1/transfer-content'),
158
+ ),
159
+ ).toBe(true),
160
+ )
161
+ })
119
162
  })
@@ -227,6 +227,126 @@ function ReauthDialog({
227
227
  )
228
228
  }
229
229
 
230
+ // ---------------------------------------------------------------------------
231
+ // Transfer content modal
232
+ // ---------------------------------------------------------------------------
233
+
234
+ interface TransferMember {
235
+ id: string
236
+ name: string
237
+ email: string
238
+ status: string
239
+ isCurrentUser: boolean
240
+ }
241
+
242
+ function TransferContentModal({
243
+ open,
244
+ onClose,
245
+ fromUser,
246
+ onTransferred,
247
+ }: {
248
+ open: boolean
249
+ onClose: () => void
250
+ fromUser: { id: string; name: string; contentOwnedCount: number }
251
+ onTransferred: () => void
252
+ }) {
253
+ // Only fetch the directory while the picker is open.
254
+ const members = useApiData<TransferMember[]>(open ? '/users' : null)
255
+ const [toUserId, setToUserId] = useState('')
256
+ const [busy, setBusy] = useState(false)
257
+
258
+ const recipients = (members.data ?? []).filter(
259
+ (m) => m.id !== fromUser.id && m.status === 'active',
260
+ )
261
+
262
+ const submit = async () => {
263
+ if (!toUserId || busy) return
264
+ setBusy(true)
265
+ try {
266
+ const res = await cmsApi<{
267
+ documents: number
268
+ media: number
269
+ templates: number
270
+ total: number
271
+ }>(`/users/${fromUser.id}/transfer-content`, {
272
+ method: 'POST',
273
+ body: JSON.stringify({ toUserId }),
274
+ })
275
+ if (res.error) {
276
+ toast.error(res.error)
277
+ return
278
+ }
279
+ const c = res.data
280
+ toast.success(
281
+ c && c.total > 0
282
+ ? `Transferred ${c.total} item${c.total === 1 ? '' : 's'} (${c.documents} docs, ${c.media} media, ${c.templates} templates).`
283
+ : 'Nothing to transfer.',
284
+ )
285
+ setToUserId('')
286
+ onClose()
287
+ onTransferred()
288
+ } finally {
289
+ setBusy(false)
290
+ }
291
+ }
292
+
293
+ return (
294
+ <Modal
295
+ open={open}
296
+ onClose={() => {
297
+ setToUserId('')
298
+ onClose()
299
+ }}
300
+ title="Transfer content ownership"
301
+ actions={
302
+ <>
303
+ <Button
304
+ variant="ghost"
305
+ onClick={() => {
306
+ setToUserId('')
307
+ onClose()
308
+ }}
309
+ >
310
+ Cancel
311
+ </Button>
312
+ <Button variant="primary" loading={busy} disabled={!toUserId || busy} onClick={submit}>
313
+ Transfer
314
+ </Button>
315
+ </>
316
+ }
317
+ >
318
+ <p className="text-muted-foreground mb-3 text-sm">
319
+ Reassign {fromUser.name}&apos;s authored documents, uploaded media, and templates to another
320
+ active member. Version history and audit records are left unchanged.
321
+ </p>
322
+ <label htmlFor="transfer-to" className="text-card-foreground mb-1 block text-sm font-medium">
323
+ Transfer to
324
+ </label>
325
+ {members.loading ? (
326
+ <Skeleton variant="table-row" lines={1} />
327
+ ) : recipients.length === 0 ? (
328
+ <p className="text-muted-foreground text-sm">
329
+ No other active members to receive the content.
330
+ </p>
331
+ ) : (
332
+ <select
333
+ id="transfer-to"
334
+ value={toUserId}
335
+ onChange={(e) => setToUserId(e.target.value)}
336
+ className="border-border bg-input-background text-foreground focus:ring-brand w-full rounded-md border px-3 py-2 text-sm focus:ring-2 focus:outline-none"
337
+ >
338
+ <option value="">Select a member…</option>
339
+ {recipients.map((m) => (
340
+ <option key={m.id} value={m.id}>
341
+ {m.name} ({m.email})
342
+ </option>
343
+ ))}
344
+ </select>
345
+ )}
346
+ </Modal>
347
+ )
348
+ }
349
+
230
350
  // ---------------------------------------------------------------------------
231
351
  // Small presentational bits
232
352
  // ---------------------------------------------------------------------------
@@ -309,6 +429,7 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
309
429
  onConfirm: () => void
310
430
  } | null>(null)
311
431
  const [pending, setPending] = useState<string | null>(null)
432
+ const [showTransfer, setShowTransfer] = useState(false)
312
433
 
313
434
  const refreshAfterChange = useCallback(() => {
314
435
  detail.refetch()
@@ -469,13 +590,25 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
469
590
  )}
470
591
  </dl>
471
592
  {u.contentOwnedCount > 0 && (
472
- <div className="border-info/30 bg-info/5 text-muted-foreground mt-4 flex items-start gap-2 rounded-md border p-3 text-xs">
593
+ <div className="border-info/30 bg-info/5 mt-4 flex items-start gap-2 rounded-md border p-3">
473
594
  <FileText size={14} className="text-info mt-0.5 shrink-0" aria-hidden />
474
- <span>
475
- This user owns {u.contentOwnedCount} content{' '}
476
- {u.contentOwnedCount === 1 ? 'item' : 'items'}. Revoking access suspends the
477
- account and preserves their content and authorship.
478
- </span>
595
+ <div className="min-w-0 flex-1">
596
+ <p className="text-muted-foreground text-xs">
597
+ This user owns {u.contentOwnedCount} content{' '}
598
+ {u.contentOwnedCount === 1 ? 'item' : 'items'}. Revoking access suspends the
599
+ account and preserves their content and authorship — or reassign it to another
600
+ member first.
601
+ </p>
602
+ <Button
603
+ size="sm"
604
+ variant="outline"
605
+ className="mt-2"
606
+ leftIcon={<FileText size={14} aria-hidden />}
607
+ onClick={() => setShowTransfer(true)}
608
+ >
609
+ Transfer content
610
+ </Button>
611
+ </div>
479
612
  </div>
480
613
  )}
481
614
  </Tabs.Content>
@@ -898,27 +1031,39 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
898
1031
  </Tabs.Content>
899
1032
  </Tabs.Root>
900
1033
  )}
901
- </Drawer>
902
1034
 
903
- {confirm && (
904
- <ConfirmDialog
905
- open={!!confirm}
906
- onClose={() => setConfirm(null)}
907
- onConfirm={confirm.onConfirm}
908
- title={confirm.title}
909
- description={confirm.description}
910
- confirmLabel={confirm.confirmLabel}
911
- destructive={confirm.destructive}
1035
+ {/* Auxiliary dialogs live inside the Drawer subtree so Radix's focus
1036
+ scope and aria-hidden management treat them as part of the active
1037
+ dialog rather than hiding them as background content. */}
1038
+ {confirm && (
1039
+ <ConfirmDialog
1040
+ open={!!confirm}
1041
+ onClose={() => setConfirm(null)}
1042
+ onConfirm={confirm.onConfirm}
1043
+ title={confirm.title}
1044
+ description={confirm.description}
1045
+ confirmLabel={confirm.confirmLabel}
1046
+ destructive={confirm.destructive}
1047
+ />
1048
+ )}
1049
+
1050
+ <ReauthDialog
1051
+ open={!!reauth}
1052
+ onClose={() => setReauth(null)}
1053
+ onSubmit={async (password) => {
1054
+ if (reauth) await reauth.run(password)
1055
+ }}
912
1056
  />
913
- )}
914
1057
 
915
- <ReauthDialog
916
- open={!!reauth}
917
- onClose={() => setReauth(null)}
918
- onSubmit={async (password) => {
919
- if (reauth) await reauth.run(password)
920
- }}
921
- />
1058
+ {u && (
1059
+ <TransferContentModal
1060
+ open={showTransfer}
1061
+ onClose={() => setShowTransfer(false)}
1062
+ fromUser={{ id: u.id, name: u.name, contentOwnedCount: u.contentOwnedCount }}
1063
+ onTransferred={refreshAfterChange}
1064
+ />
1065
+ )}
1066
+ </Drawer>
922
1067
  </>
923
1068
  )
924
1069
  }