summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2017-01-31 22:44:31 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2017-03-13 13:28:26 +0100
commitdbf414df33160b8ca15650c56bab9e9b3f2d0ccf (patch)
tree00d1d287fe9a43d1ea3120c93953afdc61a61068
parent32da7602686f2b8161175d82b121deb9e01b2db5 (diff)
downloadgitlab-ce-refresh-permissions-recent-users.tar.gz
Trigger refreshing of permissions in a migrationrefresh-permissions-recent-users
This migration resets `users.authorized_projects_populated` (in batches) so that active users' permissions are refreshed on the next request. This ensures that their permissions are properly stored.
-rw-r--r--changelogs/unreleased/refresh-permissions-recent-users.yml4
-rw-r--r--db/post_migrate/20170131214021_reset_users_authorized_projects_populated.rb19
2 files changed, 23 insertions, 0 deletions
diff --git a/changelogs/unreleased/refresh-permissions-recent-users.yml b/changelogs/unreleased/refresh-permissions-recent-users.yml
new file mode 100644
index 00000000000..4d08be6ed5c
--- /dev/null
+++ b/changelogs/unreleased/refresh-permissions-recent-users.yml
@@ -0,0 +1,4 @@
+---
+title: Reset users.authorized_projects_populated to automatically refresh user permissions
+merge_request:
+author:
diff --git a/db/post_migrate/20170131214021_reset_users_authorized_projects_populated.rb b/db/post_migrate/20170131214021_reset_users_authorized_projects_populated.rb
new file mode 100644
index 00000000000..b518038e93a
--- /dev/null
+++ b/db/post_migrate/20170131214021_reset_users_authorized_projects_populated.rb
@@ -0,0 +1,19 @@
+# See http://doc.gitlab.com/ce/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class ResetUsersAuthorizedProjectsPopulated < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ # This ensures we don't lock all users for the duration of the migration.
+ update_column_in_batches(:users, :authorized_projects_populated, nil)
+ end
+
+ def down
+ # noop
+ end
+end