mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-30 06:38:37 -04:00 
			
		
		
		
	Remove org users who belong to no teams (#24247)
Fix #24128 --------- Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
		| @@ -419,6 +419,12 @@ func DeleteTeam(t *organization.Team) error { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	for _, tm := range t.Members { | ||||
| 		if err := removeInvalidOrgUser(ctx, tm.ID, t.OrgID); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// Update organization number of teams. | ||||
| 	if _, err := db.Exec(ctx, "UPDATE `user` SET num_teams=num_teams-1 WHERE id=?", t.OrgID); err != nil { | ||||
| 		return err | ||||
| @@ -568,16 +574,19 @@ func removeTeamMember(ctx context.Context, team *organization.Team, userID int64 | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return removeInvalidOrgUser(ctx, userID, team.OrgID) | ||||
| } | ||||
|  | ||||
| func removeInvalidOrgUser(ctx context.Context, userID, orgID int64) error { | ||||
| 	// Check if the user is a member of any team in the organization. | ||||
| 	if count, err := e.Count(&organization.TeamUser{ | ||||
| 	if count, err := db.GetEngine(ctx).Count(&organization.TeamUser{ | ||||
| 		UID:   userID, | ||||
| 		OrgID: team.OrgID, | ||||
| 		OrgID: orgID, | ||||
| 	}); err != nil { | ||||
| 		return err | ||||
| 	} else if count == 0 { | ||||
| 		return removeOrgUser(ctx, team.OrgID, userID) | ||||
| 		return removeOrgUser(ctx, orgID, userID) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user