mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	chore(api): support ignore password if login source type is LDAP for creating user API (#28491)
- Modify the `Password` field in `CreateUserOption` struct to remove the `Required` tag - Update the `v1_json.tmpl` template to include the `email` field and remove the `password` field --------- Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
		@@ -15,9 +15,8 @@ type CreateUserOption struct {
 | 
			
		||||
	FullName string `json:"full_name" binding:"MaxSize(100)"`
 | 
			
		||||
	// required: true
 | 
			
		||||
	// swagger:strfmt email
 | 
			
		||||
	Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
 | 
			
		||||
	// required: true
 | 
			
		||||
	Password           string `json:"password" binding:"Required;MaxSize(255)"`
 | 
			
		||||
	Email              string `json:"email" binding:"Required;Email;MaxSize(254)"`
 | 
			
		||||
	Password           string `json:"password" binding:"MaxSize(255)"`
 | 
			
		||||
	MustChangePassword *bool  `json:"must_change_password"`
 | 
			
		||||
	SendNotify         bool   `json:"send_notify"`
 | 
			
		||||
	Restricted         *bool  `json:"restricted"`
 | 
			
		||||
 
 | 
			
		||||
@@ -93,18 +93,28 @@ func CreateUser(ctx *context.APIContext) {
 | 
			
		||||
	if ctx.Written() {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if !password.IsComplexEnough(form.Password) {
 | 
			
		||||
		err := errors.New("PasswordComplexity")
 | 
			
		||||
		ctx.Error(http.StatusBadRequest, "PasswordComplexity", err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	pwned, err := password.IsPwned(ctx, form.Password)
 | 
			
		||||
	if pwned {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error(err.Error())
 | 
			
		||||
 | 
			
		||||
	if u.LoginType == auth.Plain {
 | 
			
		||||
		if len(form.Password) < setting.MinPasswordLength {
 | 
			
		||||
			err := errors.New("PasswordIsRequired")
 | 
			
		||||
			ctx.Error(http.StatusBadRequest, "PasswordIsRequired", err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if !password.IsComplexEnough(form.Password) {
 | 
			
		||||
			err := errors.New("PasswordComplexity")
 | 
			
		||||
			ctx.Error(http.StatusBadRequest, "PasswordComplexity", err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		pwned, err := password.IsPwned(ctx, form.Password)
 | 
			
		||||
		if pwned {
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error(err.Error())
 | 
			
		||||
			}
 | 
			
		||||
			ctx.Error(http.StatusBadRequest, "PasswordPwned", errors.New("PasswordPwned"))
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		ctx.Error(http.StatusBadRequest, "PasswordPwned", errors.New("PasswordPwned"))
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	overwriteDefault := &user_model.CreateUserOverwriteOptions{
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								templates/swagger/v1_json.tmpl
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3
									
								
								templates/swagger/v1_json.tmpl
									
									
									
										generated
									
									
									
								
							@@ -18406,8 +18406,7 @@
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "required": [
 | 
			
		||||
        "username",
 | 
			
		||||
        "email",
 | 
			
		||||
        "password"
 | 
			
		||||
        "email"
 | 
			
		||||
      ],
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "created_at": {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user