From 7376d1162db36521c1b994731e3aaf1c7c3b33a5 Mon Sep 17 00:00:00 2001 From: Pavel Zavora Date: Tue, 24 May 2022 19:14:09 +0200 Subject: [PATCH] feat(ui): show RW permission in DB columns on Users page --- ui/src/admin/components/FilterBar.js | 20 +++--- ui/src/admin/components/UserRow.tsx | 65 ++++++++----------- ui/src/admin/containers/influxdb/UserPage.tsx | 4 +- .../admin/containers/influxdb/UsersPage.tsx | 42 ++++++++++-- ui/src/style/pages/admin.scss | 22 ++++++- 5 files changed, 97 insertions(+), 56 deletions(-) diff --git a/ui/src/admin/components/FilterBar.js b/ui/src/admin/components/FilterBar.js index 2d2b11c52..60bc84a42 100644 --- a/ui/src/admin/components/FilterBar.js +++ b/ui/src/admin/components/FilterBar.js @@ -29,15 +29,17 @@ class FilterBar extends Component { }) return (
-
- - +
+
+ + +
))} diff --git a/ui/src/admin/containers/influxdb/UsersPage.tsx b/ui/src/admin/containers/influxdb/UsersPage.tsx index 6b336bb65..e48b03618 100644 --- a/ui/src/admin/containers/influxdb/UsersPage.tsx +++ b/ui/src/admin/containers/influxdb/UsersPage.tsx @@ -113,6 +113,24 @@ const UsersPage = ({ [source] ) const visibleUsers = useMemo(() => users.filter(x => !x.hidden), [users]) + const userDBPermissions = useMemo>>>( + () => + visibleUsers.map(u => { + const permRecord = u.permissions.reduce((acc, userPerm) => { + if (userPerm.scope === 'database') { + acc[userPerm.name] = userPerm.allowed.reduce< + Record + >((obj, perm) => { + obj[perm] = true + return obj + }, {}) + } + return acc + }, {}) + return databases.map(db => permRecord[db.name] || {}) + }), + [databases, visibleUsers] + ) return (
@@ -124,26 +142,40 @@ const UsersPage = ({ />
- +
- + + {visibleUsers.length && + (hasRoles ? ( + + ) : ( + databases.map(db => ( + + )) + ))} {visibleUsers.length ? ( - visibleUsers.map(user => ( + visibleUsers.map((user, userIndex) => ( )) ) : ( - + )}
User {hasRoles ? 'Roles' : 'Admin'} PermissionsPermissions + {db.name} +
diff --git a/ui/src/style/pages/admin.scss b/ui/src/style/pages/admin.scss index dd4767b10..bf5844bda 100644 --- a/ui/src/style/pages/admin.scss +++ b/ui/src/style/pages/admin.scss @@ -25,6 +25,10 @@ span.permission--allowed{ font-style: italic; } + + &.admin-table--compact{ + width: auto + } } .admin-table .dropdown-toggle { @@ -60,6 +64,13 @@ table > tbody > tr > td.admin-table--left-offset, table > thead > tr > th.admin-table--left-offset { padding-left: 15px; } +table > thead > tr > th.admin-table__dbheader { + font-weight: 450; + padding: 8px 12px; +} +table > tbody > tr > td.admin-table__dbperm { + min-width: 100px; +} .admin-table > thead > tr > th.col--sort-asc, .admin-table > thead > tr > th.col--sort-desc { @@ -133,7 +144,7 @@ pre.admin-table--query { .influxdb-admin--contents{ height: calc(100%-60px); } - .permission-value{ + div.permission-value{ @include btn-base-styles( $g5-pepper, $g6-smoke, @@ -171,6 +182,15 @@ pre.admin-table--query { } } } + span.permission-value{ + padding: 0 2px; + display: inline-block; + color: $g18-cloud; + &.denied { + font-style: italic; + color: $g5-pepper; + } + } } .influxdb-admin.panel.panel-solid { border-radius: 0px;