summaryrefslogtreecommitdiffstats
path: root/server/api/permissions.js
diff options
context:
space:
mode:
authorChristian Hofmaier2018-08-05 05:32:00 +0200
committerChristian Hofmaier2018-08-05 05:32:00 +0200
commit1326c4f0ac3a0045ea02c9ab9180ded4392fdeb6 (patch)
treeb5589d78af8d97897446f1282c99ea9791bb5954 /server/api/permissions.js
parent[external-backends] Added comments for the API functions and in the external-... (diff)
downloadbas-1326c4f0ac3a0045ea02c9ab9180ded4392fdeb6.tar.gz
bas-1326c4f0ac3a0045ea02c9ab9180ded4392fdeb6.tar.xz
bas-1326c4f0ac3a0045ea02c9ab9180ded4392fdeb6.zip
Add Role Create/Edit
Diffstat (limited to 'server/api/permissions.js')
-rw-r--r--server/api/permissions.js30
1 files changed, 23 insertions, 7 deletions
diff --git a/server/api/permissions.js b/server/api/permissions.js
index 5f89be1..e4d0a48 100644
--- a/server/api/permissions.js
+++ b/server/api/permissions.js
@@ -4,12 +4,9 @@ var db = require(path.join(__appdir, 'lib', 'sequelize'))
module.exports.get = {
getRoleById: function (req, res) {
- var roleid = req.params.roleid
- db.role.findById(roleid, {
- attributes: ['id', 'name', 'descr']
- // include: [{model: db.permission, as: 'permissions', attributes: ['id', 'name', 'descr', 'groupdependent'] }]
- }).then(role => {
- res.status(200).send(role)
+ db.role.findOne({ where: { id: req.query.id }, include: ['permissions', 'groups'] }).then(role => {
+ if (role) res.send(role)
+ else res.status(404).end()
})
},
@@ -38,6 +35,25 @@ module.exports.post = {
},
saveRole: function (req, res) {
+ const role = req.body
+ if (role.id === 0) {
+ // Insert new role in the db.
+ db.role.create({ name: role.name, descr: role.descr }).then(role_db => {
+ var promises = []
+ promises.push(role_db.addPermissions(role.permissions))
+ promises.push(role_db.addGroups(role.groups))
+ Promise.all(promises).then(() => { res.send({ id: role.id }) })
+ })
+ } else {
+ // Update an existing role in the db.
+ db.role.findOne( { where: { id: role.id } }).then(role_db => {
+ var promises = []
+ promises.push(role_db.update({ name: role.name, descr: role.descr }))
+ promises.push(role_db.setPermissions(role.permissions))
+ promises.push(role_db.setGroups(role.groups))
+ Promise.all(promises).then(() => { res.send({ id: role.id }) })
+ })
+ }
}
-}
+} \ No newline at end of file