summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorExMex <great.mafia2010@gmail.com>2016-02-07 10:20:58 +0100
committerExMex <great.mafia2010@gmail.com>2016-02-07 10:20:58 +0100
commit2cfe6f8c60033989fa141b415080fc4416f03c5b (patch)
treebbac3cd975435202015e87631c60b4bb78047925
parent894946c319aa0e961388227c7cff11b1392edfc7 (diff)
downloadgitea-2cfe6f8c60033989fa141b415080fc4416f03c5b.tar.gz
gitea-2cfe6f8c60033989fa141b415080fc4416f03c5b.zip
Admins and user itself sees private org relations on profile
-rw-r--r--models/org.go15
-rw-r--r--routers/user/profile.go5
-rw-r--r--templates/user/profile.tmpl6
3 files changed, 17 insertions, 9 deletions
diff --git a/models/org.go b/models/org.go
index 020284d8d2..8b773b2d04 100644
--- a/models/org.go
+++ b/models/org.go
@@ -254,24 +254,27 @@ func IsPublicMembership(orgId, uid int64) bool {
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)
- 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)
}
// GetPublicOrgsByUserID returns a list of organizations that the given user ID
// has joined publicly.
-func GetPublicOrgsByUserID(userID int64) ([]*User, error) {
+func GetOrgsByUserID(userID int64) ([]*User, error) {
sess := x.NewSession()
- return getPublicOrgsByUserID(sess, userID)
+ return getOrgsByUserID(sess, userID)
}
// GetPublicOrgsByUserID returns a list of organizations that the given user ID
// 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()
- 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) {
diff --git a/routers/user/profile.go b/routers/user/profile.go
index 0a876610ed..c18a104be9 100644
--- a/routers/user/profile.go
+++ b/routers/user/profile.go
@@ -75,11 +75,12 @@ func Profile(ctx *middleware.Context) {
ctx.Data["PageIsUserProfile"] = true
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 {
- ctx.Handle(500, "GetPublicOrgsByUserIDDesc", err)
+ ctx.Handle(500, "GetOrgsByUserIDDesc", err)
return
}
+
ctx.Data["Orgs"] = orgs
tab := ctx.Query("tab")
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index c037b0ad13..07f5c1b0e5 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -60,7 +60,11 @@
{{if .Orgs}}
<li>
{{range .Orgs}}
- <a href="{{.HomeLink}}"><img class="ui mini image poping up" src="{{.AvatarLink}}" data-content="{{.Name}}" data-position="top center" data-variation="tiny inverted"></a>
+ {{if $.Owner.IsPublicMember .Id}}
+ <a href="{{.HomeLink}}"><img class="ui mini image poping up" src="{{.AvatarLink}}" data-content="{{.Name}}" data-position="top center" data-variation="tiny inverted"></a>
+ {{else}}
+ <a href="{{.HomeLink}}"><img class="ui mini image poping up" src="{{.AvatarLink}}" data-content="{{.Name}} (Private)" data-position="top center" data-variation="tiny inverted"></a>
+ {{end}}
{{end}}
</li>
{{end}}