diff --git a/awx/ui_next/src/screens/User/User.jsx b/awx/ui_next/src/screens/User/User.jsx index d071cedd8f..8b5d10006e 100644 --- a/awx/ui_next/src/screens/User/User.jsx +++ b/awx/ui_next/src/screens/User/User.jsx @@ -21,7 +21,7 @@ import UserEdit from './UserEdit'; import UserOrganizations from './UserOrganizations'; import UserTeams from './UserTeams'; import UserTokens from './UserTokens'; -import UserAccessList from './UserAccess/UserAccessList'; +import UserRolesList from './UserRoles/UserRolesList'; function User({ i18n, setBreadcrumb, me }) { const location = useLocation(); @@ -68,7 +68,7 @@ function User({ i18n, setBreadcrumb, me }) { id: 1, }, { name: i18n._(t`Teams`), link: `${match.url}/teams`, id: 2 }, - { name: i18n._(t`Access`), link: `${match.url}/access`, id: 3 }, + { name: i18n._(t`Roles`), link: `${match.url}/roles`, id: 3 }, ]; if (me?.id === Number(match.params.id)) { @@ -128,8 +128,8 @@ function User({ i18n, setBreadcrumb, me }) { {user && ( - - + + )} diff --git a/awx/ui_next/src/screens/User/UserAccess/index.js b/awx/ui_next/src/screens/User/UserAccess/index.js deleted file mode 100644 index 5270c97adf..0000000000 --- a/awx/ui_next/src/screens/User/UserAccess/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { default as UserAccessList } from './UserAccessList'; -export { default as UserAccessListItem } from './UserAccessListItem'; diff --git a/awx/ui_next/src/screens/User/UserAccess/UserAccessList.jsx b/awx/ui_next/src/screens/User/UserRoles/UserRolesList.jsx similarity index 97% rename from awx/ui_next/src/screens/User/UserAccess/UserAccessList.jsx rename to awx/ui_next/src/screens/User/UserRoles/UserRolesList.jsx index 5e528913c1..a3c96a9964 100644 --- a/awx/ui_next/src/screens/User/UserAccess/UserAccessList.jsx +++ b/awx/ui_next/src/screens/User/UserRoles/UserRolesList.jsx @@ -18,7 +18,7 @@ import ErrorDetail from '../../../components/ErrorDetail'; import AlertModal from '../../../components/AlertModal'; import DatalistToolbar from '../../../components/DataListToolbar'; -import UserAccessListItem from './UserAccessListItem'; +import UserRolesListItem from './UserRolesListItem'; import UserAndTeamAccessAdd from '../../../components/UserAndTeamAccessAdd/UserAndTeamAccessAdd'; const QS_CONFIG = getQSConfig('roles', { @@ -29,7 +29,7 @@ const QS_CONFIG = getQSConfig('roles', { // TODO Figure out how to best conduct a search of this list. // Since we only have a role ID in the top level of each role object // we can't really search using the normal search parameters. -function UserAccessList({ i18n, user }) { +function UserRolesList({ i18n, user }) { const { search } = useLocation(); const [isWizardOpen, setIsWizardOpen] = useState(false); const [roleToDisassociate, setRoleToDisassociate] = useState(null); @@ -164,7 +164,7 @@ function UserAccessList({ i18n, user }) { toolbarRelatedSearchableKeys={relatedSearchableKeys} renderItem={role => { return ( - ); } -export default withI18n()(UserAccessList); +export default withI18n()(UserRolesList); diff --git a/awx/ui_next/src/screens/User/UserAccess/UserAccessList.test.jsx b/awx/ui_next/src/screens/User/UserRoles/UserRolesList.test.jsx similarity index 93% rename from awx/ui_next/src/screens/User/UserAccess/UserAccessList.test.jsx rename to awx/ui_next/src/screens/User/UserRoles/UserRolesList.test.jsx index 42bf328450..ab02df33db 100644 --- a/awx/ui_next/src/screens/User/UserAccess/UserAccessList.test.jsx +++ b/awx/ui_next/src/screens/User/UserRoles/UserRolesList.test.jsx @@ -5,7 +5,7 @@ import { mountWithContexts, waitForElement, } from '../../../../testUtils/enzymeHelpers'; -import UserAccessList from './UserAccessList'; +import UserRolesList from './UserRolesList'; jest.mock('../../../api/models/Users'); jest.mock('../../../api/models/Roles'); @@ -101,7 +101,7 @@ const roles = { }, }; -describe('', () => { +describe('', () => { let wrapper; afterEach(() => { jest.clearAllMocks(); @@ -111,17 +111,17 @@ describe('', () => { UsersAPI.readRoles.mockResolvedValue(roles); await act(async () => { - wrapper = mountWithContexts(); + wrapper = mountWithContexts(); }); - expect(wrapper.find('UserAccessList').length).toBe(1); + expect(wrapper.find('UserRolesList').length).toBe(1); }); test('should create proper detailUrl', async () => { UsersAPI.readRoles.mockResolvedValue(roles); await act(async () => { - wrapper = mountWithContexts(); + wrapper = mountWithContexts(); }); wrapper.update(); @@ -191,7 +191,7 @@ describe('', () => { }); await act(async () => { wrapper = mountWithContexts( - ', () => { test('should open and close wizard', async () => { UsersAPI.readRoles.mockResolvedValue(roles); await act(async () => { - wrapper = mountWithContexts(); + wrapper = mountWithContexts(); }); wrapper.update(); await act(async () => @@ -232,7 +232,7 @@ describe('', () => { UsersAPI.readRoles.mockResolvedValue(roles); await act(async () => { - wrapper = mountWithContexts(); + wrapper = mountWithContexts(); }); wrapper.update(); @@ -283,7 +283,7 @@ describe('', () => { ); await act(async () => { - wrapper = mountWithContexts(); + wrapper = mountWithContexts(); }); wrapper.update(); @@ -338,7 +338,7 @@ describe('', () => { }); await act(async () => { - wrapper = mountWithContexts(); + wrapper = mountWithContexts(); }); waitForElement( diff --git a/awx/ui_next/src/screens/User/UserAccess/UserAccessListItem.jsx b/awx/ui_next/src/screens/User/UserRoles/UserRolesListItem.jsx similarity index 94% rename from awx/ui_next/src/screens/User/UserAccess/UserAccessListItem.jsx rename to awx/ui_next/src/screens/User/UserRoles/UserRolesListItem.jsx index 524d07d438..31e3df94d9 100644 --- a/awx/ui_next/src/screens/User/UserAccess/UserAccessListItem.jsx +++ b/awx/ui_next/src/screens/User/UserRoles/UserRolesListItem.jsx @@ -11,7 +11,7 @@ import { Link } from 'react-router-dom'; import { DetailList, Detail } from '../../../components/DetailList'; import DataListCell from '../../../components/DataListCell'; -function UserAccessListItem({ role, i18n, detailUrl, onSelect }) { +function UserRolesListItem({ role, i18n, detailUrl, onSelect }) { const labelId = `userRole-${role.id}`; return ( @@ -61,4 +61,4 @@ function UserAccessListItem({ role, i18n, detailUrl, onSelect }) { ); } -export default withI18n()(UserAccessListItem); +export default withI18n()(UserRolesListItem); diff --git a/awx/ui_next/src/screens/User/UserAccess/UserAccessListItem.test.jsx b/awx/ui_next/src/screens/User/UserRoles/UserRolesListItem.test.jsx similarity index 89% rename from awx/ui_next/src/screens/User/UserAccess/UserAccessListItem.test.jsx rename to awx/ui_next/src/screens/User/UserRoles/UserRolesListItem.test.jsx index f0ce74377e..5bedd6c4d4 100644 --- a/awx/ui_next/src/screens/User/UserAccess/UserAccessListItem.test.jsx +++ b/awx/ui_next/src/screens/User/UserRoles/UserRolesListItem.test.jsx @@ -1,8 +1,8 @@ import React from 'react'; import { mountWithContexts } from '../../../../testUtils/enzymeHelpers'; -import UserAccessListItem from './UserAccessListItem'; +import UserRolesListItem from './UserRolesListItem'; -describe('', () => { +describe('', () => { let wrapper; const role = { id: 1, @@ -19,7 +19,7 @@ describe('', () => { }; test('should mount properly', () => { wrapper = mountWithContexts( - @@ -29,7 +29,7 @@ describe('', () => { test('should render proper list item data', () => { wrapper = mountWithContexts( - @@ -46,7 +46,7 @@ describe('', () => { }); test('should render deletable chip', () => { wrapper = mountWithContexts( - @@ -56,7 +56,7 @@ describe('', () => { test('should render read only chip', () => { role.summary_fields.user_capabilities.unattach = false; wrapper = mountWithContexts( - diff --git a/awx/ui_next/src/screens/User/UserRoles/index.js b/awx/ui_next/src/screens/User/UserRoles/index.js new file mode 100644 index 0000000000..2b4f968ed9 --- /dev/null +++ b/awx/ui_next/src/screens/User/UserRoles/index.js @@ -0,0 +1,2 @@ +export { default as UserRolesList } from './UserRolesList'; +export { default as UserRolesListItem } from './UserRolesListItem'; diff --git a/awx/ui_next/src/screens/User/Users.jsx b/awx/ui_next/src/screens/User/Users.jsx index e9fe2d4ef2..35e4c4517b 100644 --- a/awx/ui_next/src/screens/User/Users.jsx +++ b/awx/ui_next/src/screens/User/Users.jsx @@ -29,12 +29,14 @@ function Users({ i18n }) { [`/users/${user.id}`]: `${user.username}`, [`/users/${user.id}/edit`]: i18n._(t`Edit Details`), [`/users/${user.id}/details`]: i18n._(t`Details`), - [`/users/${user.id}/access`]: i18n._(t`Access`), + [`/users/${user.id}/roles`]: i18n._(t`Roles`), [`/users/${user.id}/teams`]: i18n._(t`Teams`), [`/users/${user.id}/organizations`]: i18n._(t`Organizations`), [`/users/${user.id}/tokens`]: i18n._(t`Tokens`), [`/users/${user.id}/tokens/add`]: i18n._(t`Create user token`), - [`/users/${user.id}/tokens/${token && token.id}`]: `Application Name`, + [`/users/${user.id}/tokens/${token && token.id}`]: i18n._( + t`Application Name` + ), [`/users/${user.id}/tokens/${token && token.id}/details`]: i18n._( t`Details` ),