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`
),