summaryrefslogtreecommitdiffstats
path: root/routers/org/teams.go
diff options
context:
space:
mode:
authorLauris BH <lauris@nix.lv>2017-07-17 05:04:43 +0300
committerLunny Xiao <xiaolunwen@gmail.com>2017-07-17 10:04:43 +0800
commitf33e6ae09ec27e898bb8f2cc44d587ea3b8e0dee (patch)
tree2c6a268356fcb5fd73ee468055869b129b14c6ed /routers/org/teams.go
parent047a67a90b455a077e8b6f6deaad6b7ec4b50810 (diff)
downloadgitea-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/org/teams.go')
-rw-r--r--routers/org/teams.go47
1 files changed, 28 insertions, 19 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 {