@prenta/admin 1.8.0 → 1.9.1
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.
- package/CHANGELOG.md +17 -0
- package/design-system/tokens.css +38 -6
- package/design-system/tokens.json +36 -6
- package/design-system/tokens.scss +6 -6
- package/dist/AdminRoot.d.ts.map +1 -1
- package/dist/AdminRoot.js +14 -4
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/components/author-avatar.test.js +18 -1
- package/dist/__tests__/components/author-avatar.test.js.map +1 -1
- package/dist/__tests__/lib/logout-redirect.test.d.ts +2 -0
- package/dist/__tests__/lib/logout-redirect.test.d.ts.map +1 -0
- package/dist/__tests__/lib/logout-redirect.test.js +29 -0
- package/dist/__tests__/lib/logout-redirect.test.js.map +1 -0
- package/dist/__tests__/lib/pages-service.test.js +21 -6
- package/dist/__tests__/lib/pages-service.test.js.map +1 -1
- package/dist/__tests__/lib/utils.test.js +2 -1
- package/dist/__tests__/lib/utils.test.js.map +1 -1
- package/dist/__tests__/styles/tokens-drift.test.js +32 -0
- package/dist/__tests__/styles/tokens-drift.test.js.map +1 -1
- package/dist/__tests__/views/login-root.render.test.js +6 -0
- package/dist/__tests__/views/login-root.render.test.js.map +1 -1
- package/dist/__tests__/views/security-settings.render.test.js +1 -0
- package/dist/__tests__/views/security-settings.render.test.js.map +1 -1
- package/dist/__tests__/views/trash.render.test.js +33 -0
- package/dist/__tests__/views/trash.render.test.js.map +1 -1
- package/dist/__tests__/views/user-detail-drawer.render.test.js +1 -0
- package/dist/__tests__/views/user-detail-drawer.render.test.js.map +1 -1
- package/dist/__tests__/views/users-selected-deeplink.render.test.js +1 -0
- package/dist/__tests__/views/users-selected-deeplink.render.test.js.map +1 -1
- package/dist/components/LivePreview.d.ts.map +1 -1
- package/dist/components/LivePreview.js +2 -1
- package/dist/components/LivePreview.js.map +1 -1
- package/dist/components/PresenceIndicator.d.ts.map +1 -1
- package/dist/components/PresenceIndicator.js +3 -1
- package/dist/components/PresenceIndicator.js.map +1 -1
- package/dist/components/ui/AuthorAvatar.d.ts +12 -0
- package/dist/components/ui/AuthorAvatar.d.ts.map +1 -1
- package/dist/components/ui/AuthorAvatar.js +8 -8
- package/dist/components/ui/AuthorAvatar.js.map +1 -1
- package/dist/components/ui/DataTable.d.ts.map +1 -1
- package/dist/components/ui/DataTable.js +7 -1
- package/dist/components/ui/DataTable.js.map +1 -1
- package/dist/layout/Sidebar.js +1 -1
- package/dist/lib/logout-redirect.d.ts +19 -0
- package/dist/lib/logout-redirect.d.ts.map +1 -0
- package/dist/lib/logout-redirect.js +20 -0
- package/dist/lib/logout-redirect.js.map +1 -0
- package/dist/lib/pages-service.d.ts.map +1 -1
- package/dist/lib/pages-service.js +2 -16
- package/dist/lib/pages-service.js.map +1 -1
- package/dist/lib/sentry.d.ts.map +1 -1
- package/dist/lib/sentry.js +11 -0
- package/dist/lib/sentry.js.map +1 -1
- package/dist/prenta-admin.css +1 -1
- package/dist/views/CollectionList.d.ts.map +1 -1
- package/dist/views/CollectionList.js +6 -2
- package/dist/views/CollectionList.js.map +1 -1
- package/dist/views/Dashboard.d.ts.map +1 -1
- package/dist/views/Dashboard.js +4 -5
- package/dist/views/Dashboard.js.map +1 -1
- package/dist/views/Login.d.ts.map +1 -1
- package/dist/views/Login.js +4 -2
- package/dist/views/Login.js.map +1 -1
- package/dist/views/MediaBrowser.d.ts.map +1 -1
- package/dist/views/MediaBrowser.js +6 -5
- package/dist/views/MediaBrowser.js.map +1 -1
- package/dist/views/Posts/PostsListView.d.ts.map +1 -1
- package/dist/views/Posts/PostsListView.js +6 -5
- package/dist/views/Posts/PostsListView.js.map +1 -1
- package/dist/views/Redirects.d.ts.map +1 -1
- package/dist/views/Redirects.js +2 -1
- package/dist/views/Redirects.js.map +1 -1
- package/dist/views/settings/SessionPolicyCard.d.ts.map +1 -1
- package/dist/views/settings/SessionPolicyCard.js +3 -1
- package/dist/views/settings/SessionPolicyCard.js.map +1 -1
- package/dist/views/settings/useSecuritySettings.d.ts +2 -0
- package/dist/views/settings/useSecuritySettings.d.ts.map +1 -1
- package/dist/views/settings/useSecuritySettings.js +8 -0
- package/dist/views/settings/useSecuritySettings.js.map +1 -1
- package/dist/views/users/UserDetailDrawer.d.ts.map +1 -1
- package/dist/views/users/UserDetailDrawer.js +5 -5
- package/dist/views/users/UserDetailDrawer.js.map +1 -1
- package/package.json +4 -3
- package/src/AdminRoot.tsx +13 -4
- package/src/__tests__/components/author-avatar.test.tsx +22 -1
- package/src/__tests__/lib/logout-redirect.test.ts +35 -0
- package/src/__tests__/lib/pages-service.test.ts +22 -8
- package/src/__tests__/lib/utils.test.ts +2 -1
- package/src/__tests__/styles/tokens-drift.test.ts +46 -0
- package/src/__tests__/views/login-root.render.test.tsx +7 -0
- package/src/__tests__/views/security-settings.render.test.tsx +1 -0
- package/src/__tests__/views/trash.render.test.tsx +38 -0
- package/src/__tests__/views/user-detail-drawer.render.test.tsx +1 -0
- package/src/__tests__/views/users-selected-deeplink.render.test.tsx +1 -0
- package/src/components/LivePreview.tsx +2 -1
- package/src/components/PresenceIndicator.tsx +3 -1
- package/src/components/ui/AuthorAvatar.tsx +8 -8
- package/src/components/ui/DataTable.tsx +13 -1
- package/src/layout/Sidebar.tsx +1 -1
- package/src/lib/logout-redirect.ts +33 -0
- package/src/lib/pages-service.ts +1 -15
- package/src/lib/sentry.ts +11 -0
- package/src/styles/prenta-tokens.css +38 -6
- package/src/styles/theme.css +4 -2
- package/src/views/CollectionList.tsx +8 -4
- package/src/views/Dashboard.tsx +5 -11
- package/src/views/Login.tsx +15 -1
- package/src/views/MediaBrowser.tsx +35 -12
- package/src/views/Posts/PostsListView.tsx +13 -11
- package/src/views/Redirects.tsx +8 -5
- package/src/views/settings/SessionPolicyCard.tsx +40 -0
- package/src/views/settings/useSecuritySettings.ts +10 -0
- package/src/views/users/UserDetailDrawer.tsx +31 -5
|
@@ -72,6 +72,7 @@ interface UserDetail {
|
|
|
72
72
|
invitedBy: { id: string; name: string; email: string } | null
|
|
73
73
|
externalDomain: boolean
|
|
74
74
|
contentOwnedCount: number
|
|
75
|
+
liveApiKeyCount: number
|
|
75
76
|
isCurrentUser: boolean
|
|
76
77
|
}
|
|
77
78
|
|
|
@@ -505,6 +506,18 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
|
|
|
505
506
|
label="Content owned"
|
|
506
507
|
value={`${u.contentOwnedCount} ${u.contentOwnedCount === 1 ? 'item' : 'items'}`}
|
|
507
508
|
/>
|
|
509
|
+
<Fact
|
|
510
|
+
label="Live API keys"
|
|
511
|
+
value={
|
|
512
|
+
u.liveApiKeyCount > 0 ? (
|
|
513
|
+
<span className="text-warning">
|
|
514
|
+
{u.liveApiKeyCount} {u.liveApiKeyCount === 1 ? 'key' : 'keys'}
|
|
515
|
+
</span>
|
|
516
|
+
) : (
|
|
517
|
+
'None'
|
|
518
|
+
)
|
|
519
|
+
}
|
|
520
|
+
/>
|
|
508
521
|
<Fact
|
|
509
522
|
label="Email verified"
|
|
510
523
|
value={u.emailVerified ? 'Yes' : <span className="text-warning">No</span>}
|
|
@@ -541,7 +554,13 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
|
|
|
541
554
|
{/* Security ----------------------------------------------------- */}
|
|
542
555
|
<Tabs.Content value="security" tabIndex={-1} className="focus:outline-none">
|
|
543
556
|
<SecurityRow
|
|
544
|
-
icon={
|
|
557
|
+
icon={
|
|
558
|
+
u.mfaEnabled ? (
|
|
559
|
+
<ShieldCheck size={16} aria-hidden />
|
|
560
|
+
) : (
|
|
561
|
+
<ShieldAlert size={16} aria-hidden />
|
|
562
|
+
)
|
|
563
|
+
}
|
|
545
564
|
title="Multi-factor authentication"
|
|
546
565
|
description={
|
|
547
566
|
u.mfaEnabled
|
|
@@ -600,7 +619,7 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
|
|
|
600
619
|
}
|
|
601
620
|
/>
|
|
602
621
|
<SecurityRow
|
|
603
|
-
icon={<KeyRound size={16} />}
|
|
622
|
+
icon={<KeyRound size={16} aria-hidden />}
|
|
604
623
|
title="Password"
|
|
605
624
|
description={
|
|
606
625
|
u.ssoOnly
|
|
@@ -660,13 +679,19 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
|
|
|
660
679
|
}
|
|
661
680
|
/>
|
|
662
681
|
<SecurityRow
|
|
663
|
-
icon={<ShieldAlert size={16} />}
|
|
682
|
+
icon={<ShieldAlert size={16} aria-hidden />}
|
|
664
683
|
title="Failed sign-ins"
|
|
665
684
|
description={`${u.failedLoginCount} failed ${u.failedLoginCount === 1 ? 'attempt' : 'attempts'} on record.`}
|
|
666
685
|
action={null}
|
|
667
686
|
/>
|
|
668
687
|
<SecurityRow
|
|
669
|
-
icon={
|
|
688
|
+
icon={
|
|
689
|
+
u.status === 'locked' ? (
|
|
690
|
+
<Lock size={16} aria-hidden />
|
|
691
|
+
) : (
|
|
692
|
+
<Unlock size={16} aria-hidden />
|
|
693
|
+
)
|
|
694
|
+
}
|
|
670
695
|
title="Account lock"
|
|
671
696
|
description={
|
|
672
697
|
u.status === 'locked' ? 'Locked by a security policy or an admin.' : 'Not locked.'
|
|
@@ -717,7 +742,7 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
|
|
|
717
742
|
}
|
|
718
743
|
/>
|
|
719
744
|
<SecurityRow
|
|
720
|
-
icon={<Ban size={16} />}
|
|
745
|
+
icon={<Ban size={16} aria-hidden />}
|
|
721
746
|
title="Account access"
|
|
722
747
|
description={
|
|
723
748
|
u.status === 'suspended'
|
|
@@ -850,6 +875,7 @@ export function UserDetailDrawer({ userId, open, onOpenChange, onChanged }: User
|
|
|
850
875
|
<button
|
|
851
876
|
type="button"
|
|
852
877
|
disabled={pending === `revoke-${s.id}`}
|
|
878
|
+
aria-label={`Revoke session on ${s.deviceLabel}`}
|
|
853
879
|
onClick={() =>
|
|
854
880
|
runAction(
|
|
855
881
|
`revoke-${s.id}`,
|