Class: Pbw::User
- Inherits:
-
Object
- Object
- Pbw::User
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- app/models/pbw/user.rb
Constant Summary collapse
- ROLES =
%W{superadmin admin moderator player}
Class Method Summary collapse
- .creatable_by?(user, subject) ⇒ Boolean
- .deletable_by?(user, subject) ⇒ Boolean
- .editable_by?(user, subject) ⇒ Boolean
- .friendly_token ⇒ Object
- .viewable_by?(user, subject) ⇒ Boolean
Instance Method Summary collapse
- #admin? ⇒ Boolean
-
#email ⇒ Object
Database authenticatable.
-
#failed_attempts ⇒ Object
Lockable.
- #make_admin! ⇒ Object
- #make_moderator! ⇒ Object
- #make_superadmin! ⇒ Object
- #moderator? ⇒ Boolean
- #player? ⇒ Boolean
-
#remember_created_at ⇒ Object
Rememberable.
- #reset_password! ⇒ Object
-
#reset_password_token ⇒ Object
Recoverable.
- #send_password_email(password) ⇒ Object
- #send_registration_email ⇒ Object
-
#sign_in_count ⇒ Object
Trackable.
- #superadmin? ⇒ Boolean
Class Method Details
.creatable_by?(user, subject) ⇒ Boolean
98 99 100 |
# File 'app/models/pbw/user.rb', line 98 def self.creatable_by?(user, subject) true end |
.deletable_by?(user, subject) ⇒ Boolean
106 107 108 |
# File 'app/models/pbw/user.rb', line 106 def self.deletable_by?(user, subject) user.admin? end |
.editable_by?(user, subject) ⇒ Boolean
102 103 104 |
# File 'app/models/pbw/user.rb', line 102 def self.editable_by?(user, subject) user.admin? || subject == user end |
.friendly_token ⇒ Object
110 111 112 |
# File 'app/models/pbw/user.rb', line 110 def self.friendly_token SecureRandom.base64(15).tr('+/=lIO0', 'pqrsxyz') end |
.viewable_by?(user, subject) ⇒ Boolean
94 95 96 |
# File 'app/models/pbw/user.rb', line 94 def self.viewable_by?(user, subject) true end |
Instance Method Details
#admin? ⇒ Boolean
56 57 58 |
# File 'app/models/pbw/user.rb', line 56 def admin? self.role == "admin" || superadmin? end |
#email ⇒ Object
Database authenticatable
12 |
# File 'app/models/pbw/user.rb', line 12 field :email, :type => String, :default => "" |
#failed_attempts ⇒ Object
Lockable
34 |
# File 'app/models/pbw/user.rb', line 34 field :failed_attempts, :type => Integer, :default => 0 |
#make_admin! ⇒ Object
60 61 62 63 |
# File 'app/models/pbw/user.rb', line 60 def make_admin! self.role = "admin" save! end |
#make_moderator! ⇒ Object
69 70 71 72 |
# File 'app/models/pbw/user.rb', line 69 def make_moderator! self.role = "moderator" save! end |
#make_superadmin! ⇒ Object
51 52 53 54 |
# File 'app/models/pbw/user.rb', line 51 def make_superadmin! self.role = "superadmin" save! end |
#moderator? ⇒ Boolean
65 66 67 |
# File 'app/models/pbw/user.rb', line 65 def moderator? self.role == "moderator" || admin? end |
#player? ⇒ Boolean
74 75 76 |
# File 'app/models/pbw/user.rb', line 74 def player? self.role == "player" || moderator? end |
#remember_created_at ⇒ Object
Rememberable
20 |
# File 'app/models/pbw/user.rb', line 20 field :remember_created_at, :type => Time |
#reset_password! ⇒ Object
82 83 84 85 86 87 88 |
# File 'app/models/pbw/user.rb', line 82 def reset_password! token = User.friendly_token self.password = token self.password_confirmation = token save! send_password_email(token) end |
#reset_password_token ⇒ Object
Recoverable
16 |
# File 'app/models/pbw/user.rb', line 16 field :reset_password_token, :type => String |
#send_password_email(password) ⇒ Object
90 91 92 |
# File 'app/models/pbw/user.rb', line 90 def send_password_email(password) UserMailer.password_reset(self,password).deliver end |
#send_registration_email ⇒ Object
78 79 80 |
# File 'app/models/pbw/user.rb', line 78 def send_registration_email UserMailer.registration(self).deliver end |
#sign_in_count ⇒ Object
Trackable
23 |
# File 'app/models/pbw/user.rb', line 23 field :sign_in_count, :type => Integer, :default => 0 |
#superadmin? ⇒ Boolean
47 48 49 |
# File 'app/models/pbw/user.rb', line 47 def superadmin? self.role == "superadmin" end |