Browse Source

Add APIContext

Unknwon 6 years ago
parent
commit
db4da7beec
8 changed files with 93 additions and 63 deletions
  1. 1 0
      README.md
  2. 1 0
      README_ZH.md
  3. 22 0
      modules/context/api.go
  4. 2 63
      modules/context/context.go
  5. 11 0
      modules/context/org.go
  6. 50 0
      modules/context/repo.go
  7. 3 0
      public/css/gogs.css
  8. 3 0
      public/less/_user.less

+ 1 - 0
README.md

@@ -105,6 +105,7 @@ There are 5 ways to install Gogs:
 - [Puppet](https://forge.puppetlabs.com/Siteminds/gogs) (IT)
 - [Kanboard](http://kanboard.net/plugin/gogs-webhook) (Project Management)
 - [BearyChat](https://bearychat.com/) (Team Communication)
+- [HiWork](http://www.hiwork.cc/) (Team Communication)
 
 ### Product Support
 

+ 1 - 0
README_ZH.md

@@ -77,6 +77,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
 - [Puppet](https://forge.puppetlabs.com/Siteminds/gogs)(IT)
 - [Kanboard](http://kanboard.net/plugin/gogs-webhook)(项目管理)
 - [BearyChat](https://bearychat.com/)(团队交流)
+- [HiWork](http://www.hiwork.cc/)(团队交流)
 
 ### 产品支持
 

+ 22 - 0
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)
+	}
+}

+ 2 - 63
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, "/")

+ 11 - 0
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

+ 50 - 0
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 {

+ 3 - 0
public/css/gogs.css

@@ -2376,6 +2376,9 @@ footer .container .links > *:first-child {
 .user.settings .email.list .item:not(:first-child) .button {
   margin-top: -10px;
 }
+.user.profile .ui.card #profile-avatar {
+  height: 290px;
+}
 .user.profile .ui.card .username {
   display: block;
 }

+ 3 - 0
public/less/_user.less

@@ -23,6 +23,9 @@
 
 	&.profile {
 		.ui.card {
+			#profile-avatar {
+				height: 290px;
+			}
 			.username {
 				display: block;
 			}