diff options
author | Lauris BH <lauris@nix.lv> | 2017-07-17 05:04:43 +0300 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-07-17 10:04:43 +0800 |
commit | f33e6ae09ec27e898bb8f2cc44d587ea3b8e0dee (patch) | |
tree | 2c6a268356fcb5fd73ee468055869b129b14c6ed /routers | |
parent | 047a67a90b455a077e8b6f6deaad6b7ec4b50810 (diff) | |
download | gitea-f33e6ae09ec27e898bb8f2cc44d587ea3b8e0dee.tar.gz gitea-f33e6ae09ec27e898bb8f2cc44d587ea3b8e0dee.zip |
Remove unit types commits and settings (#2161)
* Remove unit types commits and settings
* Can not limit units in administrator teams
* Limit changing units only to teams with read and write access mode
* Small code optimization
Diffstat (limited to 'routers')
-rw-r--r-- | routers/org/teams.go | 47 | ||||
-rw-r--r-- | routers/routes/routes.go | 4 |
2 files changed, 30 insertions, 21 deletions
diff --git a/routers/org/teams.go b/routers/org/teams.go index 10c86bd5cf..1ac4bff2e8 100644 --- a/routers/org/teams.go +++ b/routers/org/teams.go @@ -171,14 +171,18 @@ func NewTeamPost(ctx *context.Context, form auth.CreateTeamForm) { ctx.Data["Title"] = ctx.Org.Organization.FullName ctx.Data["PageIsOrgTeams"] = true ctx.Data["PageIsOrgTeamsNew"] = true + ctx.Data["Units"] = models.Units t := &models.Team{ OrgID: ctx.Org.Organization.ID, Name: form.TeamName, Description: form.Description, Authorize: models.ParseAccessMode(form.Permission), - UnitTypes: form.Units, } + if t.Authorize < models.AccessModeAdmin { + t.UnitTypes = form.Units + } + ctx.Data["Team"] = t if ctx.HasError() { @@ -186,6 +190,11 @@ func NewTeamPost(ctx *context.Context, form auth.CreateTeamForm) { return } + if t.Authorize < models.AccessModeAdmin && len(form.Units) == 0 { + ctx.RenderWithErr(ctx.Tr("form.team_no_units_error"), tplTeamNew, &form) + return + } + if err := models.NewTeam(t); err != nil { ctx.Data["Err_TeamName"] = true switch { @@ -238,27 +247,12 @@ func EditTeamPost(ctx *context.Context, form auth.CreateTeamForm) { ctx.Data["Title"] = ctx.Org.Organization.FullName ctx.Data["PageIsOrgTeams"] = true ctx.Data["Team"] = t - - if ctx.HasError() { - ctx.HTML(200, tplTeamNew) - return - } + ctx.Data["Units"] = models.Units isAuthChanged := false if !t.IsOwnerTeam() { // Validate permission level. - var auth models.AccessMode - switch form.Permission { - case "read": - auth = models.AccessModeRead - case "write": - auth = models.AccessModeWrite - case "admin": - auth = models.AccessModeAdmin - default: - ctx.Error(401) - return - } + auth := models.ParseAccessMode(form.Permission) t.Name = form.TeamName if t.Authorize != auth { @@ -267,7 +261,22 @@ func EditTeamPost(ctx *context.Context, form auth.CreateTeamForm) { } } t.Description = form.Description - t.UnitTypes = form.Units + if t.Authorize < models.AccessModeAdmin { + t.UnitTypes = form.Units + } else { + t.UnitTypes = nil + } + + if ctx.HasError() { + ctx.HTML(200, tplTeamNew) + return + } + + if t.Authorize < models.AccessModeAdmin && len(form.Units) == 0 { + ctx.RenderWithErr(ctx.Tr("form.team_no_units_error"), tplTeamNew, &form) + return + } + if err := models.UpdateTeam(t, isAuthChanged); err != nil { ctx.Data["Err_TeamName"] = true switch { diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 169f95e289..d085a0910e 100644 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -450,8 +450,8 @@ func RegisterRoutes(m *macaron.Macaron) { }, func(ctx *context.Context) { ctx.Data["PageIsSettings"] = true - }, context.UnitTypes(), context.LoadRepoUnits(), context.CheckUnit(models.UnitTypeSettings)) - }, reqSignIn, context.RepoAssignment(), reqRepoAdmin, context.RepoRef()) + }) + }, reqSignIn, context.RepoAssignment(), reqRepoAdmin, context.UnitTypes(), context.LoadRepoUnits(), context.RepoRef()) m.Get("/:username/:reponame/action/:action", reqSignIn, context.RepoAssignment(), repo.Action) |