Files
nairobi/app/controllers/admin/tenants_controller.rb
2022-12-29 15:43:16 +01:00

70 lines
1.6 KiB
Ruby

class Admin::TenantsController < Admin::BaseController
load_and_authorize_resource
def index
@tenants = @tenants.order(:name)
end
def new
end
def edit
end
def create
if @tenant.save
update_default_tenant_administrator
redirect_to admin_tenants_path, notice: t("admin.tenants.create.notice")
else
render :new
end
end
def update
if @tenant.update(tenant_params)
redirect_to admin_tenants_path, notice: t("admin.tenants.update.notice")
else
render :edit
end
end
def hide
@tenant.hide
respond_to do |format|
format.html { redirect_to admin_tenants_path, notice: t("admin.tenants.hide.notice") }
format.js { render template: "admin/tenants/toggle_enabled" }
end
end
def restore
@tenant.restore
respond_to do |format|
format.html { redirect_to admin_tenants_path, notice: t("admin.tenants.restore.notice") }
format.js { render template: "admin/tenants/toggle_enabled" }
end
end
private
def tenant_params
params.require(:tenant).permit(:name, :schema, :schema_type)
end
def update_default_tenant_administrator
tenant_administrator_credentials = {
email: current_user.email,
username: current_user.username,
encrypted_password: current_user.encrypted_password
}
Tenant.switch(@tenant.schema) do
default_admin_account = User.administrators.first
default_admin_account.skip_confirmation_notification!
default_admin_account.update!(tenant_administrator_credentials)
default_admin_account.confirm
end
end
end