summaryrefslogtreecommitdiffstats
path: root/models/migrations
diff options
context:
space:
mode:
authorDavid Schneiderbauer <daviian@users.noreply.github.com>2017-09-16 02:18:25 +0200
committerLunny Xiao <xiaolunwen@gmail.com>2017-09-16 08:18:25 +0800
commitd766d0c4e064bf7f66098123f39d15c2dc67e415 (patch)
tree274eebecadd724502dd5c82e95f2f6f4cc4d6d34 /models/migrations
parentb496e3e1cc70829e5a6f78f3dff28277993f8406 (diff)
downloadgitea-d766d0c4e064bf7f66098123f39d15c2dc67e415.tar.gz
gitea-d766d0c4e064bf7f66098123f39d15c2dc67e415.zip
Prevent sending emails and notifications to inactive users (#2384)
* Filter inactive users before sending emails or creating browser notifications Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * fix formatting issues Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * included requested changes Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * optimized database queries * rebasing new master and add tablenames for clarification in xorm queries * remove escaped quotationmarks using backticks Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com>
Diffstat (limited to 'models/migrations')
-rw-r--r--models/migrations/migrations.go2
-rw-r--r--models/migrations/v41.go42
2 files changed, 44 insertions, 0 deletions
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index e7542954d7..c36f6fabb7 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -130,6 +130,8 @@ var migrations = []Migration{
NewMigration("adds time tracking and stopwatches", addTimetracking),
// v40 -> v41
NewMigration("migrate protected branch struct", migrateProtectedBranchStruct),
+ // v41 -> v42
+ NewMigration("add default value to user prohibit_login", addDefaultValueToUserProhibitLogin),
}
// Migrate database to current version
diff --git a/models/migrations/v41.go b/models/migrations/v41.go
new file mode 100644
index 0000000000..89763c3afe
--- /dev/null
+++ b/models/migrations/v41.go
@@ -0,0 +1,42 @@
+// Copyright 2017 The Gitea Authors. 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 (
+ "fmt"
+
+ "code.gitea.io/gitea/models"
+
+ "github.com/go-xorm/xorm"
+)
+
+func addDefaultValueToUserProhibitLogin(x *xorm.Engine) (err error) {
+ user := &models.User{
+ ProhibitLogin: false,
+ }
+
+ if _, err := x.Where("`prohibit_login` IS NULL").Cols("prohibit_login").Update(user); err != nil {
+ return err
+ }
+
+ dialect := x.Dialect().DriverName()
+
+ switch dialect {
+ case "mysql":
+ _, err = x.Exec("ALTER TABLE user MODIFY `prohibit_login` tinyint(1) NOT NULL DEFAULT 0")
+ case "postgres":
+ _, err = x.Exec("ALTER TABLE \"user\" ALTER COLUMN `prohibit_login` SET NOT NULL, ALTER COLUMN `prohibit_login` SET DEFAULT false")
+ case "mssql":
+ // xorm already set DEFAULT 0 for data type BIT in mssql
+ _, err = x.Exec(`ALTER TABLE [user] ALTER COLUMN "prohibit_login" BIT NOT NULL`)
+ case "sqlite3":
+ }
+
+ if err != nil {
+ return fmt.Errorf("Error changing user prohibit_login column definition: %v", err)
+ }
+
+ return err
+}