summaryrefslogtreecommitdiffstats
path: root/server/lib/permissions
diff options
context:
space:
mode:
authorChristian Hofmaier2018-08-05 02:17:26 +0200
committerChristian Hofmaier2018-08-05 02:17:26 +0200
commit6eb5f471993df1ce96bde7ec33c61ccb141ea907 (patch)
tree0614e828e0be213f1bbf625733bea257b420f7cc /server/lib/permissions
parent[webapp/groups] asdf (diff)
downloadbas-6eb5f471993df1ce96bde7ec33c61ccb141ea907.tar.gz
bas-6eb5f471993df1ce96bde7ec33c61ccb141ea907.tar.xz
bas-6eb5f471993df1ce96bde7ec33c61ccb141ea907.zip
fdsa
Diffstat (limited to 'server/lib/permissions')
-rw-r--r--server/lib/permissions/index.js38
-rw-r--r--server/lib/permissions/permissions.json129
2 files changed, 167 insertions, 0 deletions
diff --git a/server/lib/permissions/index.js b/server/lib/permissions/index.js
new file mode 100644
index 0000000..e1157eb
--- /dev/null
+++ b/server/lib/permissions/index.js
@@ -0,0 +1,38 @@
+/* global __appdir */
+const path = require('path')
+var permissions = require(path.join(__appdir, 'lib', 'permissions', 'permissions'))
+var db = require(path.join(__appdir, 'lib', 'sequelize'))
+
+updatePermissionDatabase()
+
+function updatePermissionDatabase () {
+ var permissionNames = []
+
+ // Insert / Update Entries in Database
+ permissions.forEach(function(permission) {
+ permissionNames.push(permission.name)
+ upsert(db.permission, { name: permission.name, descr: permission.descr, groupdependent: permission.groupdependent }, { name: permission.name })
+ })
+
+ // Delete Entries from Database
+ db.permission.destroy(
+ { where: { $not: { name: permissionNames } } }
+ )
+}
+
+// Update or Insert function
+function upsert (model, newItem, where) {
+ return model
+ .findOne({where: where})
+ .then(function (foundItem) {
+ if (!foundItem) {
+ return model
+ .create(newItem)
+ .then(function (item) { return {item: item, created: true} })
+ }
+
+ return model
+ .update(newItem, {where: where})
+ .then(function (item) { return {item: item, created: false} })
+ })
+} \ No newline at end of file
diff --git a/server/lib/permissions/permissions.json b/server/lib/permissions/permissions.json
new file mode 100644
index 0000000..8b37b2c
--- /dev/null
+++ b/server/lib/permissions/permissions.json
@@ -0,0 +1,129 @@
+[
+ {
+ "name": "A",
+ "descr": "Testing permission A",
+ "groupdependent": true
+ },
+ {
+ "name": "B",
+ "descr": "Testing permission B",
+ "groupdependent": false
+ },
+ {
+ "name": "C",
+ "descr": "Testing permission C",
+ "groupdependent": true
+ },
+ {
+ "name": "D",
+ "descr": "Testing permission D",
+ "groupdependent": false
+ },
+ {
+ "name": "E",
+ "descr": "Testing permission E",
+ "groupdependent": false
+ },
+ {
+ "name": "F",
+ "descr": "Testing permission F",
+ "groupdependent": false
+ },
+ {
+ "name": "G",
+ "descr": "Testing permission G",
+ "groupdependent": false
+ },
+ {
+ "name": "H",
+ "descr": "Testing permission H",
+ "groupdependent": true
+ },
+ {
+ "name": "I",
+ "descr": "Testing permission I",
+ "groupdependent": true
+ }, {
+ "name": "J",
+ "descr": "Testing permission J",
+ "groupdependent": false
+ }, {
+ "name": "K",
+ "descr": "Testing permission K",
+ "groupdependent": true
+ }, {
+ "name": "L",
+ "descr": "Testing permission L",
+ "groupdependent": false
+ },
+ {
+ "name": "M",
+ "descr": "Testing permission M",
+ "groupdependent": false
+ },
+ {
+ "name": "N",
+ "descr": "Testing permission N",
+ "groupdependent": true
+ },
+ {
+ "name": "O",
+ "descr": "Testing permission O",
+ "groupdependent": false
+ },
+ {
+ "name": "P",
+ "descr": "Testing permission P",
+ "groupdependent": false
+ },
+ {
+ "name": "Q",
+ "descr": "Testing permission Q",
+ "groupdependent": false
+ },
+ {
+ "name": "R",
+ "descr": "Testing permission R",
+ "groupdependent": false
+ },
+ {
+ "name": "S",
+ "descr": "Testing permission S",
+ "groupdependent": false
+ },
+ {
+ "name": "T",
+ "descr": "Testing permission T",
+ "groupdependent": false
+ },
+ {
+ "name": "U",
+ "descr": "Testing permission U",
+ "groupdependent": true
+ },
+ {
+ "name": "V",
+ "descr": "Testing permission V",
+ "groupdependent": false
+ },
+ {
+ "name": "W",
+ "descr": "Testing permission W",
+ "groupdependent": false
+ },
+ {
+ "name": "X",
+ "descr": "Testing permission X",
+ "groupdependent": false
+ },
+ {
+ "name": "Y",
+ "descr": "Testing permission Y",
+ "groupdependent": true
+ },
+ {
+ "name": "Z",
+ "descr": "Testing permission Z",
+ "groupdependent": false
+ }
+] \ No newline at end of file