Skip to content

Commit

Permalink
Move POST /{username}/action/{action} to simply POST /{username} (#18045
Browse files Browse the repository at this point in the history
) (#18046)

Backport #18045

The current code unfortunately requires that `action` be a reserved
repository name as it prevents posts to change the settings for
action repositories. However, we can simply change action handler
to work on POST /{username} instead.

Fix #18037

Signed-off-by: Andrew Thornton <art27@cantab.net>
  • Loading branch information
zeripath authored Dec 20, 2021
1 parent 76e1c13 commit a818a48
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 7 deletions.
4 changes: 2 additions & 2 deletions routers/web/user/profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -321,15 +321,15 @@ func Action(ctx *context.Context) {
}

var err error
switch ctx.Params(":action") {
switch ctx.Query("action") {
case "follow":
err = models.FollowUser(ctx.User.ID, u.ID)
case "unfollow":
err = models.UnfollowUser(ctx.User.ID, u.ID)
}

if err != nil {
ctx.ServerError(fmt.Sprintf("Action (%s)", ctx.Params(":action")), err)
ctx.ServerError(fmt.Sprintf("Action (%s)", ctx.Query("action")), err)
return
}

Expand Down
4 changes: 1 addition & 3 deletions routers/web/web.go
Original file line number Diff line number Diff line change
Expand Up @@ -461,9 +461,7 @@ func RegisterRoutes(m *web.Route) {
m.Get("/attachments/{uuid}", repo.GetAttachment)
}, ignSignIn)

m.Group("/{username}", func() {
m.Post("/action/{action}", user.Action)
}, reqSignIn)
m.Post("/{username}", reqSignIn, user.Action)

if !setting.IsProd() {
m.Get("/template/*", dev.TemplatePreview)
Expand Down
4 changes: 2 additions & 2 deletions templates/user/profile.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@
{{if and .IsSigned (ne .SignedUserName .Owner.Name)}}
<li class="follow">
{{if .SignedUser.IsFollowing .Owner.ID}}
<form method="post" action="{{.Link}}/action/unfollow?redirect_to={{$.Link}}">
<form method="post" action="{{.Link}}?action=unfollow&redirect_to={{$.Link}}">
{{$.CsrfTokenHtml}}
<button type="submit" class="ui basic red button">{{svg "octicon-person"}} {{.i18n.Tr "user.unfollow"}}</button>
</form>
{{else}}
<form method="post" action="{{.Link}}/action/follow?redirect_to={{$.Link}}">
<form method="post" action="{{.Link}}?action=follow&redirect_to={{$.Link}}">
{{$.CsrfTokenHtml}}
<button type="submit" class="ui basic green button">{{svg "octicon-person"}} {{.i18n.Tr "user.follow"}}</button>
</form>
Expand Down

0 comments on commit a818a48

Please sign in to comment.