|
|
@ -1,7 +1,10 @@ |
|
|
const Router = require("@koa/router") |
|
|
const Router = require("@koa/router") |
|
|
const controller = require("../controllers/role") |
|
|
const controller = require("../controllers/role") |
|
|
const authorized = require("../../middleware/authorized") |
|
|
const authorized = require("../../middleware/authorized") |
|
|
const { BUILDER } = require("../../utilities/security/permissions") |
|
|
const { |
|
|
|
|
|
BUILDER, |
|
|
|
|
|
PermissionLevels, |
|
|
|
|
|
} = require("../../utilities/security/permissions") |
|
|
const Joi = require("joi") |
|
|
const Joi = require("joi") |
|
|
const joiValidator = require("../../middleware/joi-validator") |
|
|
const joiValidator = require("../../middleware/joi-validator") |
|
|
const { |
|
|
const { |
|
|
@ -11,12 +14,17 @@ const { |
|
|
const router = Router() |
|
|
const router = Router() |
|
|
|
|
|
|
|
|
function generateValidator() { |
|
|
function generateValidator() { |
|
|
|
|
|
const permLevelArray = Object.values(PermissionLevels) |
|
|
// prettier-ignore
|
|
|
// prettier-ignore
|
|
|
return joiValidator.body(Joi.object({ |
|
|
return joiValidator.body(Joi.object({ |
|
|
_id: Joi.string().optional(), |
|
|
_id: Joi.string().optional(), |
|
|
_rev: Joi.string().optional(), |
|
|
_rev: Joi.string().optional(), |
|
|
name: Joi.string().required(), |
|
|
name: Joi.string().required(), |
|
|
|
|
|
// this is the base permission ID (for now a built in)
|
|
|
permissionId: Joi.string().valid(...Object.values(BUILTIN_PERMISSION_IDS)).required(), |
|
|
permissionId: Joi.string().valid(...Object.values(BUILTIN_PERMISSION_IDS)).required(), |
|
|
|
|
|
permissions: Joi.object() |
|
|
|
|
|
.pattern(/.*/, [Joi.string().valid(...permLevelArray)]) |
|
|
|
|
|
.optional(), |
|
|
inherits: Joi.string().optional(), |
|
|
inherits: Joi.string().optional(), |
|
|
}).unknown(true)) |
|
|
}).unknown(true)) |
|
|
} |
|
|
} |
|
|
|