ldap.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package main
  2. import (
  3. "net/http"
  4. ldap "imuslab.com/arozos/mod/auth/ldap"
  5. prout "imuslab.com/arozos/mod/prouter"
  6. )
  7. func ldapInit() {
  8. //ldap
  9. ldapHandler := ldap.NewLdapHandler(authAgent, registerHandler, sysdb, permissionHandler, userHandler, nightlyManager, iconSystem)
  10. //add a entry to the system settings
  11. adminRouter := prout.NewModuleRouter(prout.RouterOption{
  12. ModuleName: "System Setting",
  13. AdminOnly: true,
  14. UserHandler: userHandler,
  15. DeniedHandler: func(w http.ResponseWriter, r *http.Request) {
  16. errorHandlePermissionDenied(w, r)
  17. },
  18. })
  19. registerSetting(settingModule{
  20. Name: "LDAP",
  21. Desc: "Allows external account access to system",
  22. IconPath: "SystemAO/advance/img/small_icon.png",
  23. Group: "Security",
  24. StartDir: "SystemAO/advance/ldap.html",
  25. RequireAdmin: true,
  26. })
  27. adminRouter.HandleFunc("/system/auth/ldap/config/read", ldapHandler.ReadConfig)
  28. adminRouter.HandleFunc("/system/auth/ldap/config/write", ldapHandler.WriteConfig)
  29. adminRouter.HandleFunc("/system/auth/ldap/config/testConnection", ldapHandler.TestConnection)
  30. adminRouter.HandleFunc("/system/auth/ldap/config/syncorizeUser", ldapHandler.SynchronizeUser)
  31. //login interface and login handler
  32. http.HandleFunc("/system/auth/ldap/login", ldapHandler.HandleLogin)
  33. http.HandleFunc("/system/auth/ldap/setPassword", ldapHandler.HandleSetPassword)
  34. http.HandleFunc("/system/auth/ldap/newPassword", ldapHandler.HandleNewPasswordPage)
  35. http.HandleFunc("/ldapLogin.system", ldapHandler.HandleLoginPage)
  36. http.HandleFunc("/system/auth/ldap/checkldap", ldapHandler.HandleCheckLDAP)
  37. }