mirror of
https://github.com/ansible/awx.git
synced 2026-03-27 13:55:04 -02:30
Remove user_only roles from User and Team permission modal
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import React, { useState, useCallback } from 'react';
|
import React, { useState, useCallback } from 'react';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useParams, useRouteMatch } from 'react-router-dom';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import useRequest from 'hooks/useRequest';
|
import useRequest from 'hooks/useRequest';
|
||||||
import useSelected from 'hooks/useSelected';
|
import useSelected from 'hooks/useSelected';
|
||||||
@@ -27,6 +27,11 @@ function UserAndTeamAccessAdd({
|
|||||||
const [selectedResourceType, setSelectedResourceType] = useState(null);
|
const [selectedResourceType, setSelectedResourceType] = useState(null);
|
||||||
const [stepIdReached, setStepIdReached] = useState(1);
|
const [stepIdReached, setStepIdReached] = useState(1);
|
||||||
const { id: userId } = useParams();
|
const { id: userId } = useParams();
|
||||||
|
const teamsRouteMatch = useRouteMatch({
|
||||||
|
path: '/teams/:id/roles',
|
||||||
|
exact: true,
|
||||||
|
});
|
||||||
|
|
||||||
const { selected: resourcesSelected, handleSelect: handleResourceSelect } =
|
const { selected: resourcesSelected, handleSelect: handleResourceSelect } =
|
||||||
useSelected([]);
|
useSelected([]);
|
||||||
|
|
||||||
@@ -54,6 +59,19 @@ function UserAndTeamAccessAdd({
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Object roles can be user only, so we remove them when
|
||||||
|
// showing role choices for team access
|
||||||
|
const selectableRoles = {
|
||||||
|
...resourcesSelected[0]?.summary_fields?.object_roles,
|
||||||
|
};
|
||||||
|
if (teamsRouteMatch && resourcesSelected[0]?.type === 'organization') {
|
||||||
|
Object.keys(selectableRoles).forEach((key) => {
|
||||||
|
if (selectableRoles[key].user_only) {
|
||||||
|
delete selectableRoles[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const steps = [
|
const steps = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
@@ -101,7 +119,7 @@ function UserAndTeamAccessAdd({
|
|||||||
component: resourcesSelected?.length > 0 && (
|
component: resourcesSelected?.length > 0 && (
|
||||||
<SelectRoleStep
|
<SelectRoleStep
|
||||||
onRolesClick={handleRoleSelect}
|
onRolesClick={handleRoleSelect}
|
||||||
roles={resourcesSelected[0].summary_fields.object_roles}
|
roles={selectableRoles}
|
||||||
selectedListKey={
|
selectedListKey={
|
||||||
selectedResourceType === 'users' ? 'username' : 'name'
|
selectedResourceType === 'users' ? 'username' : 'name'
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user