Correzioni per funzionamento API
This commit is contained in:
parent
e6e508b96f
commit
83a0652f71
9
core.php
9
core.php
|
@ -17,9 +17,6 @@
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Rimozione header X-Powered-By
|
|
||||||
header_remove('X-Powered-By');
|
|
||||||
|
|
||||||
// Impostazioni di configurazione PHP
|
// Impostazioni di configurazione PHP
|
||||||
date_default_timezone_set('Europe/Rome');
|
date_default_timezone_set('Europe/Rome');
|
||||||
|
|
||||||
|
@ -71,7 +68,7 @@ use Monolog\Handler\RotatingFileHandler;
|
||||||
use Monolog\Handler\StreamHandler;
|
use Monolog\Handler\StreamHandler;
|
||||||
|
|
||||||
$handlers = [];
|
$handlers = [];
|
||||||
if (!API\Response::isAPIRequest()) {
|
if (!$api_request) {
|
||||||
// File di log di base (logs/error.log, logs/setup.log)
|
// 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/error.log', Monolog\Logger::ERROR);
|
||||||
$handlers[] = new StreamHandler(base_dir().'/logs/setup.log', Monolog\Logger::EMERGENCY);
|
$handlers[] = new StreamHandler(base_dir().'/logs/setup.log', Monolog\Logger::EMERGENCY);
|
||||||
|
@ -153,7 +150,7 @@ $revision = Update::getRevision();
|
||||||
|
|
||||||
/* ACCESSO E INSTALLAZIONE */
|
/* ACCESSO E INSTALLAZIONE */
|
||||||
// Controllo sulla presenza dei permessi di accesso basilari
|
// 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)) {
|
if (!empty($skip_permissions)) {
|
||||||
Permissions::skip();
|
Permissions::skip();
|
||||||
|
@ -170,7 +167,7 @@ if (!$continue && getURLPath() != slashes(base_url().'/index.php') && !Permissio
|
||||||
|
|
||||||
/* INIZIALIZZAZIONE GENERALE */
|
/* INIZIALIZZAZIONE GENERALE */
|
||||||
// Operazione aggiuntive (richieste non API)
|
// Operazione aggiuntive (richieste non API)
|
||||||
if (!API\Response::isAPIRequest()) {
|
if (!$api_request) {
|
||||||
// Impostazioni di Content-Type e Charset Header
|
// Impostazioni di Content-Type e Charset Header
|
||||||
header('Content-Type: text/html; charset=UTF-8');
|
header('Content-Type: text/html; charset=UTF-8');
|
||||||
|
|
||||||
|
|
|
@ -435,7 +435,7 @@ if (auth()->check()) {
|
||||||
<i class="fa fa-info"></i>
|
<i class="fa fa-info"></i>
|
||||||
</a></li>
|
</a></li>
|
||||||
|
|
||||||
<li class="nav-button"><a href="'.base_url().'/index.php?op=logout" onclick="sessionStorage.clear()" class="bg-red tip" title="'.tr('Esci').'">
|
<li class="nav-button"><a href="'.route('logout').'" onclick="sessionStorage.clear()" class="bg-red tip" title="'.tr('Esci').'">
|
||||||
<i class="fa fa-power-off"></i>
|
<i class="fa fa-power-off"></i>
|
||||||
</a></li>
|
</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -42,8 +42,7 @@ switch ($op) {
|
||||||
|
|
||||||
//flash()->error(auth()->getStatus()[$status]['message']);
|
//flash()->error(auth()->getStatus()[$status]['message']);
|
||||||
|
|
||||||
redirect_legacy(base_url().'/index.php');
|
redirect('/');
|
||||||
throw new \App\Exceptions\LegacyExitException();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -51,8 +50,7 @@ switch ($op) {
|
||||||
case 'logout':
|
case 'logout':
|
||||||
auth()->logout();
|
auth()->logout();
|
||||||
|
|
||||||
redirect_legacy(base_url().'/index.php');
|
redirect(route('login'));
|
||||||
throw new \App\Exceptions\LegacyExitException();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ class Interventi extends Resource implements RetrieveInterface, CreateInterface,
|
||||||
$today = date('Y-m-d');
|
$today = date('Y-m-d');
|
||||||
$period_end = date('Y-m-d', strtotime($today.' +7 days'));
|
$period_end = date('Y-m-d', strtotime($today.' +7 days'));
|
||||||
$period_start = date('Y-m-d', strtotime($today.' -2 months'));
|
$period_start = date('Y-m-d', strtotime($today.' -2 months'));
|
||||||
$user = auth()->user();
|
$user = $this->getUser();
|
||||||
|
|
||||||
// AND `in_statiintervento`.`is_completato`=0
|
// AND `in_statiintervento`.`is_completato`=0
|
||||||
$query = "SELECT `in_interventi`.`id`,
|
$query = "SELECT `in_interventi`.`id`,
|
||||||
|
|
|
@ -29,7 +29,9 @@ if (post('op') == 'self_update') {
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = auth()->user();
|
$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']));
|
$rs = $dbo->fetchArray('SELECT * FROM an_anagrafiche WHERE idanagrafica = '.prepare($user['idanagrafica']));
|
||||||
$anagrafica = [];
|
$anagrafica = [];
|
||||||
|
|
|
@ -32,9 +32,11 @@ class Login extends Resource implements CreateInterface
|
||||||
$database = database();
|
$database = database();
|
||||||
|
|
||||||
// Controllo sulle credenziali
|
// Controllo sulle credenziali
|
||||||
if (auth()->attempt($request['username'], $request['password'])) {
|
if (auth()->once(['username' => $request['username'], 'password' => $request['password']])) {
|
||||||
$user = $this->getUser();
|
$user = $this->getUser();
|
||||||
$token = auth()->getToken();
|
|
||||||
|
$tokens = $user->getApiTokens();
|
||||||
|
$token = $tokens[0]['token'];
|
||||||
|
|
||||||
// Informazioni da restituire tramite l'API
|
// 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', [
|
$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', [
|
||||||
|
|
|
@ -56,7 +56,7 @@ class Interventi extends AppResource
|
||||||
$remove_start = $remove_end->copy()->subMonths(2);
|
$remove_start = $remove_end->copy()->subMonths(2);
|
||||||
|
|
||||||
// Informazioni sull'utente
|
// Informazioni sull'utente
|
||||||
$id_tecnico = auth()->user()->id_anagrafica;
|
$id_tecnico = $this->getUser()->id_anagrafica;
|
||||||
|
|
||||||
$query = 'SELECT in_interventi.id FROM in_interventi WHERE
|
$query = 'SELECT in_interventi.id FROM in_interventi WHERE
|
||||||
deleted_at IS NOT NULL
|
deleted_at IS NOT NULL
|
||||||
|
@ -97,7 +97,7 @@ class Interventi extends AppResource
|
||||||
$end = $date['end'];
|
$end = $date['end'];
|
||||||
|
|
||||||
// Informazioni sull'utente
|
// Informazioni sull'utente
|
||||||
$id_tecnico = auth()->user()->id_anagrafica;
|
$id_tecnico = $this->getUser()->id_anagrafica;
|
||||||
|
|
||||||
$query = 'SELECT
|
$query = 'SELECT
|
||||||
in_interventi.id,
|
in_interventi.id,
|
||||||
|
|
|
@ -32,9 +32,11 @@ class Login extends Resource implements CreateInterface
|
||||||
$database = database();
|
$database = database();
|
||||||
|
|
||||||
// Controllo sulle credenziali
|
// Controllo sulle credenziali
|
||||||
if (auth()->attempt($request['username'], $request['password'])) {
|
if (auth()->once(['username' => $request['username'], 'password' => $request['password']])) {
|
||||||
$user = $this->getUser();
|
$user = $this->getUser();
|
||||||
$token = auth()->getToken();
|
|
||||||
|
$tokens = $user->getApiTokens();
|
||||||
|
$token = $tokens[0]['token'];
|
||||||
|
|
||||||
// Informazioni sull'utente, strettamente collegato ad una anagrafica di tipo Tecnico
|
// Informazioni sull'utente, strettamente collegato ad una anagrafica di tipo Tecnico
|
||||||
$utente = $database->fetchOne("SELECT
|
$utente = $database->fetchOne("SELECT
|
||||||
|
|
|
@ -41,7 +41,7 @@ class RigheInterventi extends AppResource
|
||||||
$end = $today->copy()->addMonth(1);
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
// Informazioni sull'utente
|
// Informazioni sull'utente
|
||||||
$user = auth()->user();
|
$user = $this->getUser();
|
||||||
$id_tecnico = $user->id_anagrafica;
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
// Elenco di interventi di interesse
|
// Elenco di interventi di interesse
|
||||||
|
@ -75,7 +75,7 @@ class RigheInterventi extends AppResource
|
||||||
$end = $today->copy()->addMonth(1);
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
// Informazioni sull'utente
|
// Informazioni sull'utente
|
||||||
$user = auth()->user();
|
$user = $this->getUser();
|
||||||
$id_tecnico = $user->id_anagrafica;
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
// Elenco di interventi di interesse
|
// Elenco di interventi di interesse
|
||||||
|
|
|
@ -37,7 +37,7 @@ class SessioniInterventi extends AppResource
|
||||||
$end = $today->copy()->addMonth(1);
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
// Informazioni sull'utente
|
// Informazioni sull'utente
|
||||||
$user = auth()->user();
|
$user = $this->getUser();
|
||||||
$id_tecnico = $user->id_anagrafica;
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
// Elenco di interventi di interesse
|
// Elenco di interventi di interesse
|
||||||
|
@ -76,7 +76,7 @@ class SessioniInterventi extends AppResource
|
||||||
$end = $today->copy()->addMonth(1);
|
$end = $today->copy()->addMonth(1);
|
||||||
|
|
||||||
// Informazioni sull'utente
|
// Informazioni sull'utente
|
||||||
$user = auth()->user();
|
$user = $this->getUser();
|
||||||
$id_tecnico = $user->id_anagrafica;
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
// Elenco di interventi di interesse
|
// Elenco di interventi di interesse
|
||||||
|
@ -139,7 +139,7 @@ class SessioniInterventi extends AppResource
|
||||||
public function createRecord($data)
|
public function createRecord($data)
|
||||||
{
|
{
|
||||||
// Informazioni sull'utente
|
// Informazioni sull'utente
|
||||||
$user = auth()->user();
|
$user = $this->getUser();
|
||||||
$id_tecnico = $user->id_anagrafica;
|
$id_tecnico = $user->id_anagrafica;
|
||||||
|
|
||||||
// Informazioni di base
|
// Informazioni di base
|
||||||
|
|
|
@ -43,6 +43,6 @@ class Resource
|
||||||
|
|
||||||
public function getUser()
|
public function getUser()
|
||||||
{
|
{
|
||||||
return auth()->getUser();
|
return auth()->user();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,9 +22,11 @@ namespace API;
|
||||||
use API\Exceptions\InternalError;
|
use API\Exceptions\InternalError;
|
||||||
use API\Exceptions\ResourceNotFound;
|
use API\Exceptions\ResourceNotFound;
|
||||||
use API\Exceptions\ServiceError;
|
use API\Exceptions\ServiceError;
|
||||||
|
use App\Models\User;
|
||||||
use Auth;
|
use Auth;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Filter;
|
use Filter;
|
||||||
|
use Illuminate\Support\Facades\Request;
|
||||||
use Models\ApiResource as Resource;
|
use Models\ApiResource as Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,6 +98,20 @@ class Response
|
||||||
$request = self::getRequest();
|
$request = self::getRequest();
|
||||||
$version = $request['version'];
|
$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
|
// Controllo sull'accesso
|
||||||
if (!auth()->check() && $request['resource'] != 'login') {
|
if (!auth()->check() && $request['resource'] != 'login') {
|
||||||
return self::response([
|
return self::response([
|
||||||
|
@ -224,31 +240,28 @@ class Response
|
||||||
*/
|
*/
|
||||||
public static function getRequest($raw = false)
|
public static function getRequest($raw = false)
|
||||||
{
|
{
|
||||||
$request = [];
|
$request = Request::instance();
|
||||||
|
$content = $request->getContent();
|
||||||
|
|
||||||
if (self::isAPIRequest()) {
|
if (empty($raw)) {
|
||||||
$request = file_get_contents('php://input');
|
$content = $request->all();
|
||||||
|
$content = Filter::sanitize($content);
|
||||||
|
|
||||||
if (empty($raw)) {
|
// Fallback per input standard vuoto (richiesta da browser o upload file)
|
||||||
$request = (array) json_decode($request, true);
|
if (empty($content)) { // $_SERVER['REQUEST_METHOD'] == 'GET'
|
||||||
$request = Filter::sanitize($request);
|
$content = $request->query();
|
||||||
|
}
|
||||||
|
|
||||||
// Fallback per input standard vuoto (richiesta da browser o upload file)
|
if (empty($content['token'])) {
|
||||||
if (empty($request)) { // $_SERVER['REQUEST_METHOD'] == 'GET'
|
$content['token'] = '';
|
||||||
$request = Filter::getGET();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($request['token'])) {
|
if (empty($content['version'])) {
|
||||||
$request['token'] = '';
|
$content['version'] = 'v1';
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($request['version'])) {
|
|
||||||
$request['version'] = 'v1';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $request;
|
return $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -68,6 +68,7 @@ class Module extends Model
|
||||||
{
|
{
|
||||||
if (!isset($this->variables[$id_record])) {
|
if (!isset($this->variables[$id_record])) {
|
||||||
$dbo = $database = database();
|
$dbo = $database = database();
|
||||||
|
$variables = [];
|
||||||
|
|
||||||
// Lettura delle variabili nei singoli moduli
|
// Lettura delle variabili nei singoli moduli
|
||||||
$path = $this->filepath('variables.php');
|
$path = $this->filepath('variables.php');
|
||||||
|
|
|
@ -545,8 +545,8 @@ class Prints
|
||||||
|
|
||||||
// Inclusione dei fogli di stile CSS
|
// Inclusione dei fogli di stile CSS
|
||||||
$styles = [
|
$styles = [
|
||||||
App::filepath('templates/base|custom|', 'bootstrap.css'),
|
AppLegacy::filepath('templates/base|custom|', 'bootstrap.css'),
|
||||||
App::filepath('templates/base|custom|', 'style.css'),
|
AppLegacy::filepath('templates/base|custom|', 'style.css'),
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($styles as $value) {
|
foreach ($styles as $value) {
|
||||||
|
|
Loading…
Reference in New Issue