PHCNetworks/multi-tenancy-devise

View on GitHub
app/controllers/mtdevise/application_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Mtdevise

    class ApplicationController < ::ApplicationController

        # Secirity and Filters
        protect_from_forgery with: :null_session
        before_action :check_subdomain

        # Omniauth
        def after_sign_in_path_for(resource)
            request.env['omniauth.origin'] || stored_location_for(resource) || mtdevise.accounts_path
        end

        # Helpers for Current Account and Users
        def current_user?(user)
            user == current_user
        end
        helper_method :current_user

        def current_account?(account)
            account == current_account
        end
        helper_method :current_account

        # Load Helpers
        helper Phctitleseo::Engine.helpers
        helper Phcnotifi::Engine.helpers

        private

        # Logged in redirect
        def redirect_logged_in_users_to_account_page
            redirect_to mtdevise.accounts_path if user_signed_in?
        end

        # Subdomain Checker
        def check_subdomain
            if request.subdomain.present? && Account.where(subdomain: request.subdomain).blank?
                redirect_to mtdevise.root_url(subdomain: false), notice: "Subdomain Doesn't Exist. Would you like to Register."
            end
        end

        # Resolve Layouts for Custom Account Actions
        def layouts_resolver_accounts
            case action_name
                when "index"
                    "layouts/mtdevise/accountsindex"
                when "new"
                    "layouts/mtdevise/signup"
            end
        end

        # Resolve Layouts for Custom User Actions
        def layouts_resolver_users
            case action_name
                when "new"
                    "layouts/mtdevise/signup"
            end
        end

    end

end