summaryrefslogtreecommitdiffstats
path: root/server/lib
diff options
context:
space:
mode:
authorJannik Schönartz2020-06-08 02:31:55 +0200
committerJannik Schönartz2020-06-08 02:31:55 +0200
commit12c2d252cf76c45bb8a2b457812540400465de3b (patch)
tree227196cf5ee33fbfb8b9fb326a21cccdac64d599 /server/lib
parent[users/ipxe/backends] PM integration (diff)
downloadbas-12c2d252cf76c45bb8a2b457812540400465de3b.tar.gz
bas-12c2d252cf76c45bb8a2b457812540400465de3b.tar.xz
bas-12c2d252cf76c45bb8a2b457812540400465de3b.zip
[server] PM integration in all missing api-points but groups
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/permissions/modules/clients.json12
-rw-r--r--server/lib/permissions/modules/eventmanager.json12
-rw-r--r--server/lib/permissions/modules/events.json12
-rw-r--r--server/lib/permissions/modules/groups.json12
-rw-r--r--server/lib/permissions/modules/ipranges.json12
-rw-r--r--server/lib/permissions/modules/ipxeconfigs.json12
-rw-r--r--server/lib/permissions/modules/ipxeentries.json12
-rw-r--r--server/lib/permissions/modules/permissionmanager.json12
-rw-r--r--server/lib/permissions/modules/permissions.json7
-rw-r--r--server/lib/permissions/modules/registration.json12
-rw-r--r--server/lib/permissions/modules/roles.json12
-rw-r--r--server/lib/permissions/modules/systemlog.json7
-rw-r--r--server/lib/permissions/modules/wakerequests.json7
-rw-r--r--server/lib/wolhelper.js7
14 files changed, 122 insertions, 26 deletions
diff --git a/server/lib/permissions/modules/clients.json b/server/lib/permissions/modules/clients.json
new file mode 100644
index 0000000..7e69f9e
--- /dev/null
+++ b/server/lib/permissions/modules/clients.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all clients and their information.",
+ "groupdependent": true
+ },
+ {
+ "name": "edit",
+ "description": "Create, delete, edit clients.",
+ "groupdependent": true
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/eventmanager.json b/server/lib/permissions/modules/eventmanager.json
deleted file mode 100644
index 97507ff..0000000
--- a/server/lib/permissions/modules/eventmanager.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[
- {
- "name": "view",
- "description": "View Events",
- "groupdependent": false
- },
- {
- "name": "edit",
- "description": "Edit Events",
- "groupdependent": false
- }
-] \ No newline at end of file
diff --git a/server/lib/permissions/modules/events.json b/server/lib/permissions/modules/events.json
new file mode 100644
index 0000000..3a7d6c8
--- /dev/null
+++ b/server/lib/permissions/modules/events.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all events and their information.",
+ "groupdependent": true
+ },
+ {
+ "name": "edit",
+ "description": "Create, delete, edit events.",
+ "groupdependent": true
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/groups.json b/server/lib/permissions/modules/groups.json
new file mode 100644
index 0000000..4fdb010
--- /dev/null
+++ b/server/lib/permissions/modules/groups.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all groups and their information.",
+ "groupdependent": true
+ },
+ {
+ "name": "edit",
+ "description": "Create, delete, edit groups.",
+ "groupdependent": true
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/ipranges.json b/server/lib/permissions/modules/ipranges.json
new file mode 100644
index 0000000..0127314
--- /dev/null
+++ b/server/lib/permissions/modules/ipranges.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all ipranges including their informations.",
+ "groupdependent": false
+ },
+ {
+ "name": "edit",
+ "description": "Edit and delete ipranges.",
+ "groupdependent": false
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/ipxeconfigs.json b/server/lib/permissions/modules/ipxeconfigs.json
new file mode 100644
index 0000000..1a3f761
--- /dev/null
+++ b/server/lib/permissions/modules/ipxeconfigs.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all ipxe configs and their information.",
+ "groupdependent": true
+ },
+ {
+ "name": "edit",
+ "description": "Create, delete, edit ipxe configs.",
+ "groupdependent": true
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/ipxeentries.json b/server/lib/permissions/modules/ipxeentries.json
new file mode 100644
index 0000000..466e379
--- /dev/null
+++ b/server/lib/permissions/modules/ipxeentries.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all ipxe entries and their information.",
+ "groupdependent": true
+ },
+ {
+ "name": "edit",
+ "description": "Create, delete, edit ipxe entries.",
+ "groupdependent": true
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/permissionmanager.json b/server/lib/permissions/modules/permissionmanager.json
deleted file mode 100644
index ee9b12b..0000000
--- a/server/lib/permissions/modules/permissionmanager.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[
- {
- "name": "view",
- "description": "View Roles",
- "groupdependent": false
- },
- {
- "name": "edit",
- "description": "Edit Roles",
- "groupdependent": false
- }
-] \ No newline at end of file
diff --git a/server/lib/permissions/modules/permissions.json b/server/lib/permissions/modules/permissions.json
new file mode 100644
index 0000000..b7e15f5
--- /dev/null
+++ b/server/lib/permissions/modules/permissions.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name": "view",
+ "description": "View a list of all permissions and check them for a user.",
+ "groupdependent": false
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/registration.json b/server/lib/permissions/modules/registration.json
new file mode 100644
index 0000000..d7bd7d8
--- /dev/null
+++ b/server/lib/permissions/modules/registration.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all registration hooks including their informations.",
+ "groupdependent": false
+ },
+ {
+ "name": "edit",
+ "description": "Edit and delete registration hooks.",
+ "groupdependent": false
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/roles.json b/server/lib/permissions/modules/roles.json
new file mode 100644
index 0000000..73e7a4a
--- /dev/null
+++ b/server/lib/permissions/modules/roles.json
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "view",
+ "description": "View all roles and their information.",
+ "groupdependent": true
+ },
+ {
+ "name": "edit",
+ "description": "Create, delete, edit roles.",
+ "groupdependent": true
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/systemlog.json b/server/lib/permissions/modules/systemlog.json
new file mode 100644
index 0000000..5a80bc3
--- /dev/null
+++ b/server/lib/permissions/modules/systemlog.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name": "view",
+ "description": "View the systemlog.",
+ "groupdependent": false
+ }
+] \ No newline at end of file
diff --git a/server/lib/permissions/modules/wakerequests.json b/server/lib/permissions/modules/wakerequests.json
new file mode 100644
index 0000000..1f4c000
--- /dev/null
+++ b/server/lib/permissions/modules/wakerequests.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name": "send",
+ "description": "Send wake-on-lan requests to clients.",
+ "groupdependent": false
+ }
+] \ No newline at end of file
diff --git a/server/lib/wolhelper.js b/server/lib/wolhelper.js
index c840e44..eaca0e6 100644
--- a/server/lib/wolhelper.js
+++ b/server/lib/wolhelper.js
@@ -8,7 +8,10 @@ function wakeUp (clients) {
const loop = () => {
setTimeout(() => {
let client = clients[i]
- if (client.mac !== null && client.ip !== null) {
+
+ // Regex for mac address
+ const regex = /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/
+ if (client.mac !== null && client.ip !== null && regex.test(client.mac)) {
console.log('Waking up: ' + client.name + ' (' + client.mac + ')')
wol.wake(client.mac, { address: client.ip.slice(0, client.ip.lastIndexOf('.') + 1) + '255' }, err => { if (err) console.log(err) })
log({
@@ -20,7 +23,7 @@ function wakeUp (clients) {
} else {
log({
category: 'ERROR_WAKE_ON_LAN',
- description: 'Client is missing ip or mac address.',
+ description: 'Client has an invalid ip or mac address.',
client,
clientId: client.id
})