Gab Social. All are welcome.
This commit is contained in:
53
app/policies/user_policy.rb
Normal file
53
app/policies/user_policy.rb
Normal file
@@ -0,0 +1,53 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class UserPolicy < ApplicationPolicy
|
||||
def reset_password?
|
||||
staff? && !record.staff?
|
||||
end
|
||||
|
||||
def change_email?
|
||||
staff? && !record.staff?
|
||||
end
|
||||
|
||||
def disable_2fa?
|
||||
admin? && !record.staff?
|
||||
end
|
||||
|
||||
def confirm?
|
||||
staff? && !record.confirmed?
|
||||
end
|
||||
|
||||
def enable?
|
||||
staff?
|
||||
end
|
||||
|
||||
def approve?
|
||||
staff? && !record.approved?
|
||||
end
|
||||
|
||||
def reject?
|
||||
staff? && !record.approved?
|
||||
end
|
||||
|
||||
def disable?
|
||||
staff? && !record.admin?
|
||||
end
|
||||
|
||||
def promote?
|
||||
admin? && promoteable?
|
||||
end
|
||||
|
||||
def demote?
|
||||
admin? && !record.admin? && demoteable?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def promoteable?
|
||||
record.approved? && (!record.staff? || !record.admin?)
|
||||
end
|
||||
|
||||
def demoteable?
|
||||
record.staff?
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user