From ca9169fbe9be5aab47a5feabb4df8cbbe1fb4d9d Mon Sep 17 00:00:00 2001
From: Ethan Koenig <etk39@cornell.edu>
Date: Mon, 5 Jun 2017 06:40:25 -0400
Subject: [PATCH] Migration to fix existing owner team units (#1873)

---
 models/migrations/migrations.go |  2 ++
 models/migrations/v34.go        | 25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+)
 create mode 100644 models/migrations/v34.go

diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index 5822533ee2..2a54c497c1 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -116,6 +116,8 @@ var migrations = []Migration{
 	NewMigration("add units for team", addUnitsToRepoTeam),
 	// v33 -> v34
 	NewMigration("remove columns from action", removeActionColumns),
+	// v34 -> v35
+	NewMigration("give all units to owner teams", giveAllUnitsToOwnerTeams),
 }
 
 // Migrate database to current version
diff --git a/models/migrations/v34.go b/models/migrations/v34.go
new file mode 100644
index 0000000000..258da41c04
--- /dev/null
+++ b/models/migrations/v34.go
@@ -0,0 +1,25 @@
+// Copyright 2017 Gitea. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package migrations
+
+import (
+	"github.com/go-xorm/xorm"
+)
+
+// Team see models/team.go
+type Team struct {
+	UnitTypes []int `xorm:"json"`
+}
+
+const ownerAccessMode = 4
+
+var allUnitTypes = []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
+
+func giveAllUnitsToOwnerTeams(x *xorm.Engine) error {
+	_, err := x.Cols("unit_types").
+		Where("authorize = ?", ownerAccessMode).
+		Update(&Team{UnitTypes: allUnitTypes})
+	return err
+}