mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-04-30 04:25:49 +08:00
refactor ssh
This commit is contained in:
@@ -4,25 +4,19 @@
|
|||||||
|
|
||||||
module.exports = exports = express.Router()
|
module.exports = exports = express.Router()
|
||||||
|
|
||||||
|
ssh = require './ssh'
|
||||||
|
|
||||||
exports.use requireInService 'ssh'
|
exports.use requireInService 'ssh'
|
||||||
|
|
||||||
exports.post '/update_password', (req, res) ->
|
exports.post '/update_password', (req, res) ->
|
||||||
unless /^.+$/.test req.body.password
|
unless /^.+$/.test req.body.password
|
||||||
return res.error 'invalid_password'
|
return res.error 'invalid_password'
|
||||||
|
|
||||||
chpasswd = child_process.spawn 'sudo', ['chpasswd']
|
ssh.updatePassword req.account, req.body.password, ->
|
||||||
chpasswd.stdin.end "#{req.account.username}:#{req.body.password}"
|
|
||||||
|
|
||||||
chpasswd.on 'error', logger.error
|
|
||||||
|
|
||||||
chpasswd.on 'exit', ->
|
|
||||||
res.json {}
|
res.json {}
|
||||||
|
|
||||||
exports.post '/kill', (req, res) ->
|
exports.post '/kill', (req, res) ->
|
||||||
pid = parseInt req.body.pid
|
pid = parseInt req.body.pid
|
||||||
|
|
||||||
child_process.exec "sudo su #{req.account.username} -c 'kill #{pid}'", (err) ->
|
ssh.killProcess req.account, pid, ->
|
||||||
logger.error err if err
|
res.json {}
|
||||||
|
|
||||||
cache.delete 'linux.getProcessList', ->
|
|
||||||
res.json {}
|
|
||||||
|
|||||||
18
plugin/ssh/ssh.coffee
Normal file
18
plugin/ssh/ssh.coffee
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{child_process} = app.libs
|
||||||
|
{cache, logger} = app
|
||||||
|
|
||||||
|
exports.updatePassword = (account, password, callback) ->
|
||||||
|
chpasswd = child_process.spawn 'sudo', ['chpasswd']
|
||||||
|
chpasswd.stdin.end "#{account.username}:#{password}"
|
||||||
|
|
||||||
|
chpasswd.on 'error', logger.error
|
||||||
|
|
||||||
|
chpasswd.on 'exit', ->
|
||||||
|
callback()
|
||||||
|
|
||||||
|
exports.killProcess = (account, pid, callback) ->
|
||||||
|
child_process.exec "sudo su #{account.username} -c 'kill #{pid}'", (err) ->
|
||||||
|
logger.error err if err
|
||||||
|
|
||||||
|
cache.delete 'linux.getProcessList', ->
|
||||||
|
callback()
|
||||||
@@ -12,7 +12,9 @@ exports.registerHook 'view.panel.scripts',
|
|||||||
|
|
||||||
exports.registerHook 'view.panel.widgets',
|
exports.registerHook 'view.panel.widgets',
|
||||||
generator: (req, callback) ->
|
generator: (req, callback) ->
|
||||||
exports.render 'widget', req, {}, callback
|
exports.render 'widget', req,
|
||||||
|
programSummary: supervisor.programSummary
|
||||||
|
, callback
|
||||||
|
|
||||||
exports.registerServiceHook 'enable',
|
exports.registerServiceHook 'enable',
|
||||||
filter: (req, callback) ->
|
filter: (req, callback) ->
|
||||||
|
|||||||
Reference in New Issue
Block a user