register.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package main
  2. import (
  3. "net/http"
  4. "encoding/json"
  5. reg "imuslab.com/aroz_online/mod/auth/register"
  6. prout "imuslab.com/aroz_online/mod/prouter"
  7. )
  8. var (
  9. registerHandler *reg.RegisterHandler
  10. )
  11. func RegisterSystemInit(){
  12. //Register the endpoints for public registration
  13. rh := reg.NewRegisterHandler(sysdb, authAgent, permissionHandler, reg.RegisterOptions{
  14. Hostname: *host_name,
  15. VendorIcon: "web/" + iconVendor,
  16. });
  17. registerHandler = rh
  18. //Set the allow registry states
  19. if (*allow_public_registry){
  20. registerHandler.AllowRegistry = true
  21. }else{
  22. registerHandler.AllowRegistry = false
  23. }
  24. http.HandleFunc("/public/register/register.system",registerHandler.HandleRegisterInterface);
  25. http.HandleFunc("/public/register/handleRegister.system",registerHandler.HandleRegisterRequest);
  26. http.HandleFunc("/public/register/checkPublicRegister",registerHandler.HandleRegisterCheck);
  27. //Register settings
  28. registerSetting(settingModule{
  29. Name: "Public Registry",
  30. Desc: "Allow public users to create account in this host",
  31. IconPath: "SystemAO/users/img/small_icon.png",
  32. Group: "Users",
  33. StartDir: "SystemAO/users/pubreg.html",
  34. RequireAdmin: true,
  35. })
  36. //Register Setting Interface for setting interfaces
  37. adminrouter := prout.NewModuleRouter(prout.RouterOption{
  38. ModuleName: "System Setting",
  39. AdminOnly: true,
  40. UserHandler: userHandler,
  41. DeniedHandler: func(w http.ResponseWriter, r *http.Request){
  42. sendErrorResponse(w, "Permission Denied");
  43. },
  44. });
  45. //Handle updates of the default group
  46. adminrouter.HandleFunc("/system/register/setDefaultGroup", register_handleSetDefaultGroup);
  47. //Handle if the current handler allow registry
  48. adminrouter.HandleFunc("/system/register/getAllowRegistry",register_handleGetAllowRegistry)
  49. //Handle toggle
  50. adminrouter.HandleFunc("/system/register/setAllowRegistry",register_handleToggleRegistry);
  51. }
  52. func register_handleSetDefaultGroup(w http.ResponseWriter, r *http.Request){
  53. getDefaultGroup, _ := mv(r, "get",true)
  54. if (getDefaultGroup == "true"){
  55. jsonString, _ := json.Marshal(registerHandler.DefaultUserGroup)
  56. sendJSONResponse(w,string(jsonString));
  57. return
  58. }
  59. newDefaultGroup, err := mv(r, "defaultGroup",true)
  60. if err != nil{
  61. sendErrorResponse(w, "defaultGroup not defined")
  62. return
  63. }
  64. err = registerHandler.SetDefaultUserGroup(newDefaultGroup);
  65. if err != nil{
  66. sendErrorResponse(w, err.Error())
  67. return
  68. }
  69. sendOK(w);
  70. }
  71. func register_handleGetAllowRegistry(w http.ResponseWriter, r *http.Request){
  72. jsonString, _ := json.Marshal(registerHandler.AllowRegistry)
  73. sendJSONResponse(w, string(jsonString))
  74. }
  75. func register_handleToggleRegistry(w http.ResponseWriter, r *http.Request){
  76. allowReg, err := mv(r, "allow",true)
  77. if err != nil{
  78. allowReg = "false"
  79. }
  80. registerHandler.SetAllowRegistry(allowReg == "true");
  81. sendOK(w);
  82. }