client.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package controllers
  2. import (
  3. "github.com/cnlh/easyProxy/server"
  4. "github.com/cnlh/easyProxy/utils"
  5. )
  6. type ClientController struct {
  7. BaseController
  8. }
  9. func (s *ClientController) Client() {
  10. if s.Ctx.Request.Method == "GET" {
  11. s.Data["menu"] = "client"
  12. s.SetInfo("客户端管理")
  13. s.display("client/list")
  14. return
  15. }
  16. start, length := s.GetAjaxParams()
  17. list, cnt := server.GetClientList(start, length)
  18. s.AjaxTable(list, cnt, cnt)
  19. }
  20. //添加客户端
  21. func (s *ClientController) Add() {
  22. if s.Ctx.Request.Method == "GET" {
  23. s.Data["menu"] = "client"
  24. s.SetInfo("新增")
  25. s.display()
  26. } else {
  27. t := &utils.Client{
  28. VerifyKey: utils.GetRandomString(16),
  29. Id: server.CsvDb.GetClientId(),
  30. Status: true,
  31. Remark: s.GetString("Remark"),
  32. Cnf: &utils.ServerConfig{
  33. U: s.GetString("u"),
  34. P: s.GetString("p"),
  35. Compress: s.GetString("compress"),
  36. Crypt: s.GetBoolNoErr("crypt"),
  37. Mux: s.GetBoolNoErr("mux"),
  38. },
  39. }
  40. server.CsvDb.NewClient(t)
  41. s.AjaxOk("添加成功")
  42. }
  43. }
  44. //修改客户端
  45. func (s *ClientController) Edit() {
  46. if s.Ctx.Request.Method == "GET" {
  47. s.Data["menu"] = "client"
  48. id := s.GetIntNoErr("id")
  49. if c, err := server.CsvDb.GetClient(id); err != nil {
  50. s.error()
  51. } else {
  52. s.Data["c"] = c
  53. }
  54. s.SetInfo("修改")
  55. s.display()
  56. } else {
  57. id := s.GetIntNoErr("Id")
  58. if c, err := server.CsvDb.GetClient(id); err != nil {
  59. s.error()
  60. } else {
  61. c.Remark = s.GetString("Remark")
  62. c.Cnf.U = s.GetString("u")
  63. c.Cnf.P = s.GetString("p")
  64. c.Cnf.Compress = s.GetString("compress")
  65. c.Cnf.Crypt = s.GetBoolNoErr("crypt")
  66. c.Cnf.Mux = s.GetBoolNoErr("mux")
  67. server.CsvDb.UpdateClient(c)
  68. }
  69. s.AjaxOk("修改成功")
  70. }
  71. }
  72. //更改状态
  73. func (s *ClientController) ChangeStatus() {
  74. id := s.GetIntNoErr("id")
  75. if client, err := server.CsvDb.GetClient(id); err == nil {
  76. client.Status = s.GetBoolNoErr("status")
  77. if client.Status == false {
  78. server.DelClientConnect(client.Id)
  79. }
  80. s.AjaxOk("修改成功")
  81. }
  82. s.AjaxErr("修改失败")
  83. }
  84. //删除客户端
  85. func (s *ClientController) Del() {
  86. id := s.GetIntNoErr("id")
  87. if err := server.CsvDb.DelClient(id); err != nil {
  88. s.AjaxErr("删除失败")
  89. }
  90. server.DelTunnelAndHostByClientId(id)
  91. server.DelClientConnect(id)
  92. s.AjaxOk("删除成功")
  93. }