mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01:00 
			
		
		
		
	Add Visible modes function from Organisation to Users too (#16069)
You can limit or hide organisations. This pull make it also posible for users - new strings to translte - add checkbox to user profile form - add checkbox to admin user.edit form - filter explore page user search - filter api admin and public user searches - allow admins view "hidden" users - add app option DEFAULT_USER_VISIBILITY - rewrite many files to use Visibility field - check for teams intersection - fix context output - right fake 404 if not visible Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							19ac575d57
						
					
				
				
					commit
					22a0636544
				
			| @@ -455,22 +455,22 @@ func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) { | ||||
| 		Find(&orgs) | ||||
| } | ||||
|  | ||||
| // HasOrgVisible tells if the given user can see the given org | ||||
| func HasOrgVisible(org, user *User) bool { | ||||
| 	return hasOrgVisible(x, org, user) | ||||
| // HasOrgOrUserVisible tells if the given user can see the given org or user | ||||
| func HasOrgOrUserVisible(org, user *User) bool { | ||||
| 	return hasOrgOrUserVisible(x, org, user) | ||||
| } | ||||
|  | ||||
| func hasOrgVisible(e Engine, org, user *User) bool { | ||||
| func hasOrgOrUserVisible(e Engine, orgOrUser, user *User) bool { | ||||
| 	// Not SignedUser | ||||
| 	if user == nil { | ||||
| 		return org.Visibility == structs.VisibleTypePublic | ||||
| 		return orgOrUser.Visibility == structs.VisibleTypePublic | ||||
| 	} | ||||
|  | ||||
| 	if user.IsAdmin { | ||||
| 	if user.IsAdmin || orgOrUser.ID == user.ID { | ||||
| 		return true | ||||
| 	} | ||||
|  | ||||
| 	if (org.Visibility == structs.VisibleTypePrivate || user.IsRestricted) && !org.hasMemberWithUserID(e, user.ID) { | ||||
| 	if (orgOrUser.Visibility == structs.VisibleTypePrivate || user.IsRestricted) && !orgOrUser.hasMemberWithUserID(e, user.ID) { | ||||
| 		return false | ||||
| 	} | ||||
| 	return true | ||||
| @@ -483,7 +483,7 @@ func HasOrgsVisible(orgs []*User, user *User) bool { | ||||
| 	} | ||||
|  | ||||
| 	for _, org := range orgs { | ||||
| 		if HasOrgVisible(org, user) { | ||||
| 		if HasOrgOrUserVisible(org, user) { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user