Revert some auth pieces of "Account.sole → Current.account"
This commit is contained in:
@@ -2,6 +2,8 @@ module Authentication
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
# Checking for tenant must happen first so we redirect before trying to access the db.
|
||||
before_action :require_tenant
|
||||
prepend_before_action :clear_old_scoped_session_cookies
|
||||
|
||||
before_action :require_authentication
|
||||
@@ -23,6 +25,11 @@ module Authentication
|
||||
before_action :resume_session, **options
|
||||
allow_unauthorized_access **options
|
||||
end
|
||||
|
||||
def require_untenanted_access(**options)
|
||||
skip_before_action :require_tenant, **options
|
||||
before_action :redirect_tenanted_request, **options
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
@@ -30,6 +37,12 @@ module Authentication
|
||||
Current.session.present?
|
||||
end
|
||||
|
||||
def require_tenant
|
||||
if ApplicationRecord.current_tenant.blank?
|
||||
redirect_to session_menu_url(script_name: nil)
|
||||
end
|
||||
end
|
||||
|
||||
def require_authentication
|
||||
resume_session || request_authentication
|
||||
end
|
||||
@@ -67,6 +80,10 @@ module Authentication
|
||||
redirect_to root_url if authenticated?
|
||||
end
|
||||
|
||||
def redirect_tenanted_request
|
||||
redirect_to root_url if ApplicationRecord.current_tenant
|
||||
end
|
||||
|
||||
def start_new_session_for(identity)
|
||||
identity.sessions.create!(user_agent: request.user_agent, ip_address: request.remote_ip).tap do |session|
|
||||
set_current_session session
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class JoinCodesController < ApplicationController
|
||||
require_untenanted_access
|
||||
allow_unauthenticated_access
|
||||
before_action :set_join_code
|
||||
before_action :ensure_join_code_is_valid
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class Memberships::EmailAddresses::ConfirmationsController < ApplicationController
|
||||
require_untenanted_access
|
||||
allow_unauthenticated_access
|
||||
|
||||
before_action :set_membership
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class Memberships::EmailAddressesController < ApplicationController
|
||||
require_untenanted_access
|
||||
|
||||
layout "public"
|
||||
|
||||
before_action :set_membership
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class Memberships::UnlinkController < ApplicationController
|
||||
require_untenanted_access
|
||||
before_action :set_membership
|
||||
|
||||
def show
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class PwaController < ApplicationController
|
||||
require_untenanted_access
|
||||
skip_forgery_protection
|
||||
|
||||
# We need a stable URL at the root, so we can't use the regular asset path here.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class Sessions::MagicLinksController < ApplicationController
|
||||
require_untenanted_access
|
||||
require_unauthenticated_access
|
||||
rate_limit to: 10, within: 15.minutes, only: :create, with: -> { redirect_to session_magic_link_path, alert: "Try again in 15 minutes." }
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class Sessions::MenusController < ApplicationController
|
||||
require_untenanted_access
|
||||
|
||||
before_action(if: :render_as_menu_section?) { request.variant = :menu_section }
|
||||
|
||||
layout "public"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class Sessions::TransfersController < ApplicationController
|
||||
require_untenanted_access
|
||||
require_unauthenticated_access
|
||||
|
||||
def show
|
||||
|
||||
@@ -4,6 +4,7 @@ class SessionsController < ApplicationController
|
||||
SIGNUP_PASSWORD = Rails.env.local? ? "testpassword" : Rails.application.credentials.account_signup_http_basic_auth.password
|
||||
http_basic_authenticate_with name: SIGNUP_USERNAME, password: SIGNUP_PASSWORD, realm: "Fizzy Signup", only: :create, unless: -> { Identity.exists?(email_address: email_address) }
|
||||
|
||||
require_untenanted_access
|
||||
require_unauthenticated_access except: :destroy
|
||||
rate_limit to: 10, within: 3.minutes, only: :create, with: -> { redirect_to new_session_path, alert: "Try again later." }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user