hide approval mod actions, better logic for user promotion/demotion mod actions
This commit is contained in:
@@ -10,6 +10,10 @@ class ModAction < ActiveRecord::Base
|
||||
q = q.where("creator_id = ?", params[:creator_id].to_i)
|
||||
end
|
||||
|
||||
if params[:all].blank?
|
||||
q = q.where("description not like ")
|
||||
end
|
||||
|
||||
q
|
||||
end
|
||||
|
||||
|
||||
@@ -246,7 +246,7 @@ class Post < ActiveRecord::Base
|
||||
self.is_deleted = false
|
||||
self.approver_id = CurrentUser.id
|
||||
save!
|
||||
ModAction.create(:description => "approved post ##{id}")
|
||||
# ModAction.create(:description => "approved post ##{id}")
|
||||
end
|
||||
|
||||
def disapproved_by?(user)
|
||||
|
||||
@@ -43,6 +43,7 @@ class User < ActiveRecord::Base
|
||||
has_many :note_versions, :foreign_key => "updater_id"
|
||||
has_many :dmails, :foreign_key => "owner_id", :order => "dmails.id desc"
|
||||
belongs_to :inviter, :class_name => "User"
|
||||
after_update :create_mod_action
|
||||
|
||||
module BanMethods
|
||||
def validate_ip_addr_is_not_banned
|
||||
@@ -61,7 +62,6 @@ class User < ActiveRecord::Base
|
||||
module InvitationMethods
|
||||
def invite!(level)
|
||||
if level.to_i <= Levels::CONTRIBUTOR
|
||||
ModAction.create(:description => "invited user ##{id} (#{name})")
|
||||
self.level = level
|
||||
self.inviter_id = CurrentUser.id
|
||||
save
|
||||
@@ -254,8 +254,8 @@ class User < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def level_string
|
||||
case level
|
||||
def level_string(value = nil)
|
||||
case (value || level)
|
||||
when Levels::BLOCKED
|
||||
"Banned"
|
||||
|
||||
@@ -324,6 +324,12 @@ class User < ActiveRecord::Base
|
||||
def is_admin?
|
||||
level >= Levels::ADMIN
|
||||
end
|
||||
|
||||
def create_mod_action
|
||||
if level_changed?
|
||||
ModAction.create(:description => "level changed #{level_string(level_was)} -> #{level_string} by #{CurrentUser.name}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module EmailMethods
|
||||
|
||||
@@ -12,6 +12,10 @@ every 1.day do
|
||||
runner "Upload.delete_all(['created_at < ?', 1.day.ago])"
|
||||
end
|
||||
|
||||
every 1.day do
|
||||
runner "ModAction.delete_all(['created_at < ?', 3.days.ago])"
|
||||
end
|
||||
|
||||
if environment == "production"
|
||||
every 1.hour do
|
||||
runner "AmazonBackup.execute"
|
||||
|
||||
@@ -30,6 +30,13 @@ class UserTest < ActiveSupport::TestCase
|
||||
@user.reload
|
||||
assert_equal(User::Levels::MEMBER, @user.level)
|
||||
end
|
||||
|
||||
should "create a mod action" do
|
||||
assert_difference("ModAction.count") do
|
||||
@user.invite!(User::Levels::CONTRIBUTOR)
|
||||
end
|
||||
assert_equal("level changed Member -> Contributor by #{CurrentUser.name}", ModAction.first.description)
|
||||
end
|
||||
end
|
||||
|
||||
context "who has negeative feedback and is trying to change their name" do
|
||||
|
||||
Reference in New Issue
Block a user