admin_user.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package api
  2. import (
  3. "encoding/json"
  4. "gadmin/config"
  5. "gadmin/internal/admin/forms"
  6. "gadmin/internal/admin/service"
  7. "gadmin/utility/serializer"
  8. "gadmin/utility/token"
  9. "github.com/gin-gonic/gin"
  10. )
  11. func UserRegister(c *gin.Context) {
  12. var req forms.UserRegisterReq
  13. if err := c.ShouldBind(&req); err == nil {
  14. res := service.User.Register(req)
  15. c.JSON(200, res)
  16. } else {
  17. c.JSON(200, ErrorResponse(err))
  18. }
  19. }
  20. func UserLogin(c *gin.Context) {
  21. ip := c.ClientIP()
  22. var req forms.UserLoginReq
  23. if err := c.ShouldBind(&req); err == nil {
  24. res := service.User.Login(req, ip)
  25. c.JSON(200, res)
  26. } else {
  27. c.JSON(200, ErrorResponse(err))
  28. }
  29. }
  30. func UserMe(c *gin.Context) {
  31. var (
  32. user = token.CurrentUser(c)
  33. )
  34. permissions := make([]forms.UserLoginPermissions, 0)
  35. permissions = append(permissions, forms.UserLoginPermissions{
  36. Label: "控制台",
  37. Value: "value",
  38. })
  39. //获取用户角色权限
  40. roleInfo, err := service.AdminRole.GetRole(c, forms.AdminRoleReq{ID: user.RoleId})
  41. if err != nil || roleInfo == nil {
  42. c.JSON(200, ErrorResponse(err))
  43. return
  44. }
  45. if roleInfo.Key == "super" {
  46. for k, _ := range config.AuthMenuMap {
  47. permissions = append(permissions, forms.UserLoginPermissions{
  48. Label: config.AuthNameMap[k],
  49. Value: config.AuthMenuMap[k],
  50. })
  51. }
  52. } else {
  53. rolePermission := make([]int, 0)
  54. err = json.Unmarshal([]byte(roleInfo.Permissions), &rolePermission)
  55. if err != nil {
  56. c.JSON(200, ErrorResponse(err))
  57. return
  58. }
  59. for _, v := range rolePermission {
  60. if _, ok := config.AuthMenuMap[v]; ok {
  61. permissions = append(permissions, forms.UserLoginPermissions{
  62. Label: config.AuthNameMap[v],
  63. Value: config.AuthMenuMap[v],
  64. })
  65. }
  66. }
  67. }
  68. //将权限赋值给permission
  69. info := forms.UserMeReq{
  70. ID: user.ID,
  71. UserName: user.UserName,
  72. RoleId: user.RoleId,
  73. Avatar: user.Avatar,
  74. Nickname: user.Nickname,
  75. Permissions: permissions,
  76. IsSuper: user.UserName == "admin",
  77. }
  78. c.JSON(200, serializer.Suc(info, "获取成功"))
  79. }
  80. func UserLogout(c *gin.Context) {
  81. if err := token.Layout(c.GetHeader("authorization")); err != nil {
  82. c.JSON(200, ErrorResponse(err))
  83. return
  84. }
  85. c.JSON(200, serializer.Suc(nil, "退出成功"))
  86. }
  87. func AdminUserList(c *gin.Context) {
  88. var req forms.AdminUserListReq
  89. if err := c.ShouldBind(&req); err != nil {
  90. c.JSON(200, ErrorResponse(err))
  91. return
  92. }
  93. if err := forms.ParseParams(&req); err != nil {
  94. c.JSON(200, ErrorResponse(err))
  95. return
  96. }
  97. c.JSON(200, service.User.List(c, req))
  98. }
  99. func AdminUserEdit(c *gin.Context) {
  100. var req forms.AdminUserEditReq
  101. if err := c.ShouldBind(&req); err != nil {
  102. c.JSON(200, ErrorResponse(err))
  103. return
  104. }
  105. if err := forms.ParseParams(&req); err != nil {
  106. c.JSON(200, ErrorResponse(err))
  107. return
  108. }
  109. c.JSON(200, service.User.Edit(c, req))
  110. }
  111. func ResetPassword(c *gin.Context) {
  112. var req forms.AdminUserResetPasswordReq
  113. if err := c.ShouldBind(&req); err != nil {
  114. c.JSON(200, ErrorResponse(err))
  115. return
  116. }
  117. if err := forms.ParseParams(&req); err != nil {
  118. c.JSON(200, ErrorResponse(err))
  119. return
  120. }
  121. c.JSON(200, service.User.ResetPassword(c, req))
  122. }
  123. func UpdatePassword(c *gin.Context) {
  124. var req forms.AdminUserUpdatePasswordReq
  125. if err := c.ShouldBind(&req); err != nil {
  126. c.JSON(200, ErrorResponse(err))
  127. return
  128. }
  129. if err := forms.ParseParams(&req); err != nil {
  130. c.JSON(200, ErrorResponse(err))
  131. return
  132. }
  133. c.JSON(200, service.User.UpdatePassword(c, req))
  134. }