From: Rafał Miłecki <[email protected]>

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

Signed-off-by: Rafał Miłecki <[email protected]>
---
 .../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 --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" ]
                        }
                }
        }
-- 
2.26.1


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to