fixed roles_has_permission to use better nomenclature
This commit is contained in:
parent
082f7a7002
commit
b6351f5f1e
|
|
@ -15,7 +15,7 @@ const getRolesHasPermissionsController = (req, res, next, config) => {
|
|||
const conn = mysql.start(config)
|
||||
const uuidList = req.query.uuidList && req.query.uuidList.split(',')
|
||||
Promise.all([
|
||||
getRolesHasPermissionsModel({...req.query, uuidList, conn}),
|
||||
getRolesHasPermissionsModel({...req.query, ...req.params, uuidList, conn}),
|
||||
countRolesHasPermissionsModel({...req.query, uuidList, conn})
|
||||
])
|
||||
.then(([getResults, countResults]) => {
|
||||
|
|
@ -68,7 +68,7 @@ const postRolesHasPermissionsController = (req, res, next, config) => {
|
|||
const conn = mysql.start(config)
|
||||
const createdBy = req.auth.user || null
|
||||
|
||||
insertRolesHasPermissionsModel({...req.body, createdBy, conn})
|
||||
insertRolesHasPermissionsModel({...req.body, ...req.params, createdBy, conn})
|
||||
.then((roles_has_permissions) => {
|
||||
const result = {
|
||||
_data: roles_has_permissions
|
||||
|
|
@ -86,11 +86,10 @@ const postRolesHasPermissionsController = (req, res, next, config) => {
|
|||
|
||||
const putRolesHasPermissionsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
modifyRolesHasPermissionsModel({ ...req.body, uuid, modifiedBy, conn })
|
||||
modifyRolesHasPermissionsModel({ ...req.body, ...req.params, modifiedBy, conn })
|
||||
.then((roles_has_permissions) => {
|
||||
if (noResults(roles_has_permissions)) {
|
||||
if (noResults(response)) {
|
||||
const err = error404()
|
||||
const error = errorHandler(err, config.environment)
|
||||
return sendResponseNotFound(res, error)
|
||||
|
|
@ -111,11 +110,10 @@ const putRolesHasPermissionsController = (req, res, next, config) => {
|
|||
|
||||
const softDeleteRolesHasPermissionsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
const { deleted } = req.body
|
||||
const deletedby = req.auth.user || null
|
||||
|
||||
softDeleteRolesHasPermissionsModel({ uuid, deleted, deletedby, conn })
|
||||
softDeleteRolesHasPermissionsModel({ ...req.params, deleted, deletedby, conn })
|
||||
.then(() => {
|
||||
const result = {}
|
||||
next(result)
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import {
|
|||
softDeleteRolesHasPermissionsQuery,
|
||||
modifyRolesHasPermissionsQuery
|
||||
} from '../../repositories/authorization/roles_has_permissionsRepository.js'
|
||||
import { error404 } from '../../utils/errors.js'
|
||||
|
||||
const getRolesHasPermissionsModel = ({conn, ...rest}) => {
|
||||
const now = dayjs.utc().format('YYYY-MM-DD HH:mm:ss')
|
||||
|
|
@ -15,7 +16,7 @@ const getRolesHasPermissionsModel = ({conn, ...rest}) => {
|
|||
|
||||
return mysql
|
||||
.execute(getRolesHasPermissionsQuery(paramsToSearch), conn, paramsToSearch)
|
||||
.then(results => results.map(({id, created, deleted, createdBy, deletedBy, ...resultFiltered}) => resultFiltered))
|
||||
.then(results => results.map(({id, fk_role, fk_permission, created, deleted, createdBy, deletedBy, ...resultFiltered}) => resultFiltered))
|
||||
}
|
||||
|
||||
const countRolesHasPermissionsModel = ({conn, ...rest}) => {
|
||||
|
|
@ -34,7 +35,7 @@ const insertRolesHasPermissionsModel = ({conn, ...rest}) => {
|
|||
|
||||
return mysql
|
||||
.execute(insertRolesHasPermissionsQuery(paramsToInsert), conn, paramsToInsert)
|
||||
.then(results => results[1].map(({id, uuid, fk_role, fk_permission, created, deleted, createdBy, deletedBy, ...rest}) => ({...rest})))
|
||||
.then(results => results[1].map(({id, fk_role, fk_permission, created, deleted, createdBy, deletedBy, ...rest}) => ({...rest})))
|
||||
}
|
||||
|
||||
const modifyRolesHasPermissionsModel = ({conn, ...params}) => {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import { pagination } from '../../utils/pagination.js'
|
||||
|
||||
const _rolesHasPermissionsQuery = (_pagination = '') => ({count}) => ({uuid, fk_permission, fk_role, roleName}) => {
|
||||
const _rolesHasPermissionsQuery = (_pagination = '') => ({count}) => ({uuid, role_uuid, permission_uuid, roleName}) => {
|
||||
const uuidCondition = uuid ? 'AND r.uuid = :uuid' : '';
|
||||
const roleNameCondition = roleName ? 'AND fk_role = (SELECT id from dbmaster.roles WHERE name = :roleName)' : '';
|
||||
const roleUuidCondition = fk_role ? 'AND fk_role = (SELECT id from dbmaster.roles WHERE uuid = :fk_role)' : '';
|
||||
const permissionsUuidCondition = fk_permission ? 'AND fk_permission = (SELECT id from dbmaster.permissions WHERE uuid = :fk_permission)' : '';
|
||||
const roleUuidCondition = role_uuid ? 'AND fk_role = (SELECT id from mydb.roles WHERE uuid = :role_uuid)' : '';
|
||||
const roleNameCondition = roleName ? 'AND fk_role = (SELECT id from mydb.roles WHERE name = :roleName)' : '';
|
||||
const permissionsUuidCondition = permission_uuid ? 'AND fk_permission = (SELECT id from mydb.permissions WHERE uuid = :permission_uuid)' : '';
|
||||
return `
|
||||
SELECT
|
||||
${count ||
|
||||
|
|
@ -15,13 +15,13 @@ const _rolesHasPermissionsQuery = (_pagination = '') => ({count}) => ({uuid, fk_
|
|||
p.uuid as permission_uuid,
|
||||
p.fk_endpoint as permission_endpoint`}
|
||||
FROM
|
||||
dbmaster.roles_has_permissions as r
|
||||
mydb.roles_has_permissions as r
|
||||
JOIN
|
||||
dbmaster.roles as r2 ON r.fk_role = r2.id
|
||||
mydb.roles as r2 ON r.fk_role = r2.id
|
||||
AND r2.created <= :now
|
||||
AND (r2.deleted > :now OR r2.deleted IS NULL)
|
||||
JOIN
|
||||
dbmaster.permissions as p ON r.fk_permission = p.id
|
||||
mydb.permissions as p ON r.fk_permission = p.id
|
||||
AND p.created <= :now
|
||||
AND (p.deleted > :now OR p.deleted IS NULL)
|
||||
WHERE
|
||||
|
|
@ -45,7 +45,7 @@ const countRolesHasPermissionsQuery = rest =>
|
|||
|
||||
const insertRolesHasPermissionsQuery = () => {
|
||||
return `
|
||||
INSERT INTO dbmaster.roles_has_permissions (
|
||||
INSERT INTO mydb.roles_has_permissions (
|
||||
uuid,
|
||||
fk_role,
|
||||
fk_permission,
|
||||
|
|
@ -54,48 +54,51 @@ const insertRolesHasPermissionsQuery = () => {
|
|||
)
|
||||
VALUES (
|
||||
:uuid,
|
||||
(SELECT id FROM dbmaster.roles WHERE uuid = :fk_role),
|
||||
(SELECT id FROM dbmaster.permissions WHERE uuid = :fk_permission),
|
||||
(SELECT id FROM mydb.roles WHERE uuid = :role_uuid),
|
||||
(SELECT id FROM mydb.permissions WHERE uuid = :permission_uuid),
|
||||
:now,
|
||||
:createdBy
|
||||
);
|
||||
SELECT dbmaster.permissions.*,
|
||||
SELECT permissions.*,
|
||||
permissions.uuid as permission_uuid,
|
||||
roles.uuid as role_uuid,
|
||||
roles.name as role_name
|
||||
FROM dbmaster.roles_has_permissions as rp
|
||||
LEFT JOIN dbmaster.permissions as permissions ON rp.fk_permission = permissions.id
|
||||
LEFT JOIN dbmaster.roles as roles ON rp.fk_role = roles.id
|
||||
FROM mydb.roles_has_permissions as rp
|
||||
LEFT JOIN mydb.permissions as permissions ON rp.fk_permission = permissions.id
|
||||
LEFT JOIN mydb.roles as roles ON rp.fk_role = roles.id
|
||||
WHERE rp.uuid = :uuid;
|
||||
`
|
||||
}
|
||||
|
||||
const modifyRolesHasPermissionsQuery = (roleUuid, permissionUuid) => {
|
||||
const roleUuidCondition = roleUuid ? 'fk_role = (SELECT id from dbmaster.roles WHERE uuid = :fk_role),' : '';
|
||||
const permissionUuidCondition = permissionUuid ? 'fk_permission = (SELECT id from dbmaster.permissions WHERE uuid = :fk_permission),' : '';
|
||||
const modifyRolesHasPermissionsQuery = (new_role_uuid, new_permission_uuid) => {
|
||||
const roleUuidCondition = new_role_uuid ? 'fk_role = (SELECT id from mydb.roles WHERE uuid = :new_role_uuid),' : '';
|
||||
const permissionUuidCondition = new_permission_uuid ? 'fk_permission = (SELECT id from mydb.permissions WHERE uuid = :new_permission_uuid),' : '';
|
||||
return `
|
||||
UPDATE
|
||||
dbmaster.roles_has_permissions as roles_has_permissions
|
||||
mydb.roles_has_permissions as roles_has_permissions
|
||||
SET
|
||||
${roleUuidCondition}
|
||||
${permissionUuidCondition}
|
||||
uuid = :uuid
|
||||
WHERE
|
||||
roles_has_permissions.uuid = :uuid
|
||||
roles_has_permissions.fk_role = (SELECT id from mydb.roles WHERE uuid = :role_uuid)
|
||||
AND roles_has_permissions.fk_permission = (SELECT id from mydb.permissions WHERE uuid = :permission_uuid)
|
||||
AND
|
||||
roles_has_permissions.deleted IS NULL;
|
||||
SELECT * FROM dbmaster.roles_has_permissions WHERE uuid = :uuid;
|
||||
SELECT * FROM mydb.roles_has_permissions WHERE uuid = :uuid;
|
||||
`
|
||||
}
|
||||
|
||||
const softDeleteRolesHasPermissionsQuery = () => {
|
||||
const softDeleteRolesHasPermissionsQuery = (permission_uuid) => {
|
||||
const permissionUuidCondition = permission_uuid ? 'AND roles_has_permissions.fk_permission = (SELECT id from mydb.permissions WHERE uuid = :permission_uuid)' : '';
|
||||
return `
|
||||
UPDATE
|
||||
dbmaster.roles_has_permissions as roles_has_permissions
|
||||
mydb.roles_has_permissions as roles_has_permissions
|
||||
SET
|
||||
deleted = :deleted, deletedBy = :deletedBy
|
||||
WHERE
|
||||
roles_has_permissions.uuid = :uuid
|
||||
roles_has_permissions.fk_role = (SELECT id from mydb.roles WHERE uuid = :role_uuid)
|
||||
${permissionUuidCondition}
|
||||
AND
|
||||
roles_has_permissions.deleted IS NULL
|
||||
`
|
||||
|
|
|
|||
|
|
@ -684,15 +684,15 @@ export default(config) => {
|
|||
|
||||
//roles_has_permissions routes
|
||||
/**
|
||||
* @name GET/roles_has_permissions
|
||||
* @name GET/roles/:role_uuid/permissions
|
||||
* @function
|
||||
* @inner
|
||||
* @memberof placeRouter
|
||||
* @route GET /roles_has_permissions
|
||||
* @memberof deviceRouter
|
||||
* @route GET /roles/:role_uuid/permissions
|
||||
* @group Roles Permissions - Operations about roles permissions
|
||||
* @param {string} uuid.path.required - The unique identifier for the role permission
|
||||
* @param {string} uuid.path.optional - The unique identifier for the role permission
|
||||
* @param {string} fk_role.path.required - The unique identifier for the role
|
||||
* @param {string} fk_permission.path.required - The unique identifier for the permission
|
||||
* @param {string} fk_permission.path.optional - The unique identifier for the permission
|
||||
* @returns {SuccessResponse} 200 - The role permission object
|
||||
* @returns {ErrorResponse} 404 - Role permission not found
|
||||
* @returns {ErrorResponse} 422 - Unprocessable entity
|
||||
|
|
@ -700,13 +700,14 @@ export default(config) => {
|
|||
* @returns {ErrorResponse} 403 - Forbidden
|
||||
*/
|
||||
routes.get(
|
||||
'/roles_has_permissions',
|
||||
'/roles/:role_uuid/permissions',
|
||||
(req, res, next) => authenticateToken(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles_has_permissions')(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles/:role_uuid/permissions')(req, res, next, config),
|
||||
[
|
||||
uuid('uuid').optional({ nullable: false, values: 'falsy' }),
|
||||
uuid('fk_role').optional({ nullable: false, values: 'falsy' }),
|
||||
uuid('fk_permission').optional({ nullable: false, values: 'falsy' })
|
||||
uuid('role_uuid'),
|
||||
uuid('permission_uuid').optional({ nullable: false, values: 'falsy' }),
|
||||
varChar('roleName').optional({ nullable: false, values: 'falsy' })
|
||||
],
|
||||
(req, res, next) => payloadExpressValidator(req, res, next, config),
|
||||
(req, res, next) => getRolesHasPermissionsController(req, res, next, config),
|
||||
|
|
@ -715,13 +716,13 @@ export default(config) => {
|
|||
);
|
||||
|
||||
/**
|
||||
* @name GET/roles_has_permissions/:uuid
|
||||
* @name GET/roles/:role_uuid/permissions/:permission_uuid'
|
||||
* @function
|
||||
* @inner
|
||||
* @memberof placeRouter
|
||||
* @route GET /roles_has_permissions/{uuid}
|
||||
* @memberof deviceRouter
|
||||
* @route GET /roles/:role_uuid/permissions/:permission_uuid
|
||||
* @group Roles Permissions - Operations about roles permissions
|
||||
* @param {string} uuid.path.required - The unique identifier for the role permission
|
||||
* @param {string} uuid.path.optional - The unique identifier for the role permission
|
||||
* @param {string} fk_role.path.required - The unique identifier for the role
|
||||
* @param {string} fk_permission.path.required - The unique identifier for the permission
|
||||
* @returns {SuccessResponse} 200 - The role permission object
|
||||
|
|
@ -731,26 +732,27 @@ export default(config) => {
|
|||
* @returns {ErrorResponse} 403 - Forbidden
|
||||
*/
|
||||
routes.get(
|
||||
'/roles_has_permissions/:uuid',
|
||||
'/roles/:role_uuid/permissions/:permission_uuid',
|
||||
(req, res, next) => authenticateToken(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles_has_permissions/:uuid')(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles/:role_uuid/permissions/:permission_uuid')(req, res, next, config),
|
||||
[
|
||||
uuid('uuid'),
|
||||
uuid('fk_role').optional({ nullable: false, values: 'falsy' }),
|
||||
uuid('fk_permission').optional({ nullable: false, values: 'falsy' })
|
||||
uuid('uuid').optional({nullable:false, values:'falsy'}),
|
||||
uuid('role_uuid'),
|
||||
uuid('permission_uuid'),
|
||||
varChar('roleName').optional({ nullable: false, values: 'falsy' })
|
||||
],
|
||||
(req, res, next) => payloadExpressValidator(req, res, next, config),
|
||||
(req, res, next) => getRolesHasPermissionsByUuidController(req, res, next, config),
|
||||
(req, res, next) => getRolesHasPermissionsController(req, res, next, config),
|
||||
(result, req, res, next) => addLinks(result, req, res, next, hasAddLinks, linkRoutes),
|
||||
(result, req, res, _) => sendOkResponse(result, req, res)
|
||||
);
|
||||
|
||||
/**
|
||||
* @name POST/roles_has_permissions
|
||||
* @name POST/roles/:role_uuid/permissions
|
||||
* @function
|
||||
* @inner
|
||||
* @memberof placeRouter
|
||||
* @route POST /roles_has_permissions
|
||||
* @memberof deviceRouter
|
||||
* @route POST /roles/:role_uuid/permissions'
|
||||
* @group Roles Permissions - Operations about roles permissions
|
||||
* @param {string} fk_role.path.required - The unique identifier for the role
|
||||
* @param {string} fk_permission.path.required - The unique identifier for the permission
|
||||
|
|
@ -762,12 +764,12 @@ export default(config) => {
|
|||
* @returns {ErrorResponse} 403 - Forbidden
|
||||
*/
|
||||
routes.post(
|
||||
'/roles_has_permissions',
|
||||
'/roles/:role_uuid/permissions',
|
||||
(req, res, next) => authenticateToken(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles_has_permissions')(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles/:role_uuid/permissions')(req, res, next, config),
|
||||
[
|
||||
uuid('fk_role'),
|
||||
uuid('fk_permission')
|
||||
uuid('role_uuid'),
|
||||
uuid('permission_uuid')
|
||||
],
|
||||
(req, res, next) => payloadExpressValidator(req, res, next, config),
|
||||
(req, res, next) => postRolesHasPermissionsController(req, res, next, config),
|
||||
|
|
@ -776,13 +778,12 @@ export default(config) => {
|
|||
);
|
||||
|
||||
/**
|
||||
* @name PUT/roles_has_permissions/:uuid
|
||||
* @name PUT/roles/:role_uuid/permissions/:permission_uuid'
|
||||
* @function
|
||||
* @inner
|
||||
* @memberof placeRouter
|
||||
* @route PUT /roles_has_permissions/{uuid}
|
||||
* @memberof deviceRouter
|
||||
* @route PUT /roles/:role_uuid/permissions/:permission_uuid'
|
||||
* @group Roles Permissions - Operations about roles permissions
|
||||
* @param {string} uuid.path.required - The unique identifier for the role permission
|
||||
* @param {string} fk_role.path.required - The unique identifier for the role
|
||||
* @param {string} fk_permission.path.required - The unique identifier for the permission
|
||||
* @returns {SuccessResponse} 200 - Role permission updated successfully
|
||||
|
|
@ -793,13 +794,14 @@ export default(config) => {
|
|||
* @returns {ErrorResponse} 403 - Forbidden
|
||||
*/
|
||||
routes.put(
|
||||
'/roles_has_permissions/:uuid',
|
||||
'/roles/:role_uuid/permissions/:permission_uuid',
|
||||
(req, res, next) => authenticateToken(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles_has_permissions/:uuid')(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles/:role_uuid/permissions/:permission_uuid')(req, res, next, config),
|
||||
[
|
||||
uuid('uuid'),
|
||||
uuid('fk_role').optional({ nullable: false, values: 'falsy' }),
|
||||
uuid('fk_permission').optional({ nullable: false, values: 'falsy' })
|
||||
uuid('role_uuid'),
|
||||
uuid('permission_uuid'),
|
||||
uuid('new_role_uuid').optional({ nullable: false, values: 'falsy' }),
|
||||
uuid('new_permission_uuid').optional({ nullable: false, values: 'falsy' })
|
||||
],
|
||||
(req, res, next) => payloadExpressValidator(req, res, next, config),
|
||||
(req, res, next) => putRolesHasPermissionsController(req, res, next, config),
|
||||
|
|
@ -808,11 +810,11 @@ export default(config) => {
|
|||
);
|
||||
|
||||
/**
|
||||
* @name DELETE/roles_has_permissions/:uuid
|
||||
* @name DELETE/roles/:role_uuid/permissions
|
||||
* @function
|
||||
* @inner
|
||||
* @memberof placeRouter
|
||||
* @route DELETE /roles_has_permissions/{uuid}
|
||||
* @memberof deviceRouter
|
||||
* @route DELETE /roles/:role_uuid/permissions
|
||||
* @group Roles Permissions - Operations about roles permissions
|
||||
* @param {string} uuid.path.required - The unique identifier for the role permission
|
||||
* @param {string} fk_role.path.required - The unique identifier for the role
|
||||
|
|
@ -824,11 +826,41 @@ export default(config) => {
|
|||
* @returns {ErrorResponse} 403 - Forbidden
|
||||
*/
|
||||
routes.delete(
|
||||
'/roles_has_permissions/:uuid',
|
||||
'/roles/:role_uuid/permissions',
|
||||
(req, res, next) => authenticateToken(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles_has_permissions/:uuid')(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles/:role_uuid/permissions')(req, res, next, config),
|
||||
[
|
||||
uuid('uuid')
|
||||
uuid('role_uuid')
|
||||
],
|
||||
(req, res, next) => payloadExpressValidator(req, res, next, config),
|
||||
(req, res, next) => softDeleteRolesHasPermissionsController(req, res, next, config),
|
||||
(result, req, res, next) => addLinks(result, req, res, next, hasAddLinks, linkRoutes),
|
||||
(result, req, res, _) => sendResponseNoContent(result, req, res)
|
||||
);
|
||||
|
||||
/**
|
||||
* @name DELETE/roles/:role_uuid/permissions/permission_uuid
|
||||
* @function
|
||||
* @inner
|
||||
* @memberof deviceRouter
|
||||
* @route DELETE /roles/:role_uuid/permissions/permission_uuid
|
||||
* @group Roles Permissions - Operations about roles permissions
|
||||
* @param {string} uuid.path.required - The unique identifier for the role permission
|
||||
* @param {string} fk_role.path.required - The unique identifier for the role
|
||||
* @param {string} fk_permission.path.required - The unique identifier for the permission
|
||||
* @returns {SuccessResponse} 200 - Role permission deleted successfully. No content
|
||||
* @returns {ErrorResponse} 404 - Role permission not found
|
||||
* @returns {ErrorResponse} 422 - Unprocessable entity
|
||||
* @returns {ErrorResponse} 500 - Internal server error
|
||||
* @returns {ErrorResponse} 403 - Forbidden
|
||||
*/
|
||||
routes.delete(
|
||||
'/roles/:role_uuid/permissions/permission_uuid',
|
||||
(req, res, next) => authenticateToken(req, res, next, config),
|
||||
(req, res, next) => authorizePermission('/roles/:role_uuid/permissions/permission_uuid')(req, res, next, config),
|
||||
[
|
||||
uuid('role_uuid'),
|
||||
uuid('permission_uuid')
|
||||
],
|
||||
(req, res, next) => payloadExpressValidator(req, res, next, config),
|
||||
(req, res, next) => softDeleteRolesHasPermissionsController(req, res, next, config),
|
||||
|
|
|
|||
Loading…
Reference in New Issue