mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Merge pull request #2578 from exmex/develop
Admins and user itself sees private org relations on profile
This commit is contained in:
		@@ -254,24 +254,27 @@ func IsPublicMembership(orgId, uid int64) bool {
 | 
				
			|||||||
	return has
 | 
						return has
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func getPublicOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) {
 | 
					func getOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) {
 | 
				
			||||||
	orgs := make([]*User, 0, 10)
 | 
						orgs := make([]*User, 0, 10)
 | 
				
			||||||
	return orgs, sess.Where("`org_user`.uid=?", userID).And("`org_user`.is_public=?", true).
 | 
						return orgs, sess.Where("`org_user`.uid=?", userID).
 | 
				
			||||||
		Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").Find(&orgs)
 | 
							Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").Find(&orgs)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetPublicOrgsByUserID returns a list of organizations that the given user ID
 | 
					// GetPublicOrgsByUserID returns a list of organizations that the given user ID
 | 
				
			||||||
// has joined publicly.
 | 
					// has joined publicly.
 | 
				
			||||||
func GetPublicOrgsByUserID(userID int64) ([]*User, error) {
 | 
					func GetOrgsByUserID(userID int64) ([]*User, error) {
 | 
				
			||||||
	sess := x.NewSession()
 | 
						sess := x.NewSession()
 | 
				
			||||||
	return getPublicOrgsByUserID(sess, userID)
 | 
						return getOrgsByUserID(sess, userID)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetPublicOrgsByUserID returns a list of organizations that the given user ID
 | 
					// GetPublicOrgsByUserID returns a list of organizations that the given user ID
 | 
				
			||||||
// has joined publicly, ordered descending by the given condition.
 | 
					// has joined publicly, ordered descending by the given condition.
 | 
				
			||||||
func GetPublicOrgsByUserIDDesc(userID int64, desc string) ([]*User, error) {
 | 
					func GetOrgsByUserIDDesc(userID int64, desc string, all bool) ([]*User, error) {
 | 
				
			||||||
	sess := x.NewSession()
 | 
						sess := x.NewSession()
 | 
				
			||||||
	return getPublicOrgsByUserID(sess.Desc(desc), userID)
 | 
						if !all {
 | 
				
			||||||
 | 
							sess.And("`org_user`.is_public=?", true)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return getOrgsByUserID(sess.Desc(desc), userID)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) {
 | 
					func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,11 +75,12 @@ func Profile(ctx *middleware.Context) {
 | 
				
			|||||||
	ctx.Data["PageIsUserProfile"] = true
 | 
						ctx.Data["PageIsUserProfile"] = true
 | 
				
			||||||
	ctx.Data["Owner"] = u
 | 
						ctx.Data["Owner"] = u
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	orgs, err := models.GetPublicOrgsByUserIDDesc(u.Id, "updated")
 | 
						orgs, err := models.GetOrgsByUserIDDesc(u.Id, "updated", ctx.User.IsAdmin || ctx.User.Id == u.Id)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		ctx.Handle(500, "GetPublicOrgsByUserIDDesc", err)
 | 
							ctx.Handle(500, "GetOrgsByUserIDDesc", err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.Data["Orgs"] = orgs
 | 
						ctx.Data["Orgs"] = orgs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tab := ctx.Query("tab")
 | 
						tab := ctx.Query("tab")
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user