Module: Devise
- Defined in:
- lib/devise_yauth_token.rb,
lib/devise_yauth_token/model.rb,
lib/devise_yauth_token/rails.rb,
lib/devise_yauth_token/engine.rb,
app/controllers/devise/yauth_sessions_controller.rb,
app/controllers/devise/yauth_settings_controller.rb
Defined Under Namespace
Modules: Models, YauthToken Classes: Engine, YauthSessionsController, YauthSettingsController
Class Method Summary collapse
Class Method Details
.current_account(request_host) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/devise_yauth_token.rb', line 16 def self.current_account(request_host) return Account.where(:code => 'current').first if Rails.env == 'test' account_host = AccountHost.find_by_host(request_host) current_account ||= account_host.account if !account_host.blank? return current_account if !current_account.blank? url = ::YAUTH_CONFIG["auth_url"]+"/api/auth/account_by_host/?auth_host=#{request_host}" result = RestClient.get(url) {|response, request, result| result } result = JSON.parse(result.body) rescue {} if result['status'] == 200 code = result['data']['account']['code'] current_account = Account.find_by_code(code) if !code.blank? if current_account account_host = current_account.account_hosts.build({:host => request_host}) account_host.save(:validate => false) else account = Account.new account.yauth_host = result['data']['account']['host'] account.code = result['data']['account']['code'] account.name = result['data']['account']['name'] account.yauth_account_id = result['data']['account']['id'] account.account_hosts.build({:host => request_host}) account.save(:validate => false) current_account = account end end current_account end |