MCPcopy Create free account
hub / github.com/GoSimplicity/LinkMe / MockUser

Method MockUser

internal/mock/user.go:53–116  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

51}
52
53func (m *mockUserRepository) MockUser() error {
54 var existingUser User
55 //existingUser := new(User)
56
57 if err := m.db.Where("username=?", "admin").First(&existingUser).Error; err == nil {
58 m.l.Info("user already exists, skipping creation", zap.String("username", "admin"))
59 return nil
60 } else if !errors.Is(err, gorm.ErrRecordNotFound) {
61 m.l.Error("failed to query user", zap.Error(err))
62 return err
63 }
64
65 hash, err := bcrypt.GenerateFromPassword([]byte("admin"), bcrypt.DefaultCost)
66 if err != nil {
67 panic(err)
68 }
69 //hash := []byte("admin")
70 user := User{
71 Username: "admin",
72 PasswordHash: string(hash),
73 }
74 user.ID = 1
75 user.CreateTime = time.Now().Unix()
76 user.UpdatedTime = time.Now().Unix()
77
78 if err := m.db.Create(&user).Error; err != nil {
79 m.l.Error("failed to create user", zap.Error(err))
80 return err
81 }
82
83 if err := m.db.Create(&Profile{
84 UserID: user.ID,
85 RealName: "admin",
86 About: "管理员账号",
87 }).Error; err != nil {
88 m.l.Error("failed to create profile", zap.Error(err))
89 return err
90 }
91
92 // 将 userID 转换为字符串
93 userIDStr := strconv.FormatInt(user.ID, 10)
94
95 // 定义所有路径和方法的集合(可根据你的应用实际调整)
96 paths := []string{"/*"} // 假设 /* 表示所有路径
97 methods := []string{"GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"}
98
99 // 为用户添加所有路径和方法的策略
100 for _, path := range paths {
101 for _, method := range methods {
102 ok, err := m.ce.AddPolicy(userIDStr, path, method)
103 if err != nil {
104 m.l.Error("failed to add policy", zap.Error(err))
105 return err
106 }
107
108 if !ok {
109 m.l.Error("policy already exists", zap.Error(err))
110 return fmt.Errorf("policy already exists for user %d, path %s, method %s", user.ID, path, method)

Callers

nothing calls this directly

Calls 1

CreateMethod · 0.65

Tested by

no test coverage detected