Class: Lato::User
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Lato::User
- Includes:
- LatoUserApplication
- Defined in:
- app/models/lato/user.rb
Instance Method Summary collapse
- #destroy_with_confirmation(params) ⇒ Object
-
#full_name ⇒ Object
Helpers.
- #request_recover_password(params) ⇒ Object
- #request_verify_email ⇒ Object
-
#signin(params) ⇒ Object
Operations.
- #update_password(params) ⇒ Object
-
#valid_accepted_privacy_policy_version? ⇒ Boolean
Questions.
- #valid_accepted_terms_and_conditions_version? ⇒ Boolean
- #verify_email(params) ⇒ Object
Instance Method Details
#destroy_with_confirmation(params) ⇒ Object
119 120 121 122 123 124 125 126 |
# File 'app/models/lato/user.rb', line 119 def destroy_with_confirmation(params) unless params[:email_confirmation] == email errors.add(:email, 'non corretto') return end destroy end |
#full_name ⇒ Object
Helpers
55 56 57 |
# File 'app/models/lato/user.rb', line 55 def full_name "#{last_name} #{first_name}" end |
#request_recover_password(params) ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'app/models/lato/user.rb', line 128 def request_recover_password(params) user = Lato::User.find_by(email: params[:email]) unless user errors.add(:email, 'non registrato') return end code = SecureRandom.hex.upcase delivery = Lato::UserMailer.password_update_mail(user.id, code).deliver_now unless delivery errors.add(:base, 'Impossibile inviare mail') return end self.id = user.id reload password_update_code.value = code true end |
#request_verify_email ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'app/models/lato/user.rb', line 82 def request_verify_email if email_verification_semaphore.value errors.add(:base, 'Attendi almeno 2 minuti per provare un nuovo tentativo di verifica email') return end code = SecureRandom.hex.upcase delivery = Lato::UserMailer.email_verification_mail(id, code).deliver_now unless delivery errors.add(:base, 'Impossibile inviare mail') return end email_verification_code.value = code email_verification_semaphore.value = true true end |
#signin(params) ⇒ Object
Operations
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'app/models/lato/user.rb', line 62 def signin(params) self.email = params[:email] user = Lato::User.find_by(email: params[:email]) unless user errors.add(:email, 'non valido') return end unless user.authenticate(params[:password]) errors.add(:password, 'non valida') return end self.id = user.id reload true end |
#update_password(params) ⇒ Object
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'app/models/lato/user.rb', line 150 def update_password(params) unless password_update_code.value errors.add(:base, 'Il codice di verifica risulta scaduto') return end unless password_update_code.value == params[:code] errors.add(:base, 'Il codice di verifica non risulta valido') return end password_update_code.value = nil update(params.permit(:password, :password_confirmation)) end |
#valid_accepted_privacy_policy_version? ⇒ Boolean
Questions
44 45 46 |
# File 'app/models/lato/user.rb', line 44 def valid_accepted_privacy_policy_version? @valid_accepted_privacy_policy_version ||= accepted_privacy_policy_version >= Lato.config.legal_privacy_policy_version end |
#valid_accepted_terms_and_conditions_version? ⇒ Boolean
48 49 50 |
# File 'app/models/lato/user.rb', line 48 def valid_accepted_terms_and_conditions_version? @valid_accepted_terms_and_conditions_version ||= accepted_terms_and_conditions_version >= Lato.config.legal_privacy_policy_version end |
#verify_email(params) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'app/models/lato/user.rb', line 101 def verify_email(params) unless email_verification_code.value errors.add(:base, 'Il codice di verifica email risulta scaduto') return end unless email_verification_code.value == params[:code] errors.add(:base, 'Il codice di verifica email non risulta valido') return end email_verification_code.value = nil email_verification_semaphore.value = nil update_column(:email_verified_at, Time.now) true end |