admin_permission_test.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package admin_permission
  2. import (
  3. "context"
  4. "fmt"
  5. "gorm.io/driver/mysql"
  6. "gorm.io/gorm"
  7. "gorm.io/gorm/logger"
  8. "gorm.io/gorm/schema"
  9. "sghgogs.com/sghblog/authorization-service/domain/repository"
  10. "sghgogs.com/sghblog/authorization-service/domain/service"
  11. pb "sghgogs.com/sghblog/authorization-service/proto"
  12. "testing"
  13. )
  14. func TestPermission(t *testing.T) {
  15. address := fmt.Sprintf("%v:%v@(%v:%v)/%v?charset=utf8mb4,utf8&parseTime=True&loc=Local", "root", "xugang131500", "47.56.16.206", 3306, "sghblog")
  16. db, err := gorm.Open(mysql.Open(address), &gorm.Config{
  17. Logger: logger.Default.LogMode(logger.Info),
  18. NamingStrategy: schema.NamingStrategy{
  19. SingularTable: true,
  20. }})
  21. if err != nil {
  22. t.Fatal(err)
  23. }
  24. // type AdminPermission struct {
  25. // ID int64 `gorm:"primary_key;not_null;auto_increment;" json:"id"`
  26. // Name string `json:"name"`
  27. // Description string `json:"description"`
  28. // Roles []AdminRole `gorm:"many2many:admin_role_permission;" json:"roles"`
  29. // CreatedAt time.Time `json:"created_at"`
  30. // CreatedBy string `json:"created_by"`
  31. // UpdatedAt *time.Time `json:"updated_at"`
  32. // UpdatedBy string `json:"updated_by"`
  33. // Status pb.StatusEnum `json:"status"` // 可以是 "enabled", "disabled", "deleted" 等
  34. // IsReserved bool `json:"is_reserved"`
  35. // }
  36. repo := repository.NewRepository(db)
  37. newService := service.NewService(repo)
  38. // getAuthentication = &auth.Resource{
  39. // Type: "user",
  40. // Name: name,
  41. // Endpoint: "AuthenticationService.GetAuthentication",
  42. // }
  43. // // catchallResource
  44. // rulesItems = []*auth.Rule{
  45. // // {Scope: "*", Resource: catchallResource}, toggleAdminRole
  46. // {Scope: "admin", Resource: adminLogout, ID: uuid.New().String(), Priority: 1},
  47. // authorizationservice
  48. t.Run("创建权限", func(t *testing.T) {
  49. err = newService.CreateAdminPermission(context.Background(), &pb.CreateAdminPermissionRequest{
  50. Name: "authorizationservice",
  51. Description: "设置权限状态",
  52. Endpoint: "AdminPermissionService.ToggleAdminPermission",
  53. Status: pb.StatusEnum_ENABLED,
  54. })
  55. fmt.Println(err)
  56. })
  57. t.Run("角色分配权限", func(t *testing.T) {
  58. roles := []int64{2}
  59. err = newService.UpdateAdminPermission(context.Background(), &pb.UpdateAdminPermissionRequest{
  60. PermissionId: 21,
  61. Status: pb.StatusEnum_ENABLED,
  62. Roles: roles,
  63. })
  64. fmt.Println(err)
  65. })
  66. t.Run("获取权限详情", func(t *testing.T) {
  67. permission, err2 := newService.GetAdminPermission(&pb.GetAdminPermissionRequest{
  68. Id: 1,
  69. })
  70. fmt.Println(fmt.Sprintf("%+v", permission))
  71. fmt.Println(err2)
  72. })
  73. t.Run("获取权限列表", func(t *testing.T) {
  74. all, err2 := newService.GetAdminPermissionAll()
  75. fmt.Println(err2)
  76. for _, item := range all {
  77. fmt.Println(fmt.Sprintf("%+v \n", item))
  78. }
  79. })
  80. }