Add units to team (#947)

* add units to team

* fix lint

* finish team setting backend

* finished permission controll on routes

* fix import blank line

* add unit check on ssh/http pull and push and fix test failed

* fix fixtures data

* remove unused code
This commit is contained in:
Lunny Xiao 2017-05-18 22:54:24 +08:00 committed by GitHub
parent 5db5e16ab6
commit fd6034aaf2
18 changed files with 366 additions and 113 deletions

View file

@ -5,6 +5,8 @@
package auth
import (
"code.gitea.io/gitea/models"
"github.com/go-macaron/binding"
"gopkg.in/macaron.v1"
)
@ -53,6 +55,7 @@ type CreateTeamForm struct {
TeamName string `binding:"Required;AlphaDashDot;MaxSize(30)"`
Description string `binding:"MaxSize(255)"`
Permission string
Units []models.UnitType
}
// Validate validates the fields

View file

@ -493,6 +493,37 @@ func RequireRepoWriter() macaron.Handler {
}
}
// LoadRepoUnits loads repsitory's units, it should be called after repository and user loaded
func LoadRepoUnits() macaron.Handler {
return func(ctx *Context) {
var userID int64
if ctx.User != nil {
userID = ctx.User.ID
}
err := ctx.Repo.Repository.LoadUnitsByUserID(userID)
if err != nil {
ctx.Handle(500, "LoadUnitsByUserID", err)
return
}
}
}
// CheckUnit will check whether
func CheckUnit(unitType models.UnitType) macaron.Handler {
return func(ctx *Context) {
var find bool
for _, unit := range ctx.Repo.Repository.Units {
if unit.Type == unitType {
find = true
break
}
}
if !find {
ctx.Handle(404, "CheckUnit", fmt.Errorf("%s: %v", ctx.Tr("units.error.unit_not_allowed"), unitType))
}
}
}
// GitHookService checks if repository Git hooks service has been enabled.
func GitHookService() macaron.Handler {
return func(ctx *Context) {