瀏覽代碼

Merge branch 'master' of https://gitote.in/gitote/gitote

Yoginth 7 年之前
父節點
當前提交
df30e03d59
共有 1 個文件被更改,包括 26 次插入0 次删除
  1. 26 0
      pkg/context/user.go

+ 26 - 0
pkg/context/user.go

@@ -0,0 +1,26 @@
+package context
+
+import (
+	"gopkg.in/macaron.v1"
+
+	"gitote/gitote/models"
+	"gitote/gitote/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})
+	}
+}