Files
old-naida/permissions.js

88 lines
2.9 KiB
JavaScript
Raw Normal View History

2019-10-30 23:45:40 +01:00
//Main API for managing user permissions database
const express=require('express');
const cors= require('cors');
const bodyParser= require('body-parser');
const knex= require ('knex');
const app=express();
//Enabling CORS
app.use(cors());
//Enabling req body parsing
app.use(bodyParser.json());
//Connection with database -locally
const db = knex ({
client: 'pg',
connection: {
host : '127.0.0.1',
user : 'postgres',
password : '0904',
database : 'testdb'
}
});
//Requiremenst for JSON endpoint calls
const addusertogroup= require('./endpoints/addusertogroup');
const cleargroup= require('./endpoints/cleargroup');
const addpermission= require('./endpoints/addpermission');
2019-10-31 14:27:46 +01:00
const clearpermissions= require('./endpoints/clearpermissions');
const testuserperm= require('./endpoints/testuserperm');
2019-11-01 01:16:23 +01:00
const querypermiss= require('./endpoints/querypermiss');
2019-11-07 01:10:25 +01:00
const listgroupusers= require('./endpoints/listgroupusers');
const listgrouppermissions= require('./endpoints/listgrouppermissions');
const listuserpermissions= require('./endpoints/listuserpermissions');
2019-11-01 23:55:33 +01:00
//Requiremenst for input data validation
const { addUserValidationRules, addPermissionValidationRules, validate, } = require('./validators/validator')
2019-10-30 23:45:40 +01:00
//Checking basics
app.get('/', (req, res) => {
res.send("Work in progress...");
})
2019-11-07 01:10:25 +01:00
//Call for listing all groups with their users - needed for control panel
app.get('/listgroupusers', (req, res) => {
listgroupusers.handleListGroup(req, res, db);
});
//Call for listing all permissions with their owners groups and users - needed for control panel
app.get('/listgrouppermissions', (req, res) => {
listgrouppermissions.handleListPerm(req, res, db);
});
app.get('/listuserpermissions', (req, res) => {
listuserpermissions.handleListPerm(req, res, db);
});
2019-10-30 23:45:40 +01:00
//Call for adding a user to a group
2019-11-01 23:55:33 +01:00
app.post('/addusertogroup', addUserValidationRules(), validate, (req, res) => {
2019-10-30 23:45:40 +01:00
addusertogroup.handleAddUserToGroup(req, res, db)});
2019-11-01 01:16:23 +01:00
//Call for clearing all users from group
app.post('/cleargroup', (req,res) => {
2019-10-31 14:27:46 +01:00
cleargroup.handleClearGroup(req, res, db);
2019-10-30 23:45:40 +01:00
});
//Call for adding a permission to a user or group
2019-11-01 23:55:33 +01:00
app.post('/addpermission', addPermissionValidationRules(), validate, (req, res) => {
2019-10-30 23:45:40 +01:00
addpermission.handleAddPermission(req, res, db)});
2019-11-01 01:16:23 +01:00
//Call for clearing all permissions from user or group
app.post('/clearpermissions', (req,res) => {
2019-10-31 14:27:46 +01:00
clearpermissions.handleClearPerm(req, res, db);
});
//Call for testing if a particular user has a particular permission over a
// particular object
app.post('/testuserperm', (req,res) => {
testuserperm.condTest(req, res, db);
})
2019-10-30 23:45:40 +01:00
2019-11-01 01:16:23 +01:00
//Call for querying what permissions a particular user has over a particular object
app.post('/querypermiss', (req,res) => {
querypermiss.handleQuery(req,res,db);
})
2019-10-30 23:45:40 +01:00
//Listening on local port 3000 -temporary, to be changed to env Var
app.listen(3000, () => {
console.log(`App is running on port 3000`);
2019-11-04 20:19:33 +01:00
})