Skip to content

Commit 41c47bf

Browse files
committed
fix in accesso multi-tenancy
1 parent 2dbea52 commit 41c47bf

2 files changed

Lines changed: 31 additions & 23 deletions

File tree

code/app/Helpers/Paths.php

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
<?php
22

3-
/*
4-
Se la variabile d'ambiente STORAGE_FOLDER è definita, tutti i files vengono
5-
conservati nella cartella (contenuta in storage/) con quel nome.
6-
Utile per isolare i files in configurazioni multi-GAS
7-
*/
3+
use Illuminate\Support\Env;
4+
5+
/**
6+
* Se la variabile d'ambiente STORAGE_FOLDER è definita, tutti i files vengono
7+
* conservati nella cartella (contenuta in storage/) con quel nome.
8+
* Utile per isolare i files in configurazioni multi-GAS
9+
*/
810
function gas_storage_path($path = null, $folder = false)
911
{
1012
$ret = storage_path();
@@ -25,22 +27,22 @@ function gas_storage_path($path = null, $folder = false)
2527
return $ret;
2628
}
2729

28-
/*
29-
Questa funzione restituisce il file .env relativo all'istanza.-
30-
In caso di una installazione standalone non ci sono particolari problemi: il
31-
file .env è .env
32-
In caso di una installazione in multi-tenancy, il file dipende dal dominio
33-
HTTP che viene richiesto. Questo comportamento viene sfruttato in
34-
bootstrap/app.php per inizializzare l'istanza ad ogni richiesta HTTP.
35-
Se invece sto eseguendo uno script CLI (ad esempio: i comandi eseguiti in
36-
cron), e non posso accedere alla variabile $_SERVER (non esistendo alcuna
37-
richiesta HTTP da leggere), i possibili comportamenti sono due: o appunto ho
38-
appena eseguito il comando, dunque non è ancora stato inizializzato niente,
39-
dunque prendo per buono sempre e solo .env, altrimenti desumo l'istanza
40-
locale dal valore di APP_URL (che nel frattempo è stato letto dal file .env
41-
giusto)
42-
*/
43-
function env_file()
30+
/**
31+
* Questa funzione restituisce il file .env relativo all'istanza.-
32+
* In caso di una installazione standalone non ci sono particolari problemi: il
33+
* file .env è .env
34+
* In caso di una installazione in multi-tenancy, il file dipende dal dominio
35+
* HTTP che viene richiesto. Questo comportamento viene sfruttato in
36+
* bootstrap/app.php per inizializzare l'istanza ad ogni richiesta HTTP.
37+
* Se invece sto eseguendo uno script CLI (ad esempio: i comandi eseguiti in
38+
* cron), e non posso accedere alla variabile $_SERVER (non esistendo alcuna
39+
* richiesta HTTP da leggere), i possibili comportamenti sono due: o appunto ho
40+
* appena eseguito il comando, dunque non è ancora stato inizializzato niente,
41+
* dunque prendo per buono sempre e solo .env, altrimenti desumo l'istanza
42+
* locale dal valore di APP_URL (che nel frattempo è stato letto dal file .env
43+
* giusto)
44+
*/
45+
function envFile()
4446
{
4547
if (global_multi_installation()) {
4648
$instance = null;
@@ -49,7 +51,13 @@ function env_file()
4951
$instance = substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], '.'));
5052
}
5153
elseif (app()->runningInConsole()) {
52-
$domain = parse_url(config('app.url'), PHP_URL_HOST);
54+
/*
55+
Reminder: quando questa funzione viene invocata, il service
56+
provider che gestisce le configurazioni (normalmente acceduto
57+
con l'helper config()) non è ancora stato inizializzato.
58+
Non cadere nella tentazione di usare qui config('app.url')
59+
*/
60+
$domain = parse_url(Env::get('APP_URL'), PHP_URL_HOST);
5361
$instance = preg_replace('/^([^\.]*)\.gasdotto\.net.*$/', '\1', $domain);
5462
}
5563

code/bootstrap/app.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
.env (nominato in funzione del dominio)
2121
*/
2222
if (global_multi_installation()) {
23-
$env_file = env_file();
23+
$env_file = envFile();
2424
if (file_exists(base_path() . '/' . $env_file) == false) {
2525
exit('Non sembra esistere nessuna istanza con questo nome. Visita <a href="http://gasdotto.net">gasdotto.net</a> per registrarne gratuitamente una!');
2626
}

0 commit comments

Comments
 (0)