The main server, and probably only repository in this org.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.9 KiB

import React, {useState} from "react";
import {Button, CustomInput, FormGroup, Modal, ModalBody, ModalFooter, ModalHeader} from "reactstrap";
import {savePermissions} from "../../Helpers/groups";
function PermissionsModal({groupId, userId, permissions, onClose}) {
function getPermission(type) {
if (permissions === null || typeof permissions[type] === "undefined") {
return false;
}
return permissions[type];
}
const [read, setRead] = useState(getPermission("read"));
const [write, setWrite] = useState(getPermission("write"));
const [create, setCreate] = useState(getPermission("create"));
const [remove, setRemove] = useState(getPermission("delete"));
const manage = getPermission("manage");
return (
<Modal isOpen={true}>
<ModalHeader>Endre gruppe</ModalHeader>
<ModalBody style={{margin: "0 auto"}}>
<FormGroup className="perm-switch">
<CustomInput type="switch"
id="switch-read"
name="read"
label="Les"
checked={read}
onChange={e => setRead(e.target.checked)}/>
</FormGroup>
<FormGroup className="perm-switch">
<CustomInput type="switch"
id="switch-write"
name="write"
label="Skriv"
checked={write}
onChange={e => setWrite(e.target.checked)}/>
</FormGroup>
<FormGroup className="perm-switch">
<CustomInput type="switch"
id="switch-create"
name="create"
label="Opprett"
checked={create}
onChange={e => setCreate(e.target.checked)}/>
</FormGroup>
<FormGroup className="perm-switch">
<CustomInput type="switch"
id="switch-remove"
name="remove"
label="Slett"
checked={remove}
onChange={e => setRemove(e.target.checked)}/>
</FormGroup>
<FormGroup className="perm-switch">
<CustomInput type="switch"
id="switch-manage"
name="manage"
label="Forvalte"
checked={manage}
disabled/>
</FormGroup>
</ModalBody>
<ModalFooter>
<Button color="primary"
onClick={() => {
savePermissions(
groupId,
userId,
{read, write, delete: remove, create});
onClose();
}}
>
Lagre
</Button>
{" "}
<Button color="secondary" onClick={onClose}>Avbryt</Button>
</ModalFooter>
</Modal>
);
}
export default PermissionsModal;