diff options
author | Unknwon <u@gogs.io> | 2018-12-06 22:58:02 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2018-12-06 22:58:02 -0500 |
commit | f545faa06d553750b9f4018336e810530389f88c (patch) | |
tree | a906d0d46d9f07a093b7eb8faf01e2648b2540b9 /pkg/context/user.go | |
parent | 458aadbb10a50948bbc237c5c2ab62d8710d2b4a (diff) |
templates: make state changing routes to POST method (#5541)
- pkg/context: add ParamsUser to unify the injection process
Diffstat (limited to 'pkg/context/user.go')
-rw-r--r-- | pkg/context/user.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/pkg/context/user.go b/pkg/context/user.go new file mode 100644 index 00000000..a2297da8 --- /dev/null +++ b/pkg/context/user.go @@ -0,0 +1,30 @@ +// Copyright 2018 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package context + +import ( + "gopkg.in/macaron.v1" + + "github.com/gogs/gogs/models" + "github.com/gogs/gogs/models/errors" +) + +// ParamsUser is the wrapper type of the target user defined by URL parameter, namely ':username'. +type ParamsUser struct { + *models.User +} + +// InjectParamsUser returns a handler that retrieves target user based on URL parameter ':username', +// and injects it as *ParamsUser. +func InjectParamsUser() macaron.Handler { + return func(c *Context) { + user, err := models.GetUserByName(c.Params(":username")) + if err != nil { + c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err) + return + } + c.Map(&ParamsUser{user}) + } +} |