openstamanager/index.php

181 lines
5.8 KiB
PHP
Raw Normal View History

<?php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright (C) DevCode s.r.l.
2020-09-07 15:04:06 +02:00
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use App\Models\User;
use Illuminate\Support\Facades\Hash;
$skip_permissions = true;
include_once __DIR__.'/core.php';
$op = filter('op');
// LOGIN
switch ($op) {
case 'login':
$username = post('username');
$password = post('password');
$user = User::where('username', $username)->first();
2021-02-19 11:52:34 +01:00
if (!empty($user) && Hash::check($password, $user->getAuthPassword())) {
auth()->loginUsingId($user->id, true);
2021-02-19 11:52:34 +01:00
// Rimozione log vecchi
2019-08-28 16:58:47 +02:00
//$dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()');
2018-07-08 16:18:44 +02:00
} else {
$status = auth()->user();
//flash()->error(auth()->getStatus()[$status]['message']);
2018-07-08 16:18:44 +02:00
2021-02-19 16:17:22 +01:00
redirect('/');
}
break;
case 'logout':
auth()->logout();
2021-02-19 16:17:22 +01:00
redirect(route('login'));
break;
}
if (auth()->check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled()) {
$module = 1;
if (!empty($module)) {
redirect_legacy(base_url().'/controller.php?id_module='.$module);
} else {
redirect_legacy(base_url().'/index.php?op=logout');
}
throw new \LegacyExitException();
}
// Procedura di installazione
include_once base_dir().'/include/init/configuration.php';
// Procedura di aggiornamento
include_once base_dir().'/include/init/update.php';
// Procedura di inizializzazione
include_once base_dir().'/include/init/init.php';
$pageTitle = tr('Login');
include_once AppLegacy::filepath('include|custom|', 'top.php');
// Controllo se è una beta e in caso mostro un warning
if (Update::isBeta()) {
echo '
<div class="clearfix">&nbsp;</div>
2018-04-06 17:39:56 +02:00
<div class="alert alert-warning alert-dismissable col-md-6 col-md-push-3 text-center fade in">
<i class="fa fa-warning"></i> <b>'.tr('Attenzione!').'</b> '.tr('Stai utilizzando una versione <b>non stabile</b> di OSM.').'
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
</div>';
}
// Controllo se è una beta e in caso mostro un warning
if (false) {
echo '
<div class="box box-danger box-center" id="brute">
<div class="box-header with-border text-center">
<h3 class="box-title">'.tr('Attenzione').'</h3>
</div>
<div class="box-body text-center">
<p>'.tr('Sono stati effettuati troppi tentativi di accesso consecutivi!').'</p>
<p>'.tr('Tempo rimanente (in secondi)').': <span id="brute-timeout">'.(auth()->getBruteTimeout() + 1).'</span></p>
</div>
</div>
<script>
$(document).ready(function(){
$(".login-box").fadeOut();
brute();
});
function brute() {
var value = parseFloat($("#brute-timeout").html()) - 1;
$("#brute-timeout").html(value);
if(value > 0){
setTimeout("brute()", 1000);
} else{
$("#brute").fadeOut();
$(".login-box").fadeIn();
}
}
</script>';
}
2018-07-19 17:29:21 +02:00
if (!empty(flash()->getMessage('error'))) {
echo '
<script>
$(document).ready(function(){
$(".login-box").effect("shake");
});
</script>';
}
echo '
<form action="?op=login" method="post" class="login-box box" autocomplete="off" >
<div class="box-header with-border text-center">
<img src="'.AppLegacy::getPaths()['img'].'/logo_completo.png" class="img-responsive" alt="'.tr('OSM Logo').'">
</div>
<div class="login-box-body box-body">
<div class="form-group input-group">
2018-12-14 11:14:52 +01:00
<span class="input-group-addon before"><i class="fa fa-user"></i> </span>
2019-04-04 10:50:29 +02:00
<input type="text" name="username" autocomplete="username" class="form-control" placeholder="'.tr('Nome utente').'"';
if (isset($username)) {
echo ' value="'.$username.'"';
}
2021-02-18 18:48:44 +01:00
echo ' required>
</div>
2020-09-07 15:04:06 +02:00
2019-07-16 15:43:15 +02:00
{[ "type": "password", "name": "password", "autocomplete": "current-password", "placeholder": "'.tr('Password').'", "icon-before": "<i class=\"fa fa-lock\"></i>" ]}
2020-09-07 15:04:06 +02:00
2019-10-03 12:09:14 +02:00
<div class="text-right">
<small><a href="'.base_url().'/reset.php">'.tr('Password dimenticata?').'</a></small>
2019-07-16 15:43:15 +02:00
</div>
</div>
2020-09-07 15:04:06 +02:00
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" id="login" class="btn btn-danger btn-block">'.tr('Accedi').'</button>
</div>
<!-- box-footer -->
</form>
<!-- /.box -->
<script>
$(document).ready( function(){
$("#login").click(function(){
2019-08-26 18:02:05 +02:00
$("#login").text("'.tr('Autenticazione').'...");
});
if( $("input[name=username]").val() == ""){
$("input[name=username]").focus();
}
else{
$("input[name=password]").focus();
}
});
</script>';
include_once AppLegacy::filepath('include|custom|', 'bottom.php');