MCPcopy Create free account
hub / github.com/astercloud/aster / CreateUser

Method CreateUser

pkg/security/access_control.go:312–356  ·  view source on GitHub ↗

CreateUser 创建用户

(user *User)

Source from the content-addressed store, hash-verified

310
311// CreateUser 创建用户
312func (ac *AccessController) CreateUser(user *User) error {
313 ac.mu.Lock()
314 defer ac.mu.Unlock()
315
316 if user.ID == "" {
317 return errors.New("user ID is required")
318 }
319
320 if _, exists := ac.users[user.ID]; exists {
321 return fmt.Errorf("user %s already exists", user.ID)
322 }
323
324 if user.Username == "" {
325 return errors.New("username is required")
326 }
327
328 // 检查用户名是否已存在
329 for _, existingUser := range ac.users {
330 if existingUser.Username == user.Username {
331 return fmt.Errorf("username %s already exists", user.Username)
332 }
333 }
334
335 // 设置默认值
336 if user.Status == "" {
337 user.Status = UserStatusActive
338 }
339 user.Enabled = true
340 user.CreatedAt = time.Now()
341 user.UpdatedAt = time.Now()
342
343 ac.users[user.ID] = user
344
345 // 记录审计日志
346 if ac.config.EnableAudit && ac.auditLog != nil {
347 _ = ac.auditLog.LogEvent(AuditEvent{
348 Type: AuditTypeUserCreated,
349 UserID: user.ID,
350 Timestamp: time.Now(),
351 Message: fmt.Sprintf("User %s (%s) created", user.ID, user.Username),
352 })
353 }
354
355 return nil
356}
357
358// GetUser 获取用户
359func (ac *AccessController) GetUser(userID string) (*User, error) {

Calls 1

LogEventMethod · 0.65