sudo.js 755 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * @author oldj
  3. * @blog https://oldj.net
  4. *
  5. * try to apply hosts
  6. */
  7. 'use strict'
  8. const safePSWD = require('../libs/safe-pswd')
  9. module.exports = svr => {
  10. let _resolve
  11. let _reject
  12. svr.once('sudo_pswd', pswd => {
  13. svr.removeAllListeners('sudo_cancel')
  14. try {
  15. pswd = safePSWD(pswd)
  16. _resolve(pswd)
  17. } catch (e) {
  18. console.log(e)
  19. }
  20. })
  21. svr.once('sudo_cancel', () => {
  22. svr.removeAllListeners('sudo_pswd')
  23. try {
  24. _reject('user:sudo_cancel')
  25. } catch (e) {
  26. console.log(e)
  27. }
  28. })
  29. return new Promise((resolve, reject) => {
  30. svr.broadcast('sudo_prompt')
  31. try {
  32. svr.win.show()
  33. } catch (e) {
  34. console.log(e)
  35. }
  36. _resolve = resolve
  37. _reject = reject
  38. })
  39. }