Skip to content
Snippets Groups Projects
Commit b56653a6 authored by Benjamin Jaillet's avatar Benjamin Jaillet
Browse files

added endpoints for admin management

parent 06d1c546
No related branches found
No related tags found
No related merge requests found
......@@ -63,8 +63,10 @@ routers.post('/policy/add', policyHandler.createPolicy)
routers.delete('/policy/delete', policyHandler.deletePolicy)
routers.put('/policy/update', policyHandler.updatePolicy)
routers.get('/policy/list', policyHandler.policies)
routers.post('/policy/list-by-user', policyHandler.policiesByUser)
routers.post('/policy/assigned-fields', policyHandler.assignedPolicies)
routers.get('/policy/policies-with-sources', policyHandler.getPoliciesWithSources)
routers.get('/policy/policies-with-sources-by-user', policyHandler.getPoliciesWithSourcesByUser)
routers.post('/policy/policies-with-groups', policyHandler.getGroupDetailsByPolicy)
routers.post('/policyField/add', policyHandler.createPolicyField)
routers.delete('/policyField/delete', policyHandler.deletePolicyField)
......
'use strict'
const { createPolicy, createPolicyField, createPolicySource } = require('./post')
const { createPolicy, createPolicyField, createPolicySource, policiesByUser, getPoliciesWithSourcesByUser } = require('./post')
const { updatePolicy, updatePolicyField } = require('./update')
const { deletePolicy, deletePolicyField } = require('./delete')
const { policies, policyFields, assignedPolicies,getPoliciesWithSources, getGroupDetailsByPolicy } = require('./get')
const { policies, policyFields, assignedPolicies, getPoliciesWithSources, getGroupDetailsByPolicy } = require('./get')
const PolicyHandler = {
createPolicy,
......@@ -13,9 +13,11 @@ const PolicyHandler = {
deletePolicy,
deletePolicyField,
policies,
policiesByUser,
policyFields,
assignedPolicies,
getPoliciesWithSources,
getPoliciesWithSourcesByUser,
getGroupDetailsByPolicy,
createPolicySource
}
......
......@@ -41,10 +41,36 @@ const Policy = {
ctx.status = 500
logger.error(`Caught error: ${JSON.stringify(util.inspect(error, { compact: false, depth: 1, breakLength: 80 }))}`)
}
},
async policiesByUser(ctx) {
try {
ctx.body = await policyService.policiesByUser(ctx.request.body)
ctx.status = 201
logger.info('Policies by user listed successfully!')
} catch (error) {
ctx.body = error.response || 'erroror occurred!'
ctx.status = 500
logger.error(`Caught error: ${JSON.stringify(util.inspect(error, { compact: false, depth: 1, breakLength: 80 }))}`)
}
},
async getPoliciesWithSourcesByUser(ctx) {
try {
ctx.body = await policyService.getPoliciesWithSourcesByUser(ctx.request.body)
ctx.status = 201
logger.info('Policies with sources by user listed successfully!')
} catch (error) {
ctx.body = error.response || 'erroror occurred!'
ctx.status = 500
logger.error(`Caught error: ${JSON.stringify(util.inspect(error, { compact: false, depth: 1, breakLength: 80 }))}`)
}
}
}
module.exports = {
policiesByUser: Policy.policiesByUser,
getPoliciesWithSourcesByUser: Policy.getPoliciesWithSourcesByUser,
createPolicy: Policy.createPolicy,
createPolicyField: Policy.createPolicyField,
createPolicySource: Policy.createPolicySource
......
......@@ -200,6 +200,27 @@ const PolicyService = {
return await Policy.findAll({})
},
async policiesByUser(ctx) {
if (!ctx) {
throw Error("The request body is empty!")
}
try {
const params = { userId: ctx.kcId }
const policiesByUser = await db.raw(
`select DISTINCT p.id, p.name, p.user_id, p.source_id, u.kc_id from policies p
inner join users u on p.user_id = u.id
where u.kc_id = :userId`, params)
return policiesByUser.rows
} catch (error) {
throw new Error(error)
}
},
async policyFields(ctx) {
return await PolicyField.findAll({})
......@@ -238,6 +259,30 @@ const PolicyService = {
return policiesWIthSource.rows
},
async getPoliciesWithSourcesByUser(ctx) {
if (!ctx) {
throw Error("The request body is empty!")
}
try {
const params = { userId: ctx.kcId }
const policiesByUser = await db.raw(`
select p.id, p.name as policyName, s.name as sourceName, p.user_id, p.source_id, u.kc_id from policies p
inner join users u on p.user_id = u.id
left join policy_sources ps on p.id = ps.policy_id
left join sources s on ps.source_id = s.id
where u.kc_id = :userId`, params)
return policiesByUser.rows
} catch (error) {
throw new Error(error)
}
},
async getGroupDetailsByPolicy(ctx) {
if (!ctx) {
throw Error("The request body is empty!")
......@@ -271,8 +316,10 @@ module.exports = {
deletePolicy: PolicyService.deletePolicy,
policies: PolicyService.policies,
policiesByUser: PolicyService.policiesByUser,
policyFields: PolicyService.policyFields,
getAssignedPolicies: PolicyService.getAssignedPolicies,
getPoliciesWithSources: PolicyService.getPoliciesWithSources,
getPoliciesWithSourcesByUser: PolicyService.getPoliciesWithSourcesByUser,
getGroupDetailsByPolicy: PolicyService.getGroupDetailsByPolicy,
}
\ No newline at end of file
......@@ -440,7 +440,7 @@ const UserService = {
const userWithGroupAndRole = await db.raw(
`select DISTINCT u.id, u.kc_id, u.username, u.email, g.id as groupId,
g.name as groupName, r.name as roleName, r.description as roleDescription from users u
g.name as groupName, r.name as roleName, r.id as roleId, r.description as roleDescription from users u
inner join roles_users ru on u.kc_id = ru.kc_id
inner join roles r on ru.role_id = r.id
left join group_users gu on u.id = gu.user_id
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment