Refactor fetching permissions

This commit is contained in:
René Pfeuffer
2019-01-21 13:05:05 +01:00
parent 746061d879
commit db57a49738
3 changed files with 95 additions and 37 deletions

View File

@@ -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) {