diff mbox series

[OpenWrt-Devel,luci] luci-mod-system: use ubus method for reboot

Message ID 20200618132518.26000-1-zajec5@gmail.com
State Accepted
Delegated to: Jo-Philipp Wich
Headers show
Series [OpenWrt-Devel,luci] luci-mod-system: use ubus method for reboot | expand

Commit Message

Rafał Miłecki June 18, 2020, 1:25 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

It's more generic & convenient than hardcoding /sbin/reboot executable
path. procd provides "reboot" method since 2016.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 .../luci-static/resources/view/system/reboot.js     | 13 ++++++++++---
 .../root/usr/share/rpcd/acl.d/luci-mod-system.json  |  3 ++-
 2 files changed, 12 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js
index 3b9f450fc..249247bab 100644
--- a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js
+++ b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js
@@ -1,9 +1,16 @@ 
 'use strict';
 'require view';
 'require fs';
+'require rpc';
 'require ui';
 'require uci';
 
+var callReboot = rpc.declare({
+	object: 'system',
+	method: 'reboot',
+	expect: { result: 0 }
+});
+
 return view.extend({
 	load: function() {
 		return uci.changes();
@@ -31,9 +38,9 @@  return view.extend({
 	},
 
 	handleReboot: function(ev) {
-		return fs.exec('/sbin/reboot').then(function(res) {
-			if (res.code != 0) {
-				L.ui.addNotification(null, E('p', _('The reboot command failed with code %d').format(res.code)));
+		return callReboot().then(function(res) {
+			if (res != 0) {
+				L.ui.addNotification(null, E('p', _('The reboot command failed with code %d').format(res)));
 				L.raise('Error', 'Reboot failed');
 			}
 
diff --git a/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json b/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json
index b29ddb8f4..38ff98dee 100644
--- a/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json
+++ b/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json
@@ -160,7 +160,8 @@ 
 				"/sbin/reboot": [ "exec" ]
 			},
 			"ubus": {
-				"file": [ "exec" ]
+				"file": [ "exec" ],
+				"system": [ "reboot" ]
 			}
 		}
 	}