mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Add some tests to clarify the "must-change-password" behavior (#30693)
Follow #30472: When a user is created by command line `./gitea admin user create`: Old behavior before #30472: the first user (admin or non-admin) doesn't need to change password. Revert to the old behavior before #30472
This commit is contained in:
		@@ -4,6 +4,7 @@
 | 
			
		||||
package cmd
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
@@ -48,7 +49,7 @@ var microcmdUserCreate = &cli.Command{
 | 
			
		||||
		},
 | 
			
		||||
		&cli.BoolFlag{
 | 
			
		||||
			Name:               "must-change-password",
 | 
			
		||||
			Usage:              "Set to false to prevent forcing the user to change their password after initial login",
 | 
			
		||||
			Usage:              "User must change password after initial login, defaults to true for all users except the first one (can be disabled by --must-change-password=false)",
 | 
			
		||||
			DisableDefaultText: true,
 | 
			
		||||
		},
 | 
			
		||||
		&cli.IntFlag{
 | 
			
		||||
@@ -91,11 +92,16 @@ func runCreateUser(c *cli.Context) error {
 | 
			
		||||
		_, _ = fmt.Fprintf(c.App.ErrWriter, "--name flag is deprecated. Use --username instead.\n")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx, cancel := installSignals()
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	if err := initDB(ctx); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	ctx := c.Context
 | 
			
		||||
	if !setting.IsInTesting {
 | 
			
		||||
		// FIXME: need to refactor the "installSignals/initDB" related code later
 | 
			
		||||
		// it doesn't make sense to call it in (almost) every command action function
 | 
			
		||||
		var cancel context.CancelFunc
 | 
			
		||||
		ctx, cancel = installSignals()
 | 
			
		||||
		defer cancel()
 | 
			
		||||
		if err := initDB(ctx); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var password string
 | 
			
		||||
@@ -123,8 +129,8 @@ func runCreateUser(c *cli.Context) error {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("IsTableNotEmpty: %w", err)
 | 
			
		||||
		}
 | 
			
		||||
		if !hasUserRecord && isAdmin {
 | 
			
		||||
			// if this is the first admin being created, don't force to change password (keep the old behavior)
 | 
			
		||||
		if !hasUserRecord {
 | 
			
		||||
			// if this is the first one being created, don't force to change password (keep the old behavior)
 | 
			
		||||
			mustChangePassword = false
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user