aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryp05327 <576951401@qq.com>2024-02-17 14:13:37 +0900
committerGitHub <noreply@github.com>2024-02-17 13:13:37 +0800
commit68227996a7a84a240b36c304d04c5c8d82948df8 (patch)
tree94a59fc2d0cc3c043742929bd272add1f5eb90fc
parente936d2b338859c527482d1569c92d1f8f97f4d51 (diff)
downloadgitea-68227996a7a84a240b36c304d04c5c8d82948df8.tar.gz
gitea-68227996a7a84a240b36c304d04c5c8d82948df8.zip
Fix broken following organization (#29005)
- following organization is broken from #28908 - add login check for the follow button in organization profile page
-rw-r--r--routers/web/user/profile.go14
-rw-r--r--templates/org/home.tmpl16
2 files changed, 21 insertions, 9 deletions
diff --git a/routers/web/user/profile.go b/routers/web/user/profile.go
index 73ab93caed..e7f133e981 100644
--- a/routers/web/user/profile.go
+++ b/routers/web/user/profile.go
@@ -29,6 +29,7 @@ import (
const (
tplProfileBigAvatar base.TplName = "shared/user/profile_big_avatar"
+ tplFollowUnfollow base.TplName = "shared/user/follow_unfollow"
)
// OwnerProfile render profile page for a user or a organization (aka, repo owner)
@@ -318,6 +319,15 @@ func Action(ctx *context.Context) {
return
}
- shared_user.PrepareContextForProfileBigAvatar(ctx)
- ctx.HTML(http.StatusOK, tplProfileBigAvatar)
+ if ctx.ContextUser.IsIndividual() {
+ shared_user.PrepareContextForProfileBigAvatar(ctx)
+ ctx.HTML(http.StatusOK, tplProfileBigAvatar)
+ return
+ } else if ctx.ContextUser.IsOrganization() {
+ ctx.Data["IsFollowing"] = ctx.Doer != nil && user_model.IsFollowing(ctx, ctx.Doer.ID, ctx.ContextUser.ID)
+ ctx.HTML(http.StatusOK, tplFollowUnfollow)
+ return
+ }
+ log.Error("Failed to apply action %q: unsupport context user type: %s", ctx.FormString("action"), ctx.ContextUser.Type)
+ ctx.Error(http.StatusBadRequest, fmt.Sprintf("Action %q failed", ctx.FormString("action")))
}
diff --git a/templates/org/home.tmpl b/templates/org/home.tmpl
index fc65d4691c..322be3271d 100644
--- a/templates/org/home.tmpl
+++ b/templates/org/home.tmpl
@@ -25,13 +25,15 @@
{{svg "octicon-rss" 24}}
</a>
{{end}}
- <button class="link-action ui basic button gt-mr-0" data-url="{{.Org.HomeLink}}?action={{if $.IsFollowing}}unfollow{{else}}follow{{end}}">
- {{if $.IsFollowing}}
- {{ctx.Locale.Tr "user.unfollow"}}
- {{else}}
- {{ctx.Locale.Tr "user.follow"}}
- {{end}}
- </button>
+ {{if .IsSigned}}
+ <button class="ui basic button gt-mr-0" hx-post="{{.Org.HomeLink}}?action={{if $.IsFollowing}}unfollow{{else}}follow{{end}}">
+ {{if $.IsFollowing}}
+ {{ctx.Locale.Tr "user.unfollow"}}
+ {{else}}
+ {{ctx.Locale.Tr "user.follow"}}
+ {{end}}
+ </button>
+ {{end}}
</div>
</div>