Class: Boxroom::User

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/boxroom/user.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#dont_clear_reset_password_tokenObject

Returns the value of attribute dont_clear_reset_password_token.



6
7
8
# File 'app/models/boxroom/user.rb', line 6

def dont_clear_reset_password_token
  @dont_clear_reset_password_token
end

#password_confirmationObject

Returns the value of attribute password_confirmation.



6
7
8
# File 'app/models/boxroom/user.rb', line 6

def password_confirmation
  @password_confirmation
end

#password_requiredObject

Returns the value of attribute password_required.



6
7
8
# File 'app/models/boxroom/user.rb', line 6

def password_required
  @password_required
end

Class Method Details

.authenticate(name, password) ⇒ Object



74
75
76
77
78
79
# File 'app/models/boxroom/user.rb', line 74

def self.authenticate(name, password)
  return nil if name.blank? || password.blank?
  user = find_by_name(name) or return nil
  hash = Digest::SHA256.hexdigest(user.password_salt + password)
  hash == user.hashed_password ? user : nil
end

.no_admin_yet?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'app/models/boxroom/user.rb', line 81

def self.no_admin_yet?
  find_by_is_admin(true).blank?
end

Instance Method Details

#forget_meObject



65
66
67
68
# File 'app/models/boxroom/user.rb', line 65

def forget_me
  self.remember_token = nil
  save(:validate => false)
end

#member_of_admins?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'app/models/boxroom/user.rb', line 49

def member_of_admins?
  groups.admins_group.present?
end

#name_is_blank?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'app/models/boxroom/user.rb', line 70

def name_is_blank?
  self.name.blank?
end

#passwordObject



36
37
38
# File 'app/models/boxroom/user.rb', line 36

def password
  @password
end

#password=(new_password) ⇒ Object



40
41
42
43
44
45
46
47
# File 'app/models/boxroom/user.rb', line 40

def password=(new_password)
  @password = new_password

  unless @password.blank?
    self.password_salt = SecureRandom.base64(32)
    self.hashed_password = Digest::SHA256.hexdigest(password_salt + password)
  end
end

#refresh_remember_tokenObject



60
61
62
63
# File 'app/models/boxroom/user.rb', line 60

def refresh_remember_token
  self.remember_token = SecureRandom.base64(32)
  save(:validate => false)
end

#refresh_reset_password_tokenObject



53
54
55
56
57
58
# File 'app/models/boxroom/user.rb', line 53

def refresh_reset_password_token
  self.reset_password_token = SecureRandom.hex(10)
  self.reset_password_token_expires_at = 1.hour.from_now
  self.dont_clear_reset_password_token = true
  save(:validate => false)
end