module AuthRocket::ControllerHelper
Private Instance Methods
ar_account_url(**params)
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 48 def ar_account_url(**params) if id = params.delete(:id) || current_org&.id loginrocket_url(path: "/accounts/#{id}", **params) else ar_accounts_url(**params) end end
ar_accounts_url(**params)
click to toggle source
force - if false/nil, does not add ?force; else does add it
# File lib/authrocket/rails/controller_helper.rb, line 57 def ar_accounts_url(**params) if params[:force] || !params.key?(:force) params[:force] = nil else params.delete(:force) end loginrocket_url(path: '/accounts', **params) end
ar_login_url(**params)
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 66 def ar_login_url(**params) loginrocket_url(path: '/login', **params) end
ar_logout_url(**params)
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 70 def ar_logout_url(**params) params[:session] = current_session.id if current_session loginrocket_url(path: '/logout', **params) end
ar_profile_url(**params)
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 75 def ar_profile_url(**params) loginrocket_url(path: '/profile', **params) end
ar_signup_url(**params)
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 79 def ar_signup_url(**params) loginrocket_url(path: '/signup', **params) end
conditional_login()
click to toggle source
returns: bool – whether session was updated/replaced
# File lib/authrocket/rails/controller_helper.rb, line 94 def conditional_login return unless params[:token] if s = AuthRocket::Session.from_token(params[:token]) @_current_session = s session[:ar_token] = params[:token] true end end
current_membership()
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 36 def current_membership # LR always sends a JWT with exactly one membership/org # other API generated JWTs may vary return unless current_user current_user.memberships.each{|m| return m if m.selected }.first end
current_org()
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 43 def current_org current_membership&.org end
current_session()
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 28 def current_session @_current_session ||= AuthRocket::Session.from_token(session[:ar_token]) end
current_user()
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 32 def current_user current_session&.user end
loginrocket_url(path: nil, **params)
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 83 def loginrocket_url(path: nil, **params) raise "Missing env LOGINROCKET_URL or credentials[:loginrocket_url]" if AuthRocket::Api.credentials[:loginrocket_url].blank? uri = Addressable::URI.parse AuthRocket::Api.credentials[:loginrocket_url] uri.path = path if path uri.path = '/' if uri.path.blank? uri.query_values = (uri.query_values||{}).merge(params).stringify_keys if params.present? uri.to_s end
process_inbound_token()
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 6 def process_inbound_token # if GET (the only method LR uses), redirect to remove ?token= if request.get? && conditional_login redirect_to safe_this_uri end end
require_login()
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 21 def require_login unless current_session redirect_to ar_login_url(redirect_uri: safe_this_uri), allow_other_host: true end end
safe_this_uri()
click to toggle source
# File lib/authrocket/rails/controller_helper.rb, line 103 def safe_this_uri full_url_for(request.get? ? params.to_unsafe_h.except(:account, :session, :token) : {}) end