From f545faa06d553750b9f4018336e810530389f88c Mon Sep 17 00:00:00 2001 From: Unknwon Date: Thu, 6 Dec 2018 22:58:02 -0500 Subject: templates: make state changing routes to POST method (#5541) - pkg/context: add ParamsUser to unify the injection process --- pkg/context/user.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pkg/context/user.go (limited to 'pkg') 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}) + } +} -- cgit v1.2.3