about summary refs log tree commit diff
path: root/app/policies
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2019-03-14 17:14:05 +0100
committerThibaut Girka <thib@sitedethib.com>2019-03-14 17:17:20 +0100
commit07eb31eeacc4e0364b839233a41fa65eb3c650ce (patch)
tree843cda5a4d9bc730aba9a13d0634fef5e2212515 /app/policies
parentfa75324059c7a146354470691888dc0e1de0342f (diff)
parent874bd3ac0c56e2d2901785e170b27f5cde32b33b (diff)
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- app/views/admin/settings/edit.html.haml:
  Conflict due to how the theming settings change.
Diffstat (limited to 'app/policies')
-rw-r--r--app/policies/user_policy.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb
index 57af5c61c..d832bff75 100644
--- a/app/policies/user_policy.rb
+++ b/app/policies/user_policy.rb
@@ -21,6 +21,14 @@ class UserPolicy < ApplicationPolicy
     staff?
   end
 
+  def approve?
+    staff? && !record.approved?
+  end
+
+  def reject?
+    staff? && !record.approved?
+  end
+
   def disable?
     staff? && !record.admin?
   end
@@ -36,7 +44,7 @@ class UserPolicy < ApplicationPolicy
   private
 
   def promoteable?
-    !record.staff? || !record.admin?
+    record.approved? && (!record.staff? || !record.admin?)
   end
 
   def demoteable?