mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-16 10:16:16 +01:00
Refactor fetching permissions
This commit is contained in:
@@ -8,7 +8,6 @@ import {
|
||||
} from "@scm-manager/ui-components";
|
||||
import { translate } from "react-i18next";
|
||||
import {
|
||||
loadAvailablePermissions,
|
||||
loadPermissionsForEntity,
|
||||
setPermissions
|
||||
} from "./handlePermissions";
|
||||
@@ -68,35 +67,19 @@ class SetPermissions extends React.Component<Props, State> {
|
||||
};
|
||||
|
||||
componentDidMount(): void {
|
||||
loadAvailablePermissions(this.props.availablePermissionLink).then(
|
||||
response => {
|
||||
const availablePermissions = response.permissions;
|
||||
const permissions = {};
|
||||
availablePermissions.forEach(p => {
|
||||
permissions[p] = false;
|
||||
});
|
||||
this.setState({ permissions }, this.loadPermissionsForEntity);
|
||||
}
|
||||
);
|
||||
loadPermissionsForEntity(
|
||||
this.props.availablePermissionLink,
|
||||
this.props.selectedPermissionsLink.href
|
||||
).then(response => {
|
||||
const { permissions, overwriteLink } = response;
|
||||
this.setState({
|
||||
permissions: permissions,
|
||||
loading: false,
|
||||
overwritePermissionsLink: overwriteLink
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
loadPermissionsForEntity = () => {
|
||||
loadPermissionsForEntity(this.props.selectedPermissionsLink.href).then(
|
||||
response => {
|
||||
const checkedPermissions = response.permissions;
|
||||
this.setState(state => {
|
||||
const newPermissions = state.permissions;
|
||||
checkedPermissions.forEach(name => (newPermissions[name] = true));
|
||||
return {
|
||||
loading: false,
|
||||
permissions: newPermissions,
|
||||
overwritePermissionsLink: response._links.overwrite
|
||||
};
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
submit = (event: Event) => {
|
||||
event.preventDefault();
|
||||
if (this.state.permissions) {
|
||||
|
||||
Reference in New Issue
Block a user