diff --git a/ui/src/admin/components/chronograf/UsersTable.js b/ui/src/admin/components/chronograf/UsersTable.js index ccb1f3f1d..702c2115b 100644 --- a/ui/src/admin/components/chronograf/UsersTable.js +++ b/ui/src/admin/components/chronograf/UsersTable.js @@ -4,7 +4,13 @@ import _ from 'lodash' import Dropdown from 'shared/components/Dropdown' -import {DEFAULT_ORG, NO_ORG, USER_ROLES} from 'src/admin/constants/dummyUsers' +import { + DUMMY_ORGS, + DEFAULT_ORG, + NO_ORG, + NO_ROLE, + USER_ROLES, +} from 'src/admin/constants/dummyUsers' import {USERS_TABLE} from 'src/admin/constants/chronografTableSizing' class ChronografUsersTable extends Component { @@ -26,9 +32,19 @@ class ChronografUsersTable extends Component { // Expects Users to always have at least 1 role (as a member of the default org) if (user.roles.length === 1) { return ( - - {NO_ORG} - + { + return !(org.name === DEFAULT_ORG || org.name === NO_ORG) + }).map(r => ({ + ...r, + text: r.name, + }))} + selected={NO_ORG} + onChoose={this.handleChangeUserRole(user, NO_ROLE)} + buttonColor="btn-primary" + buttonSize="btn-xs" + className="dropdown-190" + /> ) } @@ -67,9 +83,9 @@ class ChronografUsersTable extends Component { renderRoleCell = user => { const {organizationName} = this.props - // Expects Users to always have at least 1 role (as a member of the default org) + // User must be part of more than one organization to be able to be assigned a role if (user.roles.length === 1) { - return No Role + return N/A } if (organizationName === DEFAULT_ORG) { @@ -87,17 +103,28 @@ class ChronografUsersTable extends Component { selected={role.name} onChoose={this.handleChangeUserRole(user, role)} buttonColor="btn-primary" - className="dropdown-140" + buttonSize="btn-xs" + className="dropdown-80" /> ) } - const currentOrg = user.roles.find( + const currentRole = user.roles.find( role => role.organizationName === organizationName ) return ( - {currentOrg.name} + ({ + ...r, + text: r.name, + }))} + selected={currentRole.name} + onChoose={this.handleChangeUserRole(user, currentRole)} + buttonColor="btn-primary" + buttonSize="btn-xs" + className="dropdown-80" + /> ) } diff --git a/ui/src/admin/constants/dummyUsers.js b/ui/src/admin/constants/dummyUsers.js index 621639fdf..cda7435dd 100644 --- a/ui/src/admin/constants/dummyUsers.js +++ b/ui/src/admin/constants/dummyUsers.js @@ -1,10 +1,12 @@ +export const NO_ROLE = 'No Role' + export const DUMMY_USERS = [ { name: 'thealexpaxton@gmail.com', provider: 'GitHub', scheme: 'oAuth2', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Green Team', organizationID: 1234, name: 'admin'}, {organizationName: 'Blue Team', organizationID: 1235, name: 'editor'}, ], @@ -14,7 +16,7 @@ export const DUMMY_USERS = [ provider: 'GitHub', scheme: 'oAuth2', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Green Team', organizationID: 1234, name: 'viewer'}, {organizationName: 'Red Team', organizationID: 1236, name: 'editor'}, ], @@ -24,7 +26,7 @@ export const DUMMY_USERS = [ provider: 'Heroku', scheme: 'LDAP', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Green Team', organizationID: 1234, name: 'editor'}, ], }, @@ -33,7 +35,7 @@ export const DUMMY_USERS = [ provider: 'GitHub', scheme: 'oAuth2', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Blue Team', organizationID: 1235, name: 'editor'}, ], }, @@ -42,7 +44,7 @@ export const DUMMY_USERS = [ provider: 'Heroku', scheme: 'oAuth2', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Red Team', organizationID: 1236, name: 'viewer'}, {organizationName: 'Blue Team', organizationID: 1235, name: 'viewer'}, ], @@ -52,7 +54,7 @@ export const DUMMY_USERS = [ provider: 'GitHub', scheme: 'oAuth2', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Green Team', organizationID: 1234, name: 'viewer'}, {organizationName: 'Blue Team', organizationID: 1235, name: 'viewer'}, {organizationName: 'Red Team', organizationID: 1236, name: 'viewer'}, @@ -63,7 +65,7 @@ export const DUMMY_USERS = [ provider: 'Generic', scheme: 'LDAP', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Red Team', organizationID: 1236, name: 'editor'}, ], }, @@ -71,26 +73,32 @@ export const DUMMY_USERS = [ name: 'lost.in.translation@gmail.com', provider: 'Generic', scheme: 'LDAP', - roles: [{organizationName: 'All Users', organizationID: 666, name: 'none'}], + roles: [ + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, + ], }, { name: 'wandering.soul@gmail.com', provider: 'Heroku', scheme: 'LDAP', - roles: [{organizationName: 'All Users', organizationID: 666, name: 'none'}], + roles: [ + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, + ], }, { name: 'disembodied@gmail.com', provider: 'GitHub', scheme: 'oAuth2', - roles: [{organizationName: 'All Users', organizationID: 666, name: 'none'}], + roles: [ + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, + ], }, { name: 'bob.builder@gmail.com', provider: 'Heroku', scheme: 'LDAP', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Red Team', organizationID: 1236, name: 'editor'}, ], }, @@ -99,7 +107,7 @@ export const DUMMY_USERS = [ provider: 'GitHub', scheme: 'oAuth2', roles: [ - {organizationName: 'All Users', organizationID: 666, name: 'none'}, + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, {organizationName: 'Blue Team', organizationID: 1234, name: 'admin'}, ], }, @@ -108,18 +116,30 @@ export const DUMMY_USERS = [ provider: 'GitHub', scheme: 'oAuth2', superadmin: true, - roles: [{organizationName: 'All Users', organizationID: 666, name: 'none'}], + roles: [ + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, + ], + }, + { + name: 'ohnooeezzz@gmail.com', + provider: 'GitHub', + scheme: 'oAuth2', + superadmin: true, + roles: [ + {organizationName: 'All Users', organizationID: 666, name: NO_ROLE}, + {organizationName: 'Blue Team', organizationID: 1234, name: NO_ROLE}, + ], }, ] export const USER_ROLES = [ - {name: 'None'}, - {name: 'Viewer'}, - {name: 'Editor'}, - {name: 'Admin'}, + {name: NO_ROLE}, + {name: 'viewer'}, + {name: 'editor'}, + {name: 'admin'}, ] export const DEFAULT_ORG = 'All Users' -export const NO_ORG = 'None' +export const NO_ORG = 'No Org' export const DUMMY_ORGS = [ {name: DEFAULT_ORG},