mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
* Role picker: Load users roles in batch * Use orgId in request * Add roles to OrgUser type * Improve loading logic * Improve loading indicator * Fix org page * Update service accounts page * Use bulk roles query for teams * Use POST requests for search * Use post request for teams * Update betterer results * Review suggestions * AdminEditOrgPage: move API calls to separate file
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { UrlQueryValue } from '@grafana/data';
|
|
import { getBackendSrv } from '@grafana/runtime';
|
|
import { contextSrv } from 'app/core/core';
|
|
import { accessControlQueryParam } from 'app/core/utils/accessControl';
|
|
import { OrgUser, AccessControlAction } from 'app/types';
|
|
|
|
const perPage = 30;
|
|
|
|
export const getOrg = async (orgId: UrlQueryValue) => {
|
|
return await getBackendSrv().get(`/api/orgs/${orgId}`);
|
|
};
|
|
|
|
export const getOrgUsers = async (orgId: UrlQueryValue, page: number) => {
|
|
if (contextSrv.hasPermission(AccessControlAction.OrgUsersRead)) {
|
|
return getBackendSrv().get(`/api/orgs/${orgId}/users/search`, accessControlQueryParam({ perpage: perPage, page }));
|
|
}
|
|
return { orgUsers: [] };
|
|
};
|
|
|
|
export const getUsersRoles = async (orgId: number, users: OrgUser[]) => {
|
|
const userIds = users.map((u) => u.userId);
|
|
const roles = await getBackendSrv().post(`/api/access-control/users/roles/search`, { userIds, orgId });
|
|
users.forEach((u) => {
|
|
u.roles = roles ? roles[u.userId] || [] : [];
|
|
});
|
|
};
|
|
|
|
export const updateOrgUserRole = (orgUser: OrgUser, orgId: UrlQueryValue) => {
|
|
return getBackendSrv().patch(`/api/orgs/${orgId}/users/${orgUser.userId}`, orgUser);
|
|
};
|
|
|
|
export const removeOrgUser = (orgUser: OrgUser, orgId: UrlQueryValue) => {
|
|
return getBackendSrv().delete(`/api/orgs/${orgId}/users/${orgUser.userId}`);
|
|
};
|
|
|
|
export const updateOrgName = (name: string, orgId: number) => {
|
|
return getBackendSrv().put(`/api/orgs/${orgId}`, { name });
|
|
};
|