Prechádzať zdrojové kódy

Admins and user itself sees private org relations on profile

ExMex 9 rokov pred
rodič
commit
2cfe6f8c60
3 zmenil súbory, kde vykonal 17 pridanie a 9 odobranie
  1. 9 6
      models/org.go
  2. 3 2
      routers/user/profile.go
  3. 5 1
      templates/user/profile.tmpl

+ 9 - 6
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) {

+ 3 - 2
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")

+ 5 - 1
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}}