Skip to content

Commit ac86171

Browse files
committed
arguments should be prepared before creating the user & access token, in case there is anything wrong
1 parent 0387ff2 commit ac86171

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

cmd/admin_user_create.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"context"
88
"errors"
99
"fmt"
10+
"strings"
1011

1112
auth_model "code.gitea.io/gitea/models/auth"
1213
"code.gitea.io/gitea/models/db"
@@ -197,33 +198,38 @@ func runCreateUser(c *cli.Context) error {
197198
IsRestricted: restricted,
198199
}
199200

200-
if err := user_model.CreateUser(ctx, u, &user_model.Meta{}, overwriteDefault); err != nil {
201-
return fmt.Errorf("CreateUser: %w", err)
202-
}
203-
201+
var accessTokenName string
202+
var accessTokenScope auth_model.AccessTokenScope
204203
if c.IsSet("access-token") {
205-
t := &auth_model.AccessToken{
206-
Name: c.String("access-token-name"),
207-
UID: u.ID,
204+
accessTokenName = strings.TrimSpace(c.String("access-token-name"))
205+
if accessTokenName == "" {
206+
return errors.New("access-token-name cannot be empty")
208207
}
209-
210-
// include access token's scopes
211-
accessTokenScope, err := auth_model.AccessTokenScope(c.String("access-token-scopes")).Normalize()
208+
var err error
209+
accessTokenScope, err = auth_model.AccessTokenScope(c.String("access-token-scopes")).Normalize()
212210
if err != nil {
213211
return fmt.Errorf("invalid access token scope provided: %w", err)
214212
}
215213
if !accessTokenScope.HasPermissionScope() {
216214
return errors.New("access token does not have any permission")
217215
}
218-
t.Scope = accessTokenScope
216+
} else if c.IsSet("access-token-name") || c.IsSet("access-token-scopes") {
217+
return errors.New("access-token-name and access-token-scopes flags are only valid when access-token flag is set")
218+
}
219+
220+
// arguments should be prepared before creating the user & access token, in case there is anything wrong
219221

222+
// create the user
223+
if err := user_model.CreateUser(ctx, u, &user_model.Meta{}, overwriteDefault); err != nil {
224+
return fmt.Errorf("CreateUser: %w", err)
225+
}
226+
// create the access token
227+
if accessTokenScope != "" {
228+
t := &auth_model.AccessToken{Name: accessTokenName, UID: u.ID, Scope: accessTokenScope}
220229
if err := auth_model.NewAccessToken(ctx, t); err != nil {
221230
return err
222231
}
223-
224232
fmt.Printf("Access token was successfully created... %s\n", t.Token)
225-
} else if c.IsSet("access-token-name") || c.IsSet("access-token-scopes") {
226-
return errors.New("access-token-name and access-token-scopes flags are only valid when access-token flag is set")
227233
}
228234

229235
fmt.Printf("New user '%s' has been successfully created!\n", username)

0 commit comments

Comments
 (0)