Class: SimpleAuth::Session
- Inherits:
-
Object
- Object
- SimpleAuth::Session
- Defined in:
- lib/simple_auth/session.rb
Defined Under Namespace
Classes: Errors
Instance Attribute Summary collapse
-
#controller ⇒ Object
Returns the value of attribute controller.
-
#credential ⇒ Object
Returns the value of attribute credential.
-
#errors ⇒ Object
Returns the value of attribute errors.
-
#model ⇒ Object
Returns the value of attribute model.
-
#password ⇒ Object
Returns the value of attribute password.
-
#record ⇒ Object
Returns the value of attribute record.
Class Method Summary collapse
- .backup(&block) ⇒ Object
- .controller ⇒ Object
- .create(options = {}) ⇒ Object
- .create!(options = {}) ⇒ Object
- .destroy! ⇒ Object
- .find ⇒ Object
- .model_name ⇒ Object
- .record_id ⇒ Object
- .session_key ⇒ Object
Instance Method Summary collapse
- #destroy ⇒ Object
-
#initialize(options = {}) ⇒ Session
constructor
A new instance of Session.
- #new_record? ⇒ Boolean
- #persisted? ⇒ Boolean
- #save ⇒ Object
- #save! ⇒ Object
- #to_key ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(options = {}) ⇒ Session
Returns a new instance of Session.
103 104 105 106 107 108 109 110 111 |
# File 'lib/simple_auth/session.rb', line 103 def initialize( = {}) ||= {} @credential = [:credential] @password = [:password] @controller = SimpleAuth::Config.controller @model = SimpleAuth::Config.model_class @errors = Errors.new end |
Instance Attribute Details
#controller ⇒ Object
Returns the value of attribute controller.
6 7 8 |
# File 'lib/simple_auth/session.rb', line 6 def controller @controller end |
#credential ⇒ Object
Returns the value of attribute credential.
3 4 5 |
# File 'lib/simple_auth/session.rb', line 3 def credential @credential end |
#errors ⇒ Object
Returns the value of attribute errors.
8 9 10 |
# File 'lib/simple_auth/session.rb', line 8 def errors @errors end |
#model ⇒ Object
Returns the value of attribute model.
5 6 7 |
# File 'lib/simple_auth/session.rb', line 5 def model @model end |
#password ⇒ Object
Returns the value of attribute password.
4 5 6 |
# File 'lib/simple_auth/session.rb', line 4 def password @password end |
#record ⇒ Object
Returns the value of attribute record.
7 8 9 |
# File 'lib/simple_auth/session.rb', line 7 def record @record end |
Class Method Details
.backup(&block) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/simple_auth/session.rb', line 46 def self.backup(&block) backup = controller.session.to_hash.reject do |name, value| rejected = [:session_id, session_key].include?(name.to_sym) || SimpleAuth::Config.wipeout_session && name.to_s =~ /^#{SimpleAuth::Config.model}_/ controller.session.delete(name) if rejected rejected end yield backup.each do |name, value| controller.session[name.to_sym] = value end end |
.controller ⇒ Object
84 85 86 |
# File 'lib/simple_auth/session.rb', line 84 def self.controller SimpleAuth::Config.controller end |
.create(options = {}) ⇒ Object
72 73 74 75 76 |
# File 'lib/simple_auth/session.rb', line 72 def self.create( = {}) new().tap do |session| session.save end end |
.create!(options = {}) ⇒ Object
78 79 80 81 82 |
# File 'lib/simple_auth/session.rb', line 78 def self.create!( = {}) new().tap do |session| session.save! end end |
.destroy! ⇒ Object
88 89 90 91 92 93 94 95 96 97 |
# File 'lib/simple_auth/session.rb', line 88 def self.destroy! [:session_id, session_key].each {|name| controller.session.delete(name) } controller.instance_variable_set("@current_user", nil) controller.instance_variable_set("@current_session", nil) backup { controller.reset_session } true end |
.find ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/simple_auth/session.rb', line 60 def self.find return unless controller && record_id session = new session.record = session.model.find_by_id(record_id) if session.record session else nil end end |
.model_name ⇒ Object
99 100 101 |
# File 'lib/simple_auth/session.rb', line 99 def self.model_name ActiveModel::Name.new(self) end |
.record_id ⇒ Object
42 43 44 |
# File 'lib/simple_auth/session.rb', line 42 def self.record_id controller && controller.session[session_key] end |
.session_key ⇒ Object
38 39 40 |
# File 'lib/simple_auth/session.rb', line 38 def self.session_key "#{SimpleAuth::Config.model.to_s}_id".to_sym end |
Instance Method Details
#destroy ⇒ Object
154 155 156 157 158 159 |
# File 'lib/simple_auth/session.rb', line 154 def destroy @record = nil @credential = nil @password = nil self.class.destroy! end |
#new_record? ⇒ Boolean
117 118 119 |
# File 'lib/simple_auth/session.rb', line 117 def new_record? record.nil? end |
#persisted? ⇒ Boolean
121 122 123 |
# File 'lib/simple_auth/session.rb', line 121 def persisted? !new_record? end |
#save ⇒ Object
139 140 141 142 143 144 |
# File 'lib/simple_auth/session.rb', line 139 def save self.class.destroy! controller.session[self.class.session_key] = record.id if valid? controller.session[self.class.session_key] != nil end |
#save! ⇒ Object
146 147 148 149 150 151 152 |
# File 'lib/simple_auth/session.rb', line 146 def save! if valid? save else raise SimpleAuth::NotAuthorized end end |
#to_key ⇒ Object
113 114 115 |
# File 'lib/simple_auth/session.rb', line 113 def to_key nil end |
#valid? ⇒ Boolean
125 126 127 128 129 130 131 132 133 |
# File 'lib/simple_auth/session.rb', line 125 def valid? if record && controller.send(:authorized?) true else errors.add_to_base I18n.translate("simple_auth.sessions.invalid_credentials") self.class.destroy! false end end |