hardware.power.go 1007 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "net/http"
  4. "log"
  5. )
  6. func hardware_power_init(){
  7. if (*allow_hardware_management){
  8. //Only register these paths when hardware management is enabled
  9. }
  10. http.HandleFunc("/system/power/accessCheck", hardware_power_checkIfHardware)
  11. }
  12. func hardware_power_checkIfHardware(w http.ResponseWriter, r *http.Request){
  13. if (*allow_hardware_management){
  14. sendJSONResponse(w, "true")
  15. }else{
  16. sendJSONResponse(w, "false")
  17. }
  18. }
  19. //Pass in shutdown={deviceuuid} to shutdown
  20. func hardware_power_restart(w http.ResponseWriter, r *http.Request){
  21. _, err := authAgent.GetUserName(w,r);
  22. if (err != nil){
  23. sendErrorResponse(w, "User not logged in")
  24. return
  25. }
  26. isAdmin := system_permission_checkUserIsAdmin(w,r)
  27. if (!isAdmin){
  28. sendErrorResponse(w, "Permission denied")
  29. return
  30. }
  31. poweroff, _ := mv(r, "shutdown", true)
  32. if (poweroff == ""){
  33. //Do system restart
  34. log.Println("Restarting");
  35. }else if (poweroff == deviceUUID){
  36. //Do system shutdown
  37. log.Println("Shutting down");
  38. }
  39. }