discourse/db/migrate/20190103185626_create_reviewable_users.rb
Robin Ward c1ea63bdc1 FIX: Reviewables should not be created for users until they are active
Conversely, if a user is deactivated the reviewable should automatically
be rejected.

Before this fix, if a user was not active they'd still show in the
review queue but without an "Approve" button which was confusing.
2019-04-03 15:25:00 -04:00

37 lines
847 B
Ruby

class CreateReviewableUsers < ActiveRecord::Migration[5.2]
def up
# Create reviewables for approved users
if DB.query_single("SELECT 1 FROM site_settings WHERE name = 'must_approve_users' AND value = 't'").first
execute(<<~SQL)
INSERT INTO reviewables (
type,
status,
created_by_id,
reviewable_by_moderator,
target_type,
target_id,
created_at,
updated_at
)
SELECT 'ReviewableUser',
0,
#{Discourse::SYSTEM_USER_ID},
true,
'User',
id,
created_at,
created_at
FROM users
WHERE active AND approved = false
SQL
end
end
def down
execute(<<~SQL)
DELETE FROM reviewables
WHERE type = 'ReviewableUser'
SQL
end
end