Sha256: 5a027dc5acb67929c40bf81a0d9f044e649dfd0ccf25d6d5cfe89b40a6cf5bd2
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module Ninsho class Authentication PARENT_RESOURCE_NAME = Ninsho.parent_resource_name.to_s.downcase def initialize(omniauth = nil) @omniauth = omniauth @provider = omniauth['provider'] @uid = omniauth['uid'] @email = omniauth['info']['email'] end def authenticated? user.present? end def from_oauth Ninsho.resource_class.find_by_provider_and_uid(@provider, @uid) end def from_user user = Ninsho.parent_resource_name.send :find_by_email, @email if user user.send("#{Ninsho.resource_name.pluralize}").build(provider: @provider, uid: @uid) user.send(:save) user else user = Ninsho.parent_resource_name.send :new, { email: @email } user.send("#{Ninsho.resource_name.pluralize}").build(provider: @provider, uid: @uid) user.send(:save) user end end def user from_oauth.try(Ninsho.parent_resource_name.to_s.downcase.to_sym) || from_user end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ninsho-0.0.1 | lib/ninsho/authentication.rb |