settings.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package api
  2. import (
  3. "fmt"
  4. "github.com/0xJacky/Nginx-UI/settings"
  5. "github.com/gin-gonic/gin"
  6. "net/http"
  7. "net/url"
  8. )
  9. func GetSettings(c *gin.Context) {
  10. c.JSON(http.StatusOK, gin.H{
  11. "server": settings.ServerSettings,
  12. "nginx": settings.NginxSettings,
  13. "openai": settings.OpenAISettings,
  14. })
  15. }
  16. func SaveSettings(c *gin.Context) {
  17. var json struct {
  18. Server settings.Server `json:"server"`
  19. Nginx settings.Nginx `json:"nginx"`
  20. Openai settings.OpenAI `json:"openai"`
  21. }
  22. if !BindAndValid(c, &json) {
  23. return
  24. }
  25. settings.ServerSettings = json.Server
  26. settings.NginxSettings = json.Nginx
  27. settings.OpenAISettings = json.Openai
  28. settings.ReflectFrom()
  29. err := settings.Save()
  30. if err != nil {
  31. ErrHandler(c, err)
  32. return
  33. }
  34. GetSettings(c)
  35. }
  36. func GetCasdoorUri(c *gin.Context) {
  37. endpoint := settings.ServerSettings.CasdoorEndpoint
  38. clientId := settings.ServerSettings.CasdoorClientId
  39. redirectUri := settings.ServerSettings.CasdoorRedirectUri
  40. state := settings.ServerSettings.CasdoorApplication
  41. fmt.Println(redirectUri)
  42. if endpoint == "" || clientId == "" || redirectUri == "" || state == "" {
  43. c.JSON(http.StatusOK, gin.H{
  44. "uri": "",
  45. })
  46. return
  47. }
  48. encodedRedirectUri := url.QueryEscape(redirectUri)
  49. c.JSON(http.StatusOK, gin.H{
  50. "uri": fmt.Sprintf("%s/login/oauth/authorize?client_id=%s&response_type=code&redirect_uri=%s&state=%s&scope=read", endpoint, clientId, encodedRedirectUri, state),
  51. })
  52. }