summaryrefslogtreecommitdiff
path: root/app/models/user.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 46b36c605b0..67b47b0f329 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -198,16 +198,26 @@ class User < ActiveRecord::Base
transition active: :blocked
end
+ event :ldap_block do
+ transition active: :ldap_blocked
+ end
+
event :activate do
transition blocked: :active
end
+
+ state :blocked, :ldap_blocked do
+ def blocked?
+ true
+ end
+ end
end
mount_uploader :avatar, AvatarUploader
# Scopes
scope :admins, -> { where(admin: true) }
- scope :blocked, -> { with_state(:blocked) }
+ scope :blocked, -> { with_states(:blocked, :ldap_blocked) }
scope :active, -> { with_state(:active) }
scope :not_in_project, ->(project) { project.users.present? ? where("id not in (:ids)", ids: project.users.map(&:id) ) : all }
scope :without_projects, -> { where('id NOT IN (SELECT DISTINCT(user_id) FROM members)') }