summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2016-03-13 17:37:44 -0400
committerUnknwon <u@gogs.io>2016-03-13 17:37:44 -0400
commitdb4da7beecd6a8f65bfa264ba18a8cb12303921f (patch)
treee70f4669159a97ee538f305fce623452191b3ddb /modules
parentb4f47a762338abe6ce3a6e3d6d0896b8a387228d (diff)
downloadgitea-db4da7beecd6a8f65bfa264ba18a8cb12303921f.tar.gz
gitea-db4da7beecd6a8f65bfa264ba18a8cb12303921f.zip
Add APIContext
Diffstat (limited to 'modules')
-rw-r--r--modules/context/api.go22
-rw-r--r--modules/context/context.go65
-rw-r--r--modules/context/org.go11
-rw-r--r--modules/context/repo.go50
4 files changed, 85 insertions, 63 deletions
diff --git a/modules/context/api.go b/modules/context/api.go
new file mode 100644
index 0000000000..0c0cce8cab
--- /dev/null
+++ b/modules/context/api.go
@@ -0,0 +1,22 @@
+// Copyright 2016 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"
+)
+
+type APIContext struct {
+ *Context
+}
+
+func APIContexter() macaron.Handler {
+ return func(c *Context) {
+ ctx := &APIContext{
+ Context: c,
+ }
+ c.Map(ctx)
+ }
+}
diff --git a/modules/context/context.go b/modules/context/context.go
index 0c1ec520c1..faff52f2c8 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -18,8 +18,6 @@ import (
"github.com/go-macaron/session"
"gopkg.in/macaron.v1"
- "github.com/gogits/git-module"
-
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
"github.com/gogits/gogs/modules/base"
@@ -27,56 +25,6 @@ import (
"github.com/gogits/gogs/modules/setting"
)
-type PullRequest struct {
- BaseRepo *models.Repository
- Allowed bool
- SameRepo bool
- HeadInfo string // [<user>:]<branch>
-}
-
-type Repository struct {
- AccessMode models.AccessMode
- IsWatching bool
- IsViewBranch bool
- IsViewTag bool
- IsViewCommit bool
- Repository *models.Repository
- Owner *models.User
- Commit *git.Commit
- Tag *git.Tag
- GitRepo *git.Repository
- BranchName string
- TagName string
- TreeName string
- CommitID string
- RepoLink string
- CloneLink models.CloneLink
- CommitsCount int64
- Mirror *models.Mirror
-
- PullRequest *PullRequest
-}
-
-// IsOwner returns true if current user is the owner of repository.
-func (r *Repository) IsOwner() bool {
- return r.AccessMode >= models.ACCESS_MODE_OWNER
-}
-
-// IsAdmin returns true if current user has admin or higher access of repository.
-func (r *Repository) IsAdmin() bool {
- return r.AccessMode >= models.ACCESS_MODE_ADMIN
-}
-
-// IsWriter returns true if current user has write or higher access of repository.
-func (r *Repository) IsWriter() bool {
- return r.AccessMode >= models.ACCESS_MODE_WRITE
-}
-
-// HasAccess returns true if the current user has at least read access for this repository
-func (r *Repository) HasAccess() bool {
- return r.AccessMode >= models.ACCESS_MODE_READ
-}
-
// Context represents context of a request.
type Context struct {
*macaron.Context
@@ -90,17 +38,7 @@ type Context struct {
IsBasicAuth bool
Repo *Repository
-
- Org struct {
- IsOwner bool
- IsMember bool
- IsTeamMember bool // Is member of team.
- IsTeamAdmin bool // In owner team or team that has admin permission level.
- Organization *models.User
- OrgLink string
-
- Team *models.Team
- }
+ Org *Organization
}
// HasError returns true if error occurs in form validation.
@@ -223,6 +161,7 @@ func Contexter() macaron.Handler {
Repo: &Repository{
PullRequest: &PullRequest{},
},
+ Org: &Organization{},
}
// Compute current URL for real-time change language.
ctx.Data["Link"] = setting.AppSubUrl + strings.TrimSuffix(ctx.Req.URL.Path, "/")
diff --git a/modules/context/org.go b/modules/context/org.go
index 0f691fcdd1..4cacdf4a18 100644
--- a/modules/context/org.go
+++ b/modules/context/org.go
@@ -13,6 +13,17 @@ import (
"github.com/gogits/gogs/modules/setting"
)
+type Organization struct {
+ IsOwner bool
+ IsMember bool
+ IsTeamMember bool // Is member of team.
+ IsTeamAdmin bool // In owner team or team that has admin permission level.
+ Organization *models.User
+ OrgLink string
+
+ Team *models.Team
+}
+
func HandleOrgAssignment(ctx *Context, args ...bool) {
var (
requireMember bool
diff --git a/modules/context/repo.go b/modules/context/repo.go
index 547ed4ed85..a330da5c3f 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -18,6 +18,56 @@ import (
"github.com/gogits/gogs/modules/setting"
)
+type PullRequest struct {
+ BaseRepo *models.Repository
+ Allowed bool
+ SameRepo bool
+ HeadInfo string // [<user>:]<branch>
+}
+
+type Repository struct {
+ AccessMode models.AccessMode
+ IsWatching bool
+ IsViewBranch bool
+ IsViewTag bool
+ IsViewCommit bool
+ Repository *models.Repository
+ Owner *models.User
+ Commit *git.Commit
+ Tag *git.Tag
+ GitRepo *git.Repository
+ BranchName string
+ TagName string
+ TreeName string
+ CommitID string
+ RepoLink string
+ CloneLink models.CloneLink
+ CommitsCount int64
+ Mirror *models.Mirror
+
+ PullRequest *PullRequest
+}
+
+// IsOwner returns true if current user is the owner of repository.
+func (r *Repository) IsOwner() bool {
+ return r.AccessMode >= models.ACCESS_MODE_OWNER
+}
+
+// IsAdmin returns true if current user has admin or higher access of repository.
+func (r *Repository) IsAdmin() bool {
+ return r.AccessMode >= models.ACCESS_MODE_ADMIN
+}
+
+// IsWriter returns true if current user has write or higher access of repository.
+func (r *Repository) IsWriter() bool {
+ return r.AccessMode >= models.ACCESS_MODE_WRITE
+}
+
+// HasAccess returns true if the current user has at least read access for this repository
+func (r *Repository) HasAccess() bool {
+ return r.AccessMode >= models.ACCESS_MODE_READ
+}
+
func RetrieveBaseRepo(ctx *Context, repo *models.Repository) {
// Non-fork repository will not return error in this method.
if err := repo.GetBaseRepo(); err != nil {