userToken.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package admin
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/lejianwen/rustdesk-api/global"
  5. "github.com/lejianwen/rustdesk-api/http/request/admin"
  6. "github.com/lejianwen/rustdesk-api/http/response"
  7. "github.com/lejianwen/rustdesk-api/model"
  8. "github.com/lejianwen/rustdesk-api/service"
  9. "gorm.io/gorm"
  10. )
  11. type UserToken struct {
  12. }
  13. // List 列表
  14. // @Tags 登录凭证
  15. // @Summary 登录凭证列表
  16. // @Description 登录凭证列表
  17. // @Accept json
  18. // @Produce json
  19. // @Param page query int false "页码"
  20. // @Param page_size query int false "页大小"
  21. // @Param user_id query int false "用户ID"
  22. // @Success 200 {object} response.Response{data=model.UserTokenList}
  23. // @Failure 500 {object} response.Response
  24. // @Router /admin/user_token/list [get]
  25. // @Security token
  26. func (ct *UserToken) List(c *gin.Context) {
  27. query := &admin.LoginTokenQuery{}
  28. if err := c.ShouldBindQuery(query); err != nil {
  29. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  30. return
  31. }
  32. res := service.AllService.UserService.TokenList(query.Page, query.PageSize, func(tx *gorm.DB) {
  33. if query.UserId > 0 {
  34. tx.Where("user_id = ?", query.UserId)
  35. }
  36. tx.Order("id desc")
  37. })
  38. response.Success(c, res)
  39. }
  40. // Delete 删除
  41. // @Tags 登录凭证
  42. // @Summary 登录凭证删除
  43. // @Description 登录凭证删除
  44. // @Accept json
  45. // @Produce json
  46. // @Param body body model.UserToken true "登录凭证信息"
  47. // @Success 200 {object} response.Response
  48. // @Failure 500 {object} response.Response
  49. // @Router /admin/user_token/delete [post]
  50. // @Security token
  51. func (ct *UserToken) Delete(c *gin.Context) {
  52. f := &model.UserToken{}
  53. if err := c.ShouldBindJSON(f); err != nil {
  54. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  55. return
  56. }
  57. id := f.Id
  58. errList := global.Validator.ValidVar(c, id, "required,gt=0")
  59. if len(errList) > 0 {
  60. response.Fail(c, 101, errList[0])
  61. return
  62. }
  63. l := service.AllService.UserService.TokenInfoById(f.Id)
  64. u := service.AllService.UserService.CurUser(c)
  65. if !service.AllService.UserService.IsAdmin(u) && l.UserId != u.Id {
  66. response.Fail(c, 101, response.TranslateMsg(c, "NoAccess"))
  67. return
  68. }
  69. if l.Id > 0 {
  70. err := service.AllService.UserService.DeleteToken(l)
  71. if err == nil {
  72. response.Success(c, nil)
  73. return
  74. }
  75. response.Fail(c, 101, err.Error())
  76. return
  77. }
  78. response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
  79. }
  80. // BatchDelete 批量删除
  81. // @Tags 登录凭证
  82. // @Summary 登录凭证批量删除
  83. // @Description 登录凭证批量删除
  84. // @Accept json
  85. // @Produce json
  86. // @Param body body admin.UserTokenBatchDeleteForm true "登录凭证信息"
  87. // @Success 200 {object} response.Response
  88. // @Failure 500 {object} response.Response
  89. // @Router /admin/user_token/batchDelete [post]
  90. // @Security token
  91. func (ct *UserToken) BatchDelete(c *gin.Context) {
  92. f := &admin.UserTokenBatchDeleteForm{}
  93. if err := c.ShouldBindJSON(f); err != nil {
  94. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  95. return
  96. }
  97. ids := f.Ids
  98. if len(ids) == 0 {
  99. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError"))
  100. return
  101. }
  102. err := service.AllService.UserService.BatchDeleteUserToken(ids)
  103. if err == nil {
  104. response.Success(c, nil)
  105. return
  106. }
  107. response.Fail(c, 101, err.Error())
  108. }