@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
36 lines • 1.45 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { AlertVariant } from "@patternfly/react-core";
import { useTranslation } from "react-i18next";
import { useAdminClient } from "../admin-client";
import { useAlerts } from "../ui-shared";
import { RoleMapping } from "../components/role-mapping/RoleMapping";
export const GroupRoleMapping = ({ id, name }) => {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
const { addAlert, addError } = useAlerts();
const assignRoles = async (rows) => {
try {
const realmRoles = rows
.filter((row) => row.client === undefined)
.map((row) => row.role)
.flat();
await adminClient.groups.addRealmRoleMappings({
id,
roles: realmRoles,
});
await Promise.all(rows
.filter((row) => row.client !== undefined)
.map((row) => adminClient.groups.addClientRoleMappings({
id,
clientUniqueId: row.client.id,
roles: [row.role],
})));
addAlert(t("roleMappingUpdatedSuccess"), AlertVariant.success);
}
catch (error) {
addError("roleMappingUpdatedError", error);
}
};
return _jsx(RoleMapping, { name: name, id: id, type: "groups", save: assignRoles });
};
//# sourceMappingURL=GroupRoleMapping.js.map