|
7 | 7 | "context" |
8 | 8 | "errors" |
9 | 9 | "fmt" |
| 10 | + "strings" |
10 | 11 |
|
11 | 12 | auth_model "code.gitea.io/gitea/models/auth" |
12 | 13 | "code.gitea.io/gitea/models/db" |
@@ -197,33 +198,38 @@ func runCreateUser(c *cli.Context) error { |
197 | 198 | IsRestricted: restricted, |
198 | 199 | } |
199 | 200 |
|
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 |
204 | 203 | 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") |
208 | 207 | } |
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() |
212 | 210 | if err != nil { |
213 | 211 | return fmt.Errorf("invalid access token scope provided: %w", err) |
214 | 212 | } |
215 | 213 | if !accessTokenScope.HasPermissionScope() { |
216 | 214 | return errors.New("access token does not have any permission") |
217 | 215 | } |
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 |
219 | 221 |
|
| 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} |
220 | 229 | if err := auth_model.NewAccessToken(ctx, t); err != nil { |
221 | 230 | return err |
222 | 231 | } |
223 | | - |
224 | 232 | 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") |
227 | 233 | } |
228 | 234 |
|
229 | 235 | fmt.Printf("New user '%s' has been successfully created!\n", username) |
|
0 commit comments