module Card::Auth::Current
methods for setting current account
Public Instance Methods
current_card()
click to toggle source
current accounted card (must have +*account) @return [Card]
# File lib/card/auth/current.rb, line 21 def current_card return @current_card if @current_card&.id == current_id @current_card = Card[current_id] end
Also aliased as: current
current_id()
click to toggle source
id of current user card. @return [Integer]
# File lib/card/auth/current.rb, line 7 def current_id @current_id ||= Card::AnonymousID end
current_id=(card_id)
click to toggle source
set the id of the current user. @return [Integer]
# File lib/card/auth/current.rb, line 13 def current_id= card_id reset card_id = card_id.to_i if card_id.present? @current_id = card_id end
current_roles()
click to toggle source
# File lib/card/auth/current.rb, line 28 def current_roles return [] unless signed_in? @current_roles ||= [:anyone_signed_in.cardname] + Set::Self::Role.role_ids(current_id).map(&:cardname) end
find_account_by_email(email)
click to toggle source
find +*account card by +*email card @param email [String] @return [+*account card, nil]
# File lib/card/auth/current.rb, line 72 def find_account_by_email email find_account_by :email, email.strip.downcase end
reset()
click to toggle source
# File lib/card/auth/current.rb, line 76 def reset @as_id = @as_card = @current_id = @current_card = @current_roles = nil end
session()
click to toggle source
get session object from Env
return [Session]
# File lib/card/auth/current.rb, line 65 def session Card::Env.session end
session_user_key()
click to toggle source
# File lib/card/auth/current.rb, line 80 def session_user_key "user_#{Cardio.database.underscore}".to_sym end
signed_in?()
click to toggle source
current user is not anonymous @return [true/false]
# File lib/card/auth/current.rb, line 43 def signed_in? current_id != Card::AnonymousID end
signin(cardish)
click to toggle source
set current user in process and session
# File lib/card/auth/current.rb, line 36 def signin cardish session[session_user_key] = self.current_id = Card.id(cardish) || Card::AnonymousID end
signin_with(opts={})
click to toggle source
set current from token, api_key, or session
# File lib/card/auth/current.rb, line 48 def signin_with opts={} if opts[:token] signin_with_token opts[:token] else signin_with_session end end
signin_with_session()
click to toggle source
get :user id from session and set Auth.current_id
# File lib/card/auth/current.rb, line 57 def signin_with_session card_id = session[session_user_key] card_id = nil unless Card.exists? card_id signin card_id end
Private Instance Methods
find_account_by(fieldcode, value)
click to toggle source
general pattern for finding +*account card based on field cards @param fieldcode [Symbol] code of account field @param value [String] content of field @return [+*account card, nil]
# File lib/card/auth/current.rb, line 90 def find_account_by fieldcode, value Auth.as_bot do Card.search({ right_id: Card::AccountID, right_plus: [Card::Codename.id(fieldcode), { content: value }] }, "find +:account with +#{fieldcode} (#{value})").first end end