service.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package auth_token
  2. import (
  3. "github.com/astaxie/beego/orm"
  4. "log"
  5. "nginx-ui/server/models"
  6. "nginx-ui/server/utils"
  7. "nginx-ui/server/vo"
  8. )
  9. type Service struct {
  10. }
  11. type ListQuery struct {
  12. Uid int `json:"uid"`
  13. }
  14. func NewService() *Service {
  15. return &Service{}
  16. }
  17. func (u *Service) List(query *ListQuery, req *vo.PageReq) (*vo.PageResp, error) {
  18. req.Ensure()
  19. qs := orm.NewOrm().QueryTable(new(models.AuthToken)).Filter("Uid", query.Uid)
  20. qs = qs.Offset(req.Offset).Limit(req.PageSize).OrderBy("-Id")
  21. var list []models.AuthToken
  22. _, err := qs.All(&list)
  23. if err != nil {
  24. return nil, err
  25. }
  26. count, err := qs.Count()
  27. if err != nil {
  28. return nil, err
  29. }
  30. resp := vo.PageResp{
  31. PageSize: req.PageSize,
  32. Current: req.Current,
  33. Total: count,
  34. List: list,
  35. }
  36. return &resp, err
  37. }
  38. func (u *Service) Creat(token *models.AuthToken) error {
  39. o := orm.NewOrm()
  40. token.Token = utils.GenerateUUID()
  41. _, err := o.Insert(token)
  42. return err
  43. }
  44. func (u *Service) Update(token *models.AuthToken) error {
  45. o := orm.NewOrm()
  46. if token.Token == "" {
  47. token.Token = utils.GenerateUUID()
  48. }
  49. _, err := o.Update(token)
  50. return err
  51. }
  52. func (u *Service) GetById(id int) (*models.AuthToken, error) {
  53. o := orm.NewOrm()
  54. exist := models.AuthToken{Id: id}
  55. err := o.Read(&exist)
  56. if err != nil {
  57. return nil, err
  58. }
  59. return &exist, nil
  60. }
  61. func GetByToken(token string) (*models.AuthToken, error) {
  62. o := orm.NewOrm()
  63. exist := models.AuthToken{Token: token}
  64. err := o.Read(&exist, "Token")
  65. if err != nil {
  66. return nil, err
  67. }
  68. return &exist, nil
  69. }
  70. func (u *Service) DeleteById(id int) error {
  71. o := orm.NewOrm()
  72. exist := models.AuthToken{Id: id}
  73. _, err := o.Delete(&exist, "Id")
  74. if err != nil {
  75. return err
  76. }
  77. return nil
  78. }
  79. func VerifyToken(token string, path string, ip string) (*models.AuthToken, error) {
  80. log.Printf("verify token: %s, path: %s, ip: %s", token, path, ip)
  81. o := orm.NewOrm()
  82. authToken := models.AuthToken{Token: token}
  83. err := o.Read(&authToken, "Token")
  84. if err != nil {
  85. return nil, err
  86. }
  87. err = authToken.CheckValid()
  88. if err != nil {
  89. return nil, err
  90. }
  91. return &authToken, nil
  92. }