Service accounts: Refactor to make roleOptions act as Users for service accounts (#66107)

add fetchAC for licenseenabled
This commit is contained in:
Eric Leijonmarck 2023-04-12 11:07:06 +01:00 committed by GitHub
parent 5df33c0dc1
commit 2eed889ab7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,7 +19,7 @@ interface Props {
export function ServiceAccountProfile({ serviceAccount, timeZone, onChange }: Props): JSX.Element { export function ServiceAccountProfile({ serviceAccount, timeZone, onChange }: Props): JSX.Element {
const styles = useStyles2(getStyles); const styles = useStyles2(getStyles);
const ableToWrite = contextSrv.hasPermission(AccessControlAction.ServiceAccountsWrite); const ableToWrite = contextSrv.hasPermission(AccessControlAction.ServiceAccountsWrite);
const [roles, setRoles] = React.useState<Role[]>([]); const [roles, setRoleOptions] = React.useState<Role[]>([]);
const onRoleChange = (role: OrgRole) => { const onRoleChange = (role: OrgRole) => {
onChange({ ...serviceAccount, role: role }); onChange({ ...serviceAccount, role: role });
@ -28,21 +28,21 @@ export function ServiceAccountProfile({ serviceAccount, timeZone, onChange }: Pr
const onNameChange = (newValue: string) => { const onNameChange = (newValue: string) => {
onChange({ ...serviceAccount, name: newValue }); onChange({ ...serviceAccount, name: newValue });
}; };
// TODO: this is a temporary solution to fetch roles for service accounts
// until we make use of the state from the serviceaccountspage
// and pass it down to the serviceaccountprofile
React.useEffect(() => { React.useEffect(() => {
if (contextSrv.licensedAccessControlEnabled()) { async function fetchOptions() {
if (contextSrv.hasPermission(AccessControlAction.ActionRolesList)) { try {
fetchRoleOptions(serviceAccount.orgId) if (contextSrv.hasPermission(AccessControlAction.ActionRolesList)) {
.then((roles) => { let options = await fetchRoleOptions(serviceAccount.orgId);
setRoles(roles); setRoleOptions(options);
}) }
.catch((err) => { } catch (e) {
console.log('fetchRoleOptions error: ', err); console.error('Error loading options for service account');
});
} }
} }
if (contextSrv.licensedAccessControlEnabled()) {
fetchOptions();
}
}, [serviceAccount.orgId]); }, [serviceAccount.orgId]);
return ( return (