mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
AccessControl: RolePicker fetch roles in org (#41927)
This commit is contained in:
parent
4fa7fd2c75
commit
da5327ea14
@ -98,6 +98,7 @@ export const AdminEditOrgPage: FC<Props> = ({ match }) => {
|
|||||||
{canReadUsers && !!users.length && (
|
{canReadUsers && !!users.length && (
|
||||||
<UsersTable
|
<UsersTable
|
||||||
users={users}
|
users={users}
|
||||||
|
orgId={orgId}
|
||||||
onRoleChange={(role, orgUser) => {
|
onRoleChange={(role, orgUser) => {
|
||||||
updateOrgUserRole({ ...orgUser, role }, orgId);
|
updateOrgUserRole({ ...orgUser, role }, orgId);
|
||||||
setUsers(
|
setUsers(
|
||||||
|
@ -8,12 +8,13 @@ import { fetchBuiltinRoles, fetchRoleOptions, UserRolePicker } from 'app/core/co
|
|||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
users: OrgUser[];
|
users: OrgUser[];
|
||||||
|
orgId?: number;
|
||||||
onRoleChange: (role: OrgRole, user: OrgUser) => void;
|
onRoleChange: (role: OrgRole, user: OrgUser) => void;
|
||||||
onRemoveUser: (user: OrgUser) => void;
|
onRemoveUser: (user: OrgUser) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
const UsersTable: FC<Props> = (props) => {
|
const UsersTable: FC<Props> = (props) => {
|
||||||
const { users, onRoleChange, onRemoveUser } = props;
|
const { users, orgId, onRoleChange, onRemoveUser } = props;
|
||||||
const canUpdateRole = contextSrv.hasPermission(AccessControlAction.OrgUsersRoleUpdate);
|
const canUpdateRole = contextSrv.hasPermission(AccessControlAction.OrgUsersRoleUpdate);
|
||||||
const canRemoveFromOrg = contextSrv.hasPermission(AccessControlAction.OrgUsersRemove);
|
const canRemoveFromOrg = contextSrv.hasPermission(AccessControlAction.OrgUsersRemove);
|
||||||
const rolePickerDisabled = !canUpdateRole;
|
const rolePickerDisabled = !canUpdateRole;
|
||||||
@ -25,9 +26,9 @@ const UsersTable: FC<Props> = (props) => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function fetchOptions() {
|
async function fetchOptions() {
|
||||||
try {
|
try {
|
||||||
let options = await fetchRoleOptions();
|
let options = await fetchRoleOptions(orgId);
|
||||||
setRoleOptions(options);
|
setRoleOptions(options);
|
||||||
const builtInRoles = await fetchBuiltinRoles();
|
const builtInRoles = await fetchBuiltinRoles(orgId);
|
||||||
setBuiltinRoles(builtInRoles);
|
setBuiltinRoles(builtInRoles);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Error loading options');
|
console.error('Error loading options');
|
||||||
@ -36,7 +37,7 @@ const UsersTable: FC<Props> = (props) => {
|
|||||||
if (contextSrv.accessControlEnabled()) {
|
if (contextSrv.accessControlEnabled()) {
|
||||||
fetchOptions();
|
fetchOptions();
|
||||||
}
|
}
|
||||||
}, []);
|
}, [orgId]);
|
||||||
|
|
||||||
const getRoleOptions = async () => roleOptions;
|
const getRoleOptions = async () => roleOptions;
|
||||||
const getBuiltinRoles = async () => builtinRoles;
|
const getBuiltinRoles = async () => builtinRoles;
|
||||||
@ -83,6 +84,7 @@ const UsersTable: FC<Props> = (props) => {
|
|||||||
{contextSrv.accessControlEnabled() ? (
|
{contextSrv.accessControlEnabled() ? (
|
||||||
<UserRolePicker
|
<UserRolePicker
|
||||||
userId={user.userId}
|
userId={user.userId}
|
||||||
|
orgId={orgId}
|
||||||
builtInRole={user.role}
|
builtInRole={user.role}
|
||||||
onBuiltinRoleChange={(newRole) => onRoleChange(newRole, user)}
|
onBuiltinRoleChange={(newRole) => onRoleChange(newRole, user)}
|
||||||
getRoleOptions={getRoleOptions}
|
getRoleOptions={getRoleOptions}
|
||||||
|
Loading…
Reference in New Issue
Block a user