Class: TinyPassport::SessionForm
- Inherits:
-
Object
- Object
- TinyPassport::SessionForm
- Includes:
- Formable
- Defined in:
- app/forms/tiny_passport/session_form.rb
Instance Attribute Summary collapse
-
#input_value ⇒ Object
Returns the value of attribute input_value.
-
#ip ⇒ Object
Returns the value of attribute ip.
-
#password ⇒ Object
Returns the value of attribute password.
-
#remembered ⇒ Object
Returns the value of attribute remembered.
Instance Method Summary collapse
- #account_scope ⇒ Object
-
#initialize ⇒ SessionForm
constructor
A new instance of SessionForm.
- #login_email_scope ⇒ Object
- #login_record ⇒ Object
- #remembered? ⇒ Boolean
-
#submit(params = {}) ⇒ Object
使用参数登录 :input_value 输入的值, 如果是邮箱 则当做邮箱登录, 如果是登录名称,则用登录名称登录 :password 密码 :ip :remembered.
Constructor Details
#initialize ⇒ SessionForm
Returns a new instance of SessionForm.
13 14 15 |
# File 'app/forms/tiny_passport/session_form.rb', line 13 def initialize @remembered = true end |
Instance Attribute Details
#input_value ⇒ Object
Returns the value of attribute input_value.
6 7 8 |
# File 'app/forms/tiny_passport/session_form.rb', line 6 def input_value @input_value end |
#ip ⇒ Object
Returns the value of attribute ip.
6 7 8 |
# File 'app/forms/tiny_passport/session_form.rb', line 6 def ip @ip end |
#password ⇒ Object
Returns the value of attribute password.
6 7 8 |
# File 'app/forms/tiny_passport/session_form.rb', line 6 def password @password end |
#remembered ⇒ Object
Returns the value of attribute remembered.
6 7 8 |
# File 'app/forms/tiny_passport/session_form.rb', line 6 def remembered @remembered end |
Instance Method Details
#account_scope ⇒ Object
110 111 112 |
# File 'app/forms/tiny_passport/session_form.rb', line 110 def account_scope ::TinyPassport::Account end |
#login_email_scope ⇒ Object
106 107 108 |
# File 'app/forms/tiny_passport/session_form.rb', line 106 def login_email_scope ::TinyPassport::LoginEmail end |
#login_record ⇒ Object
17 18 19 |
# File 'app/forms/tiny_passport/session_form.rb', line 17 def login_record @login_record ||= ::TinyPassport::LoginRecord.new end |
#remembered? ⇒ Boolean
21 22 23 |
# File 'app/forms/tiny_passport/session_form.rb', line 21 def remembered? [true, 'true', '1'].include?(self.remembered) end |
#submit(params = {}) ⇒ Object
使用参数登录
:input_value
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'app/forms/tiny_passport/session_form.rb', line 32 def submit params={} self.input_value = params[:input_value] self.password = params[:password] self.ip = params[:ip].to_s self.remembered = params[:remembered] ####### self.login_record.ip = self.ip self.login_record.last_remembered_ip = self.ip self.login_record.remembered = self.remembered? if self.valid? if self.success? case self.input_value when ::TinyPassport.config.email_regexp login_email = login_email_scope.where(:value => self.input_value).first if login_email.nil? self.errors.add :input_value, :login_email_not_exists else case login_email.status_key when 'active' account = login_email.account if account.nil? self.errors.add :input_value, :login_email_wrong end else self.errors.add :input_value, :login_email_not_active end end self.login_record.way_key = 'login_email' else account = account_scope.where(:login_name => self.input_value).first if account.nil? self.errors.add :input_value, :login_name_not_exists end self.login_record.way_key = 'login_name' end if self.success? if account.valid_password?(self.password) # TODO: 登录成功! begin ::ActiveRecord::Base.transaction do self.login_record.account = account if self.login_record.save! self.login_record.account.save! end @result = { :login_record => self.login_record, :account => self.login_record.account } return true end rescue false end else self.errors.add :password, :wrong end end end end false end |