diff --git a/core.php b/core.php
index 5dd78ae10..8136aa9d9 100755
--- a/core.php
+++ b/core.php
@@ -17,9 +17,6 @@
* along with this program. If not, see .
*/
-// Rimozione header X-Powered-By
-header_remove('X-Powered-By');
-
// Impostazioni di configurazione PHP
date_default_timezone_set('Europe/Rome');
@@ -71,7 +68,7 @@ use Monolog\Handler\RotatingFileHandler;
use Monolog\Handler\StreamHandler;
$handlers = [];
-if (!API\Response::isAPIRequest()) {
+if (!$api_request) {
// File di log di base (logs/error.log, logs/setup.log)
$handlers[] = new StreamHandler(base_dir().'/logs/error.log', Monolog\Logger::ERROR);
$handlers[] = new StreamHandler(base_dir().'/logs/setup.log', Monolog\Logger::EMERGENCY);
@@ -153,7 +150,7 @@ $revision = Update::getRevision();
/* ACCESSO E INSTALLAZIONE */
// Controllo sulla presenza dei permessi di accesso basilari
-$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (auth()->check() || API\Response::isAPIRequest());
+$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (auth()->check() || $api_request);
if (!empty($skip_permissions)) {
Permissions::skip();
@@ -170,7 +167,7 @@ if (!$continue && getURLPath() != slashes(base_url().'/index.php') && !Permissio
/* INIZIALIZZAZIONE GENERALE */
// Operazione aggiuntive (richieste non API)
-if (!API\Response::isAPIRequest()) {
+if (!$api_request) {
// Impostazioni di Content-Type e Charset Header
header('Content-Type: text/html; charset=UTF-8');
diff --git a/include/top.php b/include/top.php
index d25ae0d5f..08e23ffe9 100755
--- a/include/top.php
+++ b/include/top.php
@@ -435,7 +435,7 @@ if (auth()->check()) {
-
+
diff --git a/index.php b/index.php
index 2d242be12..53dc2bb29 100755
--- a/index.php
+++ b/index.php
@@ -42,8 +42,7 @@ switch ($op) {
//flash()->error(auth()->getStatus()[$status]['message']);
- redirect_legacy(base_url().'/index.php');
- throw new \App\Exceptions\LegacyExitException();
+ redirect('/');
}
break;
@@ -51,8 +50,7 @@ switch ($op) {
case 'logout':
auth()->logout();
- redirect_legacy(base_url().'/index.php');
- throw new \App\Exceptions\LegacyExitException();
+ redirect(route('login'));
break;
}
diff --git a/modules/interventi/src/API/v1/Interventi.php b/modules/interventi/src/API/v1/Interventi.php
index fd62191a5..741530c91 100755
--- a/modules/interventi/src/API/v1/Interventi.php
+++ b/modules/interventi/src/API/v1/Interventi.php
@@ -38,7 +38,7 @@ class Interventi extends Resource implements RetrieveInterface, CreateInterface,
$today = date('Y-m-d');
$period_end = date('Y-m-d', strtotime($today.' +7 days'));
$period_start = date('Y-m-d', strtotime($today.' -2 months'));
- $user = auth()->user();
+ $user = $this->getUser();
// AND `in_statiintervento`.`is_completato`=0
$query = "SELECT `in_interventi`.`id`,
diff --git a/modules/utenti/info.php b/modules/utenti/info.php
index c4a1e06d1..c4f46895f 100755
--- a/modules/utenti/info.php
+++ b/modules/utenti/info.php
@@ -29,7 +29,9 @@ if (post('op') == 'self_update') {
}
$user = auth()->user();
-$token = auth()->getToken();
+
+$tokens = $user->getApiTokens();
+$token = $tokens[0]['token'];
$rs = $dbo->fetchArray('SELECT * FROM an_anagrafiche WHERE idanagrafica = '.prepare($user['idanagrafica']));
$anagrafica = [];
diff --git a/modules/utenti/src/API/v1/Login.php b/modules/utenti/src/API/v1/Login.php
index 0b8bf6892..8eb2b5701 100755
--- a/modules/utenti/src/API/v1/Login.php
+++ b/modules/utenti/src/API/v1/Login.php
@@ -32,9 +32,11 @@ class Login extends Resource implements CreateInterface
$database = database();
// Controllo sulle credenziali
- if (auth()->attempt($request['username'], $request['password'])) {
+ if (auth()->once(['username' => $request['username'], 'password' => $request['password']])) {
$user = $this->getUser();
- $token = auth()->getToken();
+
+ $tokens = $user->getApiTokens();
+ $token = $tokens[0]['token'];
// Informazioni da restituire tramite l'API
$response['user'] = $database->fetchOne('SELECT `an_anagrafiche`.`idanagrafica` AS idanagrafica, `ragione_sociale`, `codice`, `piva`, `codice_fiscale`, `indirizzo`, `citta`, `provincia`, (SELECT `nome` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione, `telefono`, `fax`, `cellulare`, `an_anagrafiche`.`email` FROM `zz_users` LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica` WHERE `id` = :id', [
diff --git a/src/API/App/v1/Interventi.php b/src/API/App/v1/Interventi.php
index 5b67b9453..3fceee4f1 100644
--- a/src/API/App/v1/Interventi.php
+++ b/src/API/App/v1/Interventi.php
@@ -56,7 +56,7 @@ class Interventi extends AppResource
$remove_start = $remove_end->copy()->subMonths(2);
// Informazioni sull'utente
- $id_tecnico = auth()->user()->id_anagrafica;
+ $id_tecnico = $this->getUser()->id_anagrafica;
$query = 'SELECT in_interventi.id FROM in_interventi WHERE
deleted_at IS NOT NULL
@@ -97,7 +97,7 @@ class Interventi extends AppResource
$end = $date['end'];
// Informazioni sull'utente
- $id_tecnico = auth()->user()->id_anagrafica;
+ $id_tecnico = $this->getUser()->id_anagrafica;
$query = 'SELECT
in_interventi.id,
diff --git a/src/API/App/v1/Login.php b/src/API/App/v1/Login.php
index 63a287bfd..0eefed731 100644
--- a/src/API/App/v1/Login.php
+++ b/src/API/App/v1/Login.php
@@ -32,9 +32,11 @@ class Login extends Resource implements CreateInterface
$database = database();
// Controllo sulle credenziali
- if (auth()->attempt($request['username'], $request['password'])) {
+ if (auth()->once(['username' => $request['username'], 'password' => $request['password']])) {
$user = $this->getUser();
- $token = auth()->getToken();
+
+ $tokens = $user->getApiTokens();
+ $token = $tokens[0]['token'];
// Informazioni sull'utente, strettamente collegato ad una anagrafica di tipo Tecnico
$utente = $database->fetchOne("SELECT
diff --git a/src/API/App/v1/RigheInterventi.php b/src/API/App/v1/RigheInterventi.php
index 162a7ff45..c06a5be3f 100644
--- a/src/API/App/v1/RigheInterventi.php
+++ b/src/API/App/v1/RigheInterventi.php
@@ -41,7 +41,7 @@ class RigheInterventi extends AppResource
$end = $today->copy()->addMonth(1);
// Informazioni sull'utente
- $user = auth()->user();
+ $user = $this->getUser();
$id_tecnico = $user->id_anagrafica;
// Elenco di interventi di interesse
@@ -75,7 +75,7 @@ class RigheInterventi extends AppResource
$end = $today->copy()->addMonth(1);
// Informazioni sull'utente
- $user = auth()->user();
+ $user = $this->getUser();
$id_tecnico = $user->id_anagrafica;
// Elenco di interventi di interesse
diff --git a/src/API/App/v1/SessioniInterventi.php b/src/API/App/v1/SessioniInterventi.php
index b42c543b3..d970352b5 100644
--- a/src/API/App/v1/SessioniInterventi.php
+++ b/src/API/App/v1/SessioniInterventi.php
@@ -37,7 +37,7 @@ class SessioniInterventi extends AppResource
$end = $today->copy()->addMonth(1);
// Informazioni sull'utente
- $user = auth()->user();
+ $user = $this->getUser();
$id_tecnico = $user->id_anagrafica;
// Elenco di interventi di interesse
@@ -76,7 +76,7 @@ class SessioniInterventi extends AppResource
$end = $today->copy()->addMonth(1);
// Informazioni sull'utente
- $user = auth()->user();
+ $user = $this->getUser();
$id_tecnico = $user->id_anagrafica;
// Elenco di interventi di interesse
@@ -139,7 +139,7 @@ class SessioniInterventi extends AppResource
public function createRecord($data)
{
// Informazioni sull'utente
- $user = auth()->user();
+ $user = $this->getUser();
$id_tecnico = $user->id_anagrafica;
// Informazioni di base
diff --git a/src/API/Resource.php b/src/API/Resource.php
index 6b72f9de4..3ea307666 100755
--- a/src/API/Resource.php
+++ b/src/API/Resource.php
@@ -43,6 +43,6 @@ class Resource
public function getUser()
{
- return auth()->getUser();
+ return auth()->user();
}
}
diff --git a/src/API/Response.php b/src/API/Response.php
index 805e4d5c8..36e9b3ad1 100755
--- a/src/API/Response.php
+++ b/src/API/Response.php
@@ -22,9 +22,11 @@ namespace API;
use API\Exceptions\InternalError;
use API\Exceptions\ResourceNotFound;
use API\Exceptions\ServiceError;
+use App\Models\User;
use Auth;
use Exception;
use Filter;
+use Illuminate\Support\Facades\Request;
use Models\ApiResource as Resource;
/**
@@ -96,6 +98,20 @@ class Response
$request = self::getRequest();
$version = $request['version'];
+ // Login sulla base del token
+ if (!empty($request['token'])) {
+ $token = $request['token'];
+
+ $user = database()->fetchArray('SELECT `id_utente` FROM `zz_tokens` WHERE `enabled` = 1 AND `token` = :token', [
+ ':token' => $token,
+ ]);
+
+ $id = !empty($user) ? $user[0]['id_utente'] : null;
+ if (!empty($id)) {
+ auth()->onceUsingId($id);
+ }
+ }
+
// Controllo sull'accesso
if (!auth()->check() && $request['resource'] != 'login') {
return self::response([
@@ -224,31 +240,28 @@ class Response
*/
public static function getRequest($raw = false)
{
- $request = [];
+ $request = Request::instance();
+ $content = $request->getContent();
- if (self::isAPIRequest()) {
- $request = file_get_contents('php://input');
+ if (empty($raw)) {
+ $content = $request->all();
+ $content = Filter::sanitize($content);
- if (empty($raw)) {
- $request = (array) json_decode($request, true);
- $request = Filter::sanitize($request);
+ // Fallback per input standard vuoto (richiesta da browser o upload file)
+ if (empty($content)) { // $_SERVER['REQUEST_METHOD'] == 'GET'
+ $content = $request->query();
+ }
- // Fallback per input standard vuoto (richiesta da browser o upload file)
- if (empty($request)) { // $_SERVER['REQUEST_METHOD'] == 'GET'
- $request = Filter::getGET();
- }
+ if (empty($content['token'])) {
+ $content['token'] = '';
+ }
- if (empty($request['token'])) {
- $request['token'] = '';
- }
-
- if (empty($request['version'])) {
- $request['version'] = 'v1';
- }
+ if (empty($content['version'])) {
+ $content['version'] = 'v1';
}
}
- return $request;
+ return $content;
}
/**
diff --git a/src/Models/Module.php b/src/Models/Module.php
index c9561c28b..d32f2c4f6 100755
--- a/src/Models/Module.php
+++ b/src/Models/Module.php
@@ -68,6 +68,7 @@ class Module extends Model
{
if (!isset($this->variables[$id_record])) {
$dbo = $database = database();
+ $variables = [];
// Lettura delle variabili nei singoli moduli
$path = $this->filepath('variables.php');
diff --git a/src/Prints.php b/src/Prints.php
index 773a3979c..ab15d4eeb 100755
--- a/src/Prints.php
+++ b/src/Prints.php
@@ -545,8 +545,8 @@ class Prints
// Inclusione dei fogli di stile CSS
$styles = [
- App::filepath('templates/base|custom|', 'bootstrap.css'),
- App::filepath('templates/base|custom|', 'style.css'),
+ AppLegacy::filepath('templates/base|custom|', 'bootstrap.css'),
+ AppLegacy::filepath('templates/base|custom|', 'style.css'),
];
foreach ($styles as $value) {