summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorChristian Hofmaier2018-08-10 02:28:51 +0200
committerChristian Hofmaier2018-08-10 02:28:51 +0200
commit79966027428a7d9e1425c63777647e53c9167066 (patch)
treebe23858c24b4ffedd19a6ec188fc5eb87a9c6090 /server
parent[server/config] Add server configs. (diff)
downloadbas-79966027428a7d9e1425c63777647e53c9167066.tar.gz
bas-79966027428a7d9e1425c63777647e53c9167066.tar.xz
bas-79966027428a7d9e1425c63777647e53c9167066.zip
[permissions] Add recursive group selection + tables changed to search tables
Role Table has now a new column recursiveGroups to display if recursive selection is wanted Roles and Permissions can now have longer descriptions Data-Tables are now Udos Search-Tables
Diffstat (limited to 'server')
-rw-r--r--server/api/permissions.js9
-rw-r--r--server/app.js2
-rw-r--r--server/migrations/20180726033100-create-role.js5
-rw-r--r--server/migrations/20180726171200-create-permission.js2
-rw-r--r--server/migrations/20180809013230-create-role_x_group.js (renamed from server/migrations/20180804234000-create-role_x_group.js)0
-rw-r--r--server/models/permission.js2
-rw-r--r--server/models/role.js3
7 files changed, 14 insertions, 9 deletions
diff --git a/server/api/permissions.js b/server/api/permissions.js
index 5ed09e0..7894719 100644
--- a/server/api/permissions.js
+++ b/server/api/permissions.js
@@ -59,16 +59,17 @@ module.exports.post = {
* name: <ROLE_NAME>
* descr: <ROLE_DESCRIPTION>
* permissions: <PERMISSION_IDS>
- * groups: <GROUP_IDS>
+ * groups: <GROUP_IDS>,
+ * recursiveMode: < RECURSIVE_MODE>
*
- * Creates or updates a role.
+ * Creates or updates a role. If recursiveMode is set to true, the <GROUP_IDS> are saved with childs.
*/
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(roleDb => {
+ db.role.create({ name: role.name, descr: role.descr, recursiveGroups: role.recursiveMode }).then(roleDb => {
var promises = []
promises.push(roleDb.addPermissions(role.permissions))
promises.push(roleDb.addGroups(role.groups))
@@ -78,7 +79,7 @@ module.exports.post = {
// Update an existing role in the db.
db.role.findOne({ where: { id: role.id } }).then(roleDb => {
var promises = []
- promises.push(roleDb.update({ name: role.name, descr: role.descr }))
+ promises.push(roleDb.update({ name: role.name, descr: role.descr, recursiveGroups: role.recursiveMode }))
promises.push(roleDb.setPermissions(role.permissions))
promises.push(roleDb.setGroups(role.groups))
Promise.all(promises).then(() => { res.send({ id: role.id }) })
diff --git a/server/app.js b/server/app.js
index c9a270c..f9b0845 100644
--- a/server/app.js
+++ b/server/app.js
@@ -12,7 +12,7 @@ global.__appdir = __dirname
require('./lib/tftp')
// Read permissions from JSON and update the database
-require('./lib/permissions')
+require('./lib/permissions/index.js')
// ############################################################################
// ########################### setup middleware ###############################
diff --git a/server/migrations/20180726033100-create-role.js b/server/migrations/20180726033100-create-role.js
index c930148..20736a2 100644
--- a/server/migrations/20180726033100-create-role.js
+++ b/server/migrations/20180726033100-create-role.js
@@ -12,7 +12,10 @@ module.exports = {
type: Sequelize.STRING
},
descr: {
- type: Sequelize.STRING
+ type: Sequelize.STRING(2048)
+ },
+ recursiveGroups: {
+ type: Sequelize.BOOLEAN
}
})
},
diff --git a/server/migrations/20180726171200-create-permission.js b/server/migrations/20180726171200-create-permission.js
index 822e47c..a20ca79 100644
--- a/server/migrations/20180726171200-create-permission.js
+++ b/server/migrations/20180726171200-create-permission.js
@@ -12,7 +12,7 @@ module.exports = {
type: Sequelize.STRING
},
descr: {
- type: Sequelize.STRING
+ type: Sequelize.STRING(2048)
},
groupdependent: {
type: Sequelize.BOOLEAN
diff --git a/server/migrations/20180804234000-create-role_x_group.js b/server/migrations/20180809013230-create-role_x_group.js
index a6dd792..a6dd792 100644
--- a/server/migrations/20180804234000-create-role_x_group.js
+++ b/server/migrations/20180809013230-create-role_x_group.js
diff --git a/server/models/permission.js b/server/models/permission.js
index a1bd5d3..af007a0 100644
--- a/server/models/permission.js
+++ b/server/models/permission.js
@@ -8,7 +8,7 @@ module.exports = (sequelize, DataTypes) => {
type: DataTypes.INTEGER
},
name: DataTypes.STRING,
- descr: DataTypes.STRING,
+ descr: DataTypes.STRING(2048),
groupdependent: DataTypes.BOOLEAN
}, {
timestamps: false
diff --git a/server/models/role.js b/server/models/role.js
index f33b042..f88c132 100644
--- a/server/models/role.js
+++ b/server/models/role.js
@@ -8,7 +8,8 @@ module.exports = (sequelize, DataTypes) => {
type: DataTypes.INTEGER
},
name: DataTypes.STRING,
- descr: DataTypes.STRING
+ descr: DataTypes.STRING(2048),
+ recursiveGroups: DataTypes.BOOLEAN
}, {
timestamps: false
})