MCPcopy Create free account
hub / github.com/openclaw/gogcli / newAdminUserCreatePlan

Function newAdminUserCreatePlan

internal/cmd/admin_user_create_plan.go:32–90  ·  view source on GitHub ↗
(input adminUserCreateInput)

Source from the content-addressed store, hash-verified

30}
31
32func newAdminUserCreatePlan(input adminUserCreateInput) (adminUserCreatePlan, error) {
33 plan := adminUserCreatePlan{
34 Email: strings.TrimSpace(input.Email),
35 Password: strings.TrimSpace(input.Password),
36 }
37 givenName := strings.TrimSpace(input.GivenName)
38 familyName := strings.TrimSpace(input.FamilyName)
39 if plan.Email == "" {
40 return adminUserCreatePlan{}, usage("email required")
41 }
42 if err := validatePlainEmail("email", plan.Email); err != nil {
43 return adminUserCreatePlan{}, err
44 }
45 if givenName == "" {
46 return adminUserCreatePlan{}, usage("--given required")
47 }
48 if familyName == "" {
49 return adminUserCreatePlan{}, usage("--family required")
50 }
51 if input.Admin {
52 return adminUserCreatePlan{}, usage("--admin is not supported; assign admin roles separately after user creation")
53 }
54
55 hashFunction, err := normalizeAdminUserHashFunction(input.HashFunction)
56 if err != nil {
57 return adminUserCreatePlan{}, err
58 }
59 if hashFunction != "" && plan.Password == "" {
60 return adminUserCreatePlan{}, usage("--password required when --hash-function is set")
61 }
62
63 plan.GeneratePassword = plan.Password == ""
64 plan.User = &admin.User{
65 PrimaryEmail: plan.Email,
66 Name: &admin.UserName{
67 GivenName: givenName,
68 FamilyName: familyName,
69 },
70 ChangePasswordAtNextLogin: input.ChangePwd || plan.GeneratePassword,
71 Suspended: input.Suspended,
72 Archived: input.Archived,
73 OrgUnitPath: strings.TrimSpace(input.OrgUnit),
74 RecoveryEmail: strings.TrimSpace(input.RecoveryEmail),
75 RecoveryPhone: strings.TrimSpace(input.RecoveryPhone),
76 HashFunction: hashFunction,
77 }
78 if plan.User.RecoveryEmail != "" {
79 if err := validatePlainEmail("--recovery-email", plan.User.RecoveryEmail); err != nil {
80 return adminUserCreatePlan{}, err
81 }
82 }
83 if input.Suspended || input.Archived {
84 plan.StatePatch = &admin.User{
85 Suspended: input.Suspended,
86 Archived: input.Archived,
87 }
88 }
89 return plan, nil

Calls 3

usageFunction · 0.85
validatePlainEmailFunction · 0.85