admin_user.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package api
  2. import (
  3. "gadmin/config"
  4. "gadmin/internal/admin/forms"
  5. "gadmin/internal/admin/service"
  6. "gadmin/internal/gorm/query"
  7. "gadmin/utility/serializer"
  8. "gadmin/utility/token"
  9. "github.com/gin-gonic/gin"
  10. )
  11. func UserLogin(c *gin.Context) {
  12. ip := c.ClientIP()
  13. var req forms.UserLoginReq
  14. if err := c.ShouldBind(&req); err == nil {
  15. res := service.User.Login(req, ip)
  16. c.JSON(200, res)
  17. } else {
  18. c.JSON(200, ErrorResponse(err))
  19. }
  20. }
  21. func UserMe(c *gin.Context) {
  22. var (
  23. user = token.CurrentUser(c)
  24. )
  25. permissions := make([]forms.UserLoginPermissions, 0)
  26. permissions = append(permissions, forms.UserLoginPermissions{
  27. Label: "控制台",
  28. Value: "value",
  29. })
  30. //获取用户角色权限
  31. roleInfo, err := service.AdminRole.GetRole(c, forms.AdminRoleReq{ID: user.RoleId})
  32. if err != nil || roleInfo == nil {
  33. c.JSON(200, ErrorResponse(err))
  34. return
  35. }
  36. if roleInfo.Key == "super" {
  37. for k, _ := range config.AuthMenuMap {
  38. permissions = append(permissions, forms.UserLoginPermissions{
  39. Label: config.AuthNameMap[k],
  40. Value: config.AuthMenuMap[k],
  41. })
  42. }
  43. } else {
  44. rpdb := query.Use(config.AdminDB).AdminRolePermission
  45. rolePermission := make([]int, 0)
  46. err = rpdb.Where(rpdb.SystemID.Eq(user.SystemId)).Pluck(rpdb.PermissionID, &rolePermission)
  47. //err = json.Unmarshal([]byte(roleInfo.Permissions), &rolePermission)
  48. if err != nil {
  49. c.JSON(200, ErrorResponse(err))
  50. return
  51. }
  52. for _, v := range rolePermission {
  53. if _, ok := config.AuthMenuMap[v]; ok {
  54. permissions = append(permissions, forms.UserLoginPermissions{
  55. Label: config.AuthNameMap[v],
  56. Value: config.AuthMenuMap[v],
  57. })
  58. }
  59. }
  60. }
  61. //将权限赋值给permission
  62. info := forms.UserMeReq{
  63. ID: user.ID,
  64. UserName: user.UserName,
  65. RoleId: user.RoleId,
  66. Avatar: user.Avatar,
  67. Nickname: user.Nickname,
  68. Permissions: permissions,
  69. IsSuper: user.UserName == "admin",
  70. }
  71. c.JSON(200, serializer.Suc(info, "获取成功"))
  72. }
  73. func AdminUserList(c *gin.Context) {
  74. var req forms.AdminUserListReq
  75. if err := c.ShouldBind(&req); err != nil {
  76. c.JSON(200, ErrorResponse(err))
  77. return
  78. }
  79. if err := forms.ParseParams(&req); err != nil {
  80. c.JSON(200, ErrorResponse(err))
  81. return
  82. }
  83. c.JSON(200, service.User.List(c, req))
  84. }
  85. func AdminUserEdit(c *gin.Context) {
  86. var req forms.AdminUserEditReq
  87. if err := c.ShouldBind(&req); err != nil {
  88. c.JSON(200, ErrorResponse(err))
  89. return
  90. }
  91. if err := forms.ParseParams(&req); err != nil {
  92. c.JSON(200, ErrorResponse(err))
  93. return
  94. }
  95. c.JSON(200, service.User.Edit(c, req))
  96. }
  97. func RolePermission(c *gin.Context) {
  98. is, err := service.User.GetUserRolePermission(c)
  99. if err != nil {
  100. c.JSON(200, ErrorResponse(err))
  101. return
  102. }
  103. c.JSON(200, serializer.Suc(is, "获取成功"))
  104. }