api_setting.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package route
  2. import (
  3. "database/sql"
  4. "log"
  5. "opennamu/route/tool"
  6. jsoniter "github.com/json-iterator/go"
  7. )
  8. func Setting_list() map[string]string {
  9. setting_acl := map[string]string{}
  10. setting_acl["manage_404_page"] = ""
  11. setting_acl["manage_404_page_content"] = ""
  12. setting_acl["bbs_view_acl_all"] = ""
  13. setting_acl["bbs_acl_all"] = ""
  14. setting_acl["bbs_edit_acl_all"] = ""
  15. setting_acl["bbs_comment_acl_all"] = ""
  16. setting_acl["rankup_condition"] = ""
  17. return setting_acl
  18. }
  19. func Api_setting(call_arg []string) string {
  20. var json = jsoniter.ConfigCompatibleWithStandardLibrary
  21. other_set := map[string]string{}
  22. json.Unmarshal([]byte(call_arg[0]), &other_set)
  23. db := tool.DB_connect()
  24. defer db.Close()
  25. setting_acl := Setting_list()
  26. if val, ok := setting_acl[other_set["set_name"]]; ok {
  27. if val != "" {
  28. if tool.Check_acl(db, "", "", "owner_auth", other_set["ip"]) {
  29. return_data := make(map[string]interface{})
  30. return_data["response"] = "require auth"
  31. json_data, _ := json.Marshal(return_data)
  32. return string(json_data)
  33. }
  34. }
  35. data_coverage := ""
  36. if val, ok := other_set["coverage"]; ok {
  37. data_coverage = val
  38. }
  39. var rows *sql.Rows
  40. if data_coverage != "" {
  41. stmt, err := db.Prepare(tool.DB_change("select data, coverage from other where name = ? and coverage = ?"))
  42. if err != nil {
  43. log.Fatal(err)
  44. }
  45. defer stmt.Close()
  46. rows, err = stmt.Query(other_set["set_name"], data_coverage)
  47. if err != nil {
  48. log.Fatal(err)
  49. }
  50. } else {
  51. stmt, err := db.Prepare(tool.DB_change("select data, coverage from other where name = ?"))
  52. if err != nil {
  53. log.Fatal(err)
  54. }
  55. defer stmt.Close()
  56. rows, err = stmt.Query(other_set["set_name"])
  57. if err != nil {
  58. log.Fatal(err)
  59. }
  60. }
  61. defer rows.Close()
  62. data_list := [][]string{}
  63. for rows.Next() {
  64. var set_data string
  65. var set_coverage string
  66. err := rows.Scan(&set_data, &set_coverage)
  67. if err != nil {
  68. log.Fatal(err)
  69. }
  70. data_list = append(data_list, []string{set_data, set_coverage})
  71. }
  72. return_data := make(map[string]interface{})
  73. return_data["response"] = "ok"
  74. return_data["data"] = data_list
  75. json_data, _ := json.Marshal(return_data)
  76. return string(json_data)
  77. } else {
  78. return_data := make(map[string]interface{})
  79. return_data["response"] = "not exist"
  80. json_data, _ := json.Marshal(return_data)
  81. return string(json_data)
  82. }
  83. }