lib/zen/package/users/lib/users/model/user.rb in zen-0.2.6 vs lib/zen/package/users/lib/users/model/user.rb in zen-0.2.6.1
- old
+ new
@@ -40,27 +40,29 @@
# @author Yorick Peterse
# @since 0.1
# @param [Hash] creds The specified credentials
# @return [Object/Boolean] new instance of the given user.
#
- def self.authenticate creds
+ def self.authenticate(creds)
email = creds['email']
password = creds['password']
- if email.nil? or password.nil?
- return false
- end
+ return false if email.nil? or password.nil?
user = self[:email => email]
if !user.nil? and user.password == password and user.status == 'open'
# Overwrite all the global settings with the user specific ones
- ::Zen.settings.each do |k, v|
- if user.respond_to?(k)
- got = user.send(k)
+ [:language, :frontend_language, :date_format].each do |setting|
+ # "plugin" is already defined by Sequel so we'll have to call the plugin
+ # manually.
+ value = ::Zen::Plugin[:settings].plugin.new(:get, setting).call.value
+
+ if user.respond_to?(setting)
+ got = user.send(setting)
if got.nil? or got.empty?
- user.send("#{k}=", v)
+ user.send("#{setting}=", value)
end
end
end
action.node.session[:user] = user