mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 19:40:44 +01:00
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/>.
|
||||
*/
|
||||
|
||||
// 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');
|
||||
|
||||
|
@ -435,7 +435,7 @@ if (auth()->check()) {
|
||||
<i class="fa fa-info"></i>
|
||||
</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>
|
||||
</a></li>
|
||||
</ul>
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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`,
|
||||
|
@ -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 = [];
|
||||
|
@ -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', [
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -43,6 +43,6 @@ class Resource
|
||||
|
||||
public function getUser()
|
||||
{
|
||||
return auth()->getUser();
|
||||
return auth()->user();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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');
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user