Quick fix for role validation, permissionId is no longer required.
This commit is contained in:
parent
ad475be4f7
commit
c6a413f399
|
@ -137,6 +137,10 @@ export async function save(ctx: UserCtx<SaveRoleRequest, SaveRoleResponse>) {
|
|||
permissionId = PermissionLevel.WRITE
|
||||
}
|
||||
|
||||
if (!permissionId) {
|
||||
ctx.throw(400, "Role requires permissionId to be specified.")
|
||||
}
|
||||
|
||||
const role = new roles.Role(_id, name, permissionId, {
|
||||
displayName: uiMetadata?.displayName || name,
|
||||
description: uiMetadata?.description || "Custom role",
|
||||
|
|
|
@ -58,6 +58,19 @@ describe("/roles", () => {
|
|||
})
|
||||
expect(res.inherits).toEqual([BUILTIN_ROLE_IDS.BASIC])
|
||||
})
|
||||
|
||||
it("save role without permissionId", async () => {
|
||||
const res = await config.api.roles.save(
|
||||
{
|
||||
...basicRole(),
|
||||
permissionId: undefined,
|
||||
},
|
||||
{
|
||||
status: 200,
|
||||
}
|
||||
)
|
||||
expect(res.permissionId).toEqual(PermissionLevel.WRITE)
|
||||
})
|
||||
})
|
||||
|
||||
describe("update", () => {
|
||||
|
|
|
@ -215,7 +215,7 @@ export function roleValidator() {
|
|||
// this is the base permission ID (for now a built in)
|
||||
permissionId: Joi.string()
|
||||
.valid(...Object.values(permissions.BuiltinPermissionID))
|
||||
.required(),
|
||||
.optional(),
|
||||
permissions: Joi.object()
|
||||
.pattern(
|
||||
/.*/,
|
||||
|
|
|
@ -6,7 +6,7 @@ export interface SaveRoleRequest {
|
|||
_rev?: string
|
||||
name: string
|
||||
inherits?: string | string[]
|
||||
permissionId: string
|
||||
permissionId?: string
|
||||
permissions?: Record<string, PermissionLevel[]>
|
||||
version?: string
|
||||
uiMetadata?: RoleUIMetadata
|
||||
|
|
Loading…
Reference in New Issue