Merge pull request #2086 from Budibase/fix/edit-roles-modal

Fixes for issue #2077
This commit is contained in:
Michael Drury 2021-07-25 12:14:31 +01:00 committed by GitHub
commit 4875488ccd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 598 deletions

View File

@ -6,8 +6,10 @@
import ErrorsBox from "components/common/ErrorsBox.svelte"
import { roles } from "stores/backend"
const BASE_ROLE = { _id: "", inherits: "BASIC", permissionId: "Read/Write" }
let basePermissions = []
let selectedRole = {}
let selectedRole = BASE_ROLE
let errors = []
let builtInRoles = ["Admin", "Power", "Basic", "Public"]
// Don't allow editing of public role
@ -15,6 +17,11 @@
$: selectedRoleId = selectedRole._id
$: otherRoles = editableRoles.filter(role => role._id !== selectedRoleId)
$: isCreating = selectedRoleId == null || selectedRoleId === ""
$: valid =
selectedRole.name &&
selectedRole.inherits &&
selectedRole.permissionId &&
!builtInRoles.includes(selectedRole.name)
const fetchBasePermissions = async () => {
const permissionsResponse = await api.get("/api/permission/builtin")
@ -32,7 +39,7 @@
permissionId: role.permissionId ?? "",
}
} else {
selectedRole = { _id: "", inherits: "", permissionId: "" }
selectedRole = BASE_ROLE
}
errors = []
}
@ -88,6 +95,7 @@
title="Edit Roles"
confirmText={isCreating ? "Create" : "Save"}
onConfirm={saveRole}
disabled={!valid}
>
{#if errors.length}
<ErrorsBox {errors} />
@ -115,7 +123,7 @@
options={otherRoles}
getOptionValue={role => role._id}
getOptionLabel={role => role.name}
placeholder="None"
disabled={builtInRoles.includes(selectedRole.name)}
/>
<Select
label="Base Permissions"
@ -123,7 +131,7 @@
options={basePermissions}
getOptionValue={x => x._id}
getOptionLabel={x => x.name}
placeholder="Choose permissions"
disabled={builtInRoles.includes(selectedRole.name)}
/>
{/if}
<div slot="footer">

File diff suppressed because it is too large Load Diff