wiki: finish edit

This commit is contained in:
Unknwon 2015-11-27 01:50:38 -05:00
parent 392f3ee210
commit e42fcb033d
14 changed files with 262 additions and 152 deletions

View file

@ -246,9 +246,10 @@ func (f *EditReleaseForm) Validate(ctx *macaron.Context, errs binding.Errors) bi
// \/ \/
type NewWikiForm struct {
Title string `binding:"Required"`
Content string `binding:"Required"`
Message string
OldTitle string
Title string `binding:"Required"`
Content string `binding:"Required"`
Message string
}
// FIXME: use code generation to generate this method.

File diff suppressed because one or more lines are too long

View file

@ -59,7 +59,7 @@ type Context struct {
IsSigned bool
IsBasicAuth bool
Repo RepoContext
Repo *RepoContext
Org struct {
IsOwner bool
@ -73,17 +73,22 @@ type Context struct {
}
// IsOwner returns true if current user is the owner of repository.
func (r RepoContext) IsOwner() bool {
func (r *RepoContext) IsOwner() bool {
return r.AccessMode >= models.ACCESS_MODE_OWNER
}
// IsAdmin returns true if current user has admin or higher access of repository.
func (r RepoContext) IsAdmin() bool {
func (r *RepoContext) IsAdmin() bool {
return r.AccessMode >= models.ACCESS_MODE_ADMIN
}
// IsPusher returns true if current user has write or higher access of repository.
func (r *RepoContext) IsPusher() bool {
return r.AccessMode >= models.ACCESS_MODE_WRITE
}
// Return if the current user has read access for this repository
func (r RepoContext) HasAccess() bool {
func (r *RepoContext) HasAccess() bool {
return r.AccessMode >= models.ACCESS_MODE_READ
}

View file

@ -6,7 +6,6 @@ package middleware
import (
"fmt"
"net/url"
"path"
"strings"
@ -225,6 +224,8 @@ func RetrieveBaseRepo(ctx *Context, repo *models.Repository) {
func RepoAssignment(args ...bool) macaron.Handler {
return func(ctx *Context) {
ctx.Repo = &RepoContext{}
var (
displayBare bool // To display bare page if it is a bare repo.
)
@ -335,6 +336,7 @@ func RepoAssignment(args ...bool) macaron.Handler {
ctx.Data["Owner"] = ctx.Repo.Repository.Owner
ctx.Data["IsRepositoryOwner"] = ctx.Repo.IsOwner()
ctx.Data["IsRepositoryAdmin"] = ctx.Repo.IsAdmin()
ctx.Data["IsRepositoryPusher"] = ctx.Repo.IsPusher()
ctx.Data["DisableSSH"] = setting.DisableSSH
ctx.Repo.CloneLink, err = repo.CloneLink()
@ -397,11 +399,15 @@ func RepoAssignment(args ...bool) macaron.Handler {
func RequireRepoAdmin() macaron.Handler {
return func(ctx *Context) {
if !ctx.Repo.IsAdmin() {
if !ctx.IsSigned {
ctx.SetCookie("redirect_to", "/"+url.QueryEscape(setting.AppSubUrl+ctx.Req.RequestURI), 0, setting.AppSubUrl)
ctx.Redirect(setting.AppSubUrl + "/user/login")
return
}
ctx.Handle(404, ctx.Req.RequestURI, nil)
return
}
}
}
func RequireRepoPusher() macaron.Handler {
return func(ctx *Context) {
if !ctx.Repo.IsPusher() {
ctx.Handle(404, ctx.Req.RequestURI, nil)
return
}