forked from gitea/gitea
		
	Fix 500 error if there is a name conflict when edit authentication source (#23832)
This commit is contained in:
		
							parent
							
								
									7df036f1a5
								
							
						
					
					
						commit
						6e58f8400e
					
				| @ -317,7 +317,14 @@ func UpdateSource(source *Source) error { | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	_, err := db.GetEngine(db.DefaultContext).ID(source.ID).AllCols().Update(source) | ||||
| 	has, err := db.GetEngine(db.DefaultContext).Where("name=? AND id!=?", source.Name, source.ID).Exist(new(Source)) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} else if has { | ||||
| 		return ErrSourceAlreadyExist{source.Name} | ||||
| 	} | ||||
| 
 | ||||
| 	_, err = db.GetEngine(db.DefaultContext).ID(source.ID).AllCols().Update(source) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| @ -426,9 +426,11 @@ func EditAuthSourcePost(ctx *context.Context) { | ||||
| 	source.IsActive = form.IsActive | ||||
| 	source.IsSyncEnabled = form.IsSyncEnabled | ||||
| 	source.Cfg = config | ||||
| 	// FIXME: if the name conflicts, it will result in 500: Error 1062: Duplicate entry 'aa' for key 'login_source.UQE_login_source_name' | ||||
| 	if err := auth.UpdateSource(source); err != nil { | ||||
| 		if oauth2.IsErrOpenIDConnectInitialize(err) { | ||||
| 		if auth.IsErrSourceAlreadyExist(err) { | ||||
| 			ctx.Data["Err_Name"] = true | ||||
| 			ctx.RenderWithErr(ctx.Tr("admin.auths.login_source_exist", err.(auth.ErrSourceAlreadyExist).Name), tplAuthEdit, form) | ||||
| 		} else if oauth2.IsErrOpenIDConnectInitialize(err) { | ||||
| 			ctx.Flash.Error(err.Error(), true) | ||||
| 			ctx.Data["Err_DiscoveryURL"] = true | ||||
| 			ctx.HTML(http.StatusOK, tplAuthEdit) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 yp05327
						yp05327