mirror of
https://github.com/SrIzan10/hc-harbor.git
synced 2026-05-01 10:45:21 +00:00
first pass
This commit is contained in:
41
db/migrate/20250705_migrate_admin_levels_on_users.rb
Normal file
41
db/migrate/20250705_migrate_admin_levels_on_users.rb
Normal file
@@ -0,0 +1,41 @@
|
||||
class MigrateAdminLevelsOnUsers < ActiveRecord::Migration[7.0]
|
||||
def up
|
||||
add_column :users, :admin_level, :integer, default: 0, null: false
|
||||
|
||||
User.reset_column_information
|
||||
User.find_each do |user|
|
||||
if user.is_superadmin
|
||||
user.update_column(:admin_level, 1)
|
||||
elsif user.is_admin
|
||||
user.update_column(:admin_level, 2)
|
||||
else
|
||||
user.update_column(:admin_level, 0)
|
||||
end
|
||||
end
|
||||
|
||||
remove_column :users, :is_admin, :boolean
|
||||
remove_column :users, :is_superadmin, :boolean
|
||||
end
|
||||
|
||||
def down
|
||||
add_column :users, :is_admin, :boolean, default: false, null: false
|
||||
add_column :users, :is_superadmin, :boolean, default: false, null: false
|
||||
|
||||
User.reset_column_information
|
||||
User.find_each do |user|
|
||||
case user.admin_level
|
||||
when 1
|
||||
user.update_column(:is_superadmin, true)
|
||||
user.update_column(:is_admin, true)
|
||||
when 2
|
||||
user.update_column(:is_admin, true)
|
||||
user.update_column(:is_superadmin, false)
|
||||
else
|
||||
user.update_column(:is_admin, false)
|
||||
user.update_column(:is_superadmin, false)
|
||||
end
|
||||
end
|
||||
|
||||
remove_column :users, :admin_level, :integer
|
||||
end
|
||||
end
|
||||
3
db/schema.rb
generated
3
db/schema.rb
generated
@@ -519,7 +519,6 @@ ActiveRecord::Schema[8.0].define(version: 2025_07_01_142553) do
|
||||
t.datetime "updated_at", null: false
|
||||
t.string "username"
|
||||
t.string "slack_avatar_url"
|
||||
t.boolean "is_admin", default: false, null: false
|
||||
t.boolean "uses_slack_status", default: false, null: false
|
||||
t.string "slack_scopes", default: [], array: true
|
||||
t.text "slack_access_token"
|
||||
@@ -536,7 +535,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_07_01_142553) do
|
||||
t.string "mailing_address_otc"
|
||||
t.boolean "allow_public_stats_lookup", default: true, null: false
|
||||
t.boolean "default_timezone_leaderboard", default: true, null: false
|
||||
t.boolean "is_superadmin", default: false, null: false
|
||||
t.integer "admin_level", default: 0, null: false
|
||||
t.index ["github_uid", "github_access_token"], name: "index_users_on_github_uid_and_access_token"
|
||||
t.index ["github_uid"], name: "index_users_on_github_uid"
|
||||
t.index ["slack_uid"], name: "index_users_on_slack_uid", unique: true
|
||||
|
||||
Reference in New Issue
Block a user