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
|
permissionId = PermissionLevel.WRITE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!permissionId) {
|
||||||
|
ctx.throw(400, "Role requires permissionId to be specified.")
|
||||||
|
}
|
||||||
|
|
||||||
const role = new roles.Role(_id, name, permissionId, {
|
const role = new roles.Role(_id, name, permissionId, {
|
||||||
displayName: uiMetadata?.displayName || name,
|
displayName: uiMetadata?.displayName || name,
|
||||||
description: uiMetadata?.description || "Custom role",
|
description: uiMetadata?.description || "Custom role",
|
||||||
|
|
|
@ -58,6 +58,19 @@ describe("/roles", () => {
|
||||||
})
|
})
|
||||||
expect(res.inherits).toEqual([BUILTIN_ROLE_IDS.BASIC])
|
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", () => {
|
describe("update", () => {
|
||||||
|
|
|
@ -215,7 +215,7 @@ export function roleValidator() {
|
||||||
// this is the base permission ID (for now a built in)
|
// this is the base permission ID (for now a built in)
|
||||||
permissionId: Joi.string()
|
permissionId: Joi.string()
|
||||||
.valid(...Object.values(permissions.BuiltinPermissionID))
|
.valid(...Object.values(permissions.BuiltinPermissionID))
|
||||||
.required(),
|
.optional(),
|
||||||
permissions: Joi.object()
|
permissions: Joi.object()
|
||||||
.pattern(
|
.pattern(
|
||||||
/.*/,
|
/.*/,
|
||||||
|
|
|
@ -6,7 +6,7 @@ export interface SaveRoleRequest {
|
||||||
_rev?: string
|
_rev?: string
|
||||||
name: string
|
name: string
|
||||||
inherits?: string | string[]
|
inherits?: string | string[]
|
||||||
permissionId: string
|
permissionId?: string
|
||||||
permissions?: Record<string, PermissionLevel[]>
|
permissions?: Record<string, PermissionLevel[]>
|
||||||
version?: string
|
version?: string
|
||||||
uiMetadata?: RoleUIMetadata
|
uiMetadata?: RoleUIMetadata
|
||||||
|
|
Loading…
Reference in New Issue