2017-08-04 16:28:16 +02:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
$skip_permissions = true;
|
|
|
|
|
include_once __DIR__.'/core.php';
|
|
|
|
|
|
|
|
|
|
$op = filter('op');
|
|
|
|
|
|
|
|
|
|
// LOGIN
|
|
|
|
|
switch ($op) {
|
|
|
|
|
case 'login':
|
2017-09-12 09:57:02 +02:00
|
|
|
|
$username = post('username');
|
|
|
|
|
$password = post('password');
|
2018-03-03 15:03:28 +01:00
|
|
|
|
|
2017-08-07 13:07:18 +02:00
|
|
|
|
if ($dbo->isConnected() && $dbo->isInstalled() && Auth::getInstance()->attempt($username, $password)) {
|
2017-08-04 16:28:16 +02:00
|
|
|
|
$_SESSION['keep_alive'] = (filter('keep_alive') != null);
|
|
|
|
|
|
2018-07-10 12:07:48 +02:00
|
|
|
|
// Rimozione log vecchi
|
|
|
|
|
$dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()');
|
|
|
|
|
|
2017-08-04 16:28:16 +02:00
|
|
|
|
// Auto backup del database giornaliero
|
2018-07-08 18:11:17 +02:00
|
|
|
|
if (setting('Backup automatico')) {
|
2018-03-03 15:03:28 +01:00
|
|
|
|
$result = Backup::daily();
|
2017-08-04 16:28:16 +02:00
|
|
|
|
|
2018-03-03 15:03:28 +01:00
|
|
|
|
if (!isset($result)) {
|
2018-07-19 17:29:21 +02:00
|
|
|
|
flash()->info(tr('Backup saltato perché già esistente!'));
|
2018-03-03 15:03:28 +01:00
|
|
|
|
} elseif (!empty($result)) {
|
2018-07-19 17:29:21 +02:00
|
|
|
|
flash()->info(tr('Backup automatico eseguito correttamente!'));
|
2017-09-08 13:24:48 +02:00
|
|
|
|
} else {
|
2018-07-19 17:29:21 +02:00
|
|
|
|
flash()->error(tr('Errore durante la generazione del backup automatico!'));
|
2017-08-04 16:28:16 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2018-07-08 16:18:44 +02:00
|
|
|
|
} else {
|
|
|
|
|
$status = Auth::getInstance()->getCurrentStatus();
|
|
|
|
|
|
2018-07-19 17:29:21 +02:00
|
|
|
|
flash()->error(Auth::getStatus()[$status]['message']);
|
2018-07-08 16:18:44 +02:00
|
|
|
|
|
|
|
|
|
redirect(ROOTDIR.'/index.php');
|
|
|
|
|
exit();
|
2017-08-04 16:28:16 +02:00
|
|
|
|
}
|
2018-03-03 15:03:28 +01:00
|
|
|
|
|
2017-08-04 16:28:16 +02:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'logout':
|
|
|
|
|
Auth::logout();
|
|
|
|
|
|
|
|
|
|
redirect(ROOTDIR.'/index.php');
|
|
|
|
|
exit();
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Auth::check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled()) {
|
2017-08-07 13:07:18 +02:00
|
|
|
|
$module = Auth::firstModule();
|
2017-08-04 16:28:16 +02:00
|
|
|
|
|
|
|
|
|
if (!empty($module)) {
|
2018-07-09 11:11:54 +02:00
|
|
|
|
redirect(ROOTDIR.'/controller.php?id_module='.$module);
|
2017-08-04 16:28:16 +02:00
|
|
|
|
} else {
|
|
|
|
|
redirect(ROOTDIR.'/index.php?op=logout');
|
|
|
|
|
}
|
|
|
|
|
exit();
|
|
|
|
|
}
|
|
|
|
|
|
2018-03-03 15:03:28 +01:00
|
|
|
|
// Procedura di installazione
|
2018-07-03 11:12:32 +02:00
|
|
|
|
include_once $docroot.'/include/init/configuration.php';
|
2017-08-04 16:28:16 +02:00
|
|
|
|
|
2018-03-03 15:03:28 +01:00
|
|
|
|
// Procedura di aggiornamento
|
2018-07-03 11:12:32 +02:00
|
|
|
|
include_once $docroot.'/include/init/update.php';
|
|
|
|
|
|
|
|
|
|
// Procedura di inizializzazione
|
|
|
|
|
include_once $docroot.'/include/init/init.php';
|
2017-08-04 16:28:16 +02:00
|
|
|
|
|
2017-09-04 12:02:29 +02:00
|
|
|
|
$pageTitle = tr('Login');
|
2017-08-04 16:28:16 +02:00
|
|
|
|
|
2018-06-26 09:41:43 +02:00
|
|
|
|
include_once App::filepath('include|custom|', 'top.php');
|
2017-08-04 16:28:16 +02:00
|
|
|
|
|
|
|
|
|
// Controllo se è una beta e in caso mostro un warning
|
2017-08-28 15:29:03 +02:00
|
|
|
|
if (str_contains($version, 'beta')) {
|
2017-08-04 16:28:16 +02:00
|
|
|
|
echo '
|
2018-04-13 17:46:13 +02:00
|
|
|
|
<div class="clearfix"> </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">
|
2017-09-04 12:02:29 +02:00
|
|
|
|
<i class="fa fa-warning"></i> <b>'.tr('Attenzione!').'</b> '.tr('Stai utilizzando una versione <b>non stabile</b> di OSM.').'
|
2017-08-04 16:28:16 +02:00
|
|
|
|
|
|
|
|
|
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
|
|
|
|
|
</div>';
|
|
|
|
|
}
|
|
|
|
|
|
2017-09-04 10:24:44 +02:00
|
|
|
|
// Controllo se è una beta e in caso mostro un warning
|
|
|
|
|
if (Auth::isBrute()) {
|
|
|
|
|
echo '
|
|
|
|
|
<div class="box box-danger box-center" id="brute">
|
|
|
|
|
<div class="box-header with-border text-center">
|
2017-09-04 12:02:29 +02:00
|
|
|
|
<h3 class="box-title">'.tr('Attenzione').'</h3>
|
2017-09-04 10:24:44 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="box-body text-center">
|
2017-09-04 12:02:29 +02:00
|
|
|
|
<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>
|
2017-09-04 10:24:44 +02:00
|
|
|
|
</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'))) {
|
2017-08-04 16:28:16 +02:00
|
|
|
|
echo '
|
|
|
|
|
<script>
|
|
|
|
|
$(document).ready(function(){
|
|
|
|
|
$(".login-box").effect("shake");
|
|
|
|
|
});
|
|
|
|
|
</script>';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
echo '
|
|
|
|
|
<form action="?op=login" method="post" class="login-box box">
|
|
|
|
|
<div class="box-header with-border text-center">
|
2018-02-14 11:10:03 +01:00
|
|
|
|
<img src="'.App::getPaths()['img'].'/logo.png" alt="'.tr('OSM Logo').'">
|
2017-09-04 12:02:29 +02:00
|
|
|
|
<h3 class="box-title">'.tr('OpenSTAManager').'</h3>
|
2017-08-04 16:28:16 +02:00
|
|
|
|
</div>
|
2018-04-13 17:46:13 +02:00
|
|
|
|
|
2017-08-04 16:28:16 +02:00
|
|
|
|
<div class="login-box-body box-body">
|
|
|
|
|
<div class="form-group input-group">
|
|
|
|
|
<span class="input-group-addon"><i class="fa fa-user"></i> </span>
|
2017-09-04 12:02:29 +02:00
|
|
|
|
<input type="text" name="username" autocomplete="off" class="form-control" placeholder="'.tr('Nome utente').'"';
|
2017-08-04 16:28:16 +02:00
|
|
|
|
if (isset($username)) {
|
|
|
|
|
echo ' value="'.$username.'"';
|
|
|
|
|
}
|
|
|
|
|
echo'>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group input-group">
|
|
|
|
|
<span class="input-group-addon"><i class="fa fa-lock"></i> </span>
|
2017-09-04 12:02:29 +02:00
|
|
|
|
<input type="password" name="password" autocomplete="off" class="form-control" placeholder="'.tr('Password').'">
|
2017-08-04 16:28:16 +02:00
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<input type="checkbox" name="keep_alive"';
|
|
|
|
|
if (filter('keep_alive') != null) {
|
|
|
|
|
echo ' checked';
|
|
|
|
|
}
|
2017-09-04 12:02:29 +02:00
|
|
|
|
echo '/> '.tr('Mantieni attiva la sessione').'
|
2017-08-04 16:28:16 +02:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- /.box-body -->
|
|
|
|
|
<div class="box-footer">
|
2017-09-04 12:02:29 +02:00
|
|
|
|
<button type="submit" id="login" class="btn btn-danger btn-block">'.tr('Accedi').'</button>
|
2017-08-04 16:28:16 +02:00
|
|
|
|
</div>
|
|
|
|
|
<!-- box-footer -->
|
|
|
|
|
</form>
|
|
|
|
|
<!-- /.box -->
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
$(document).ready( function(){
|
|
|
|
|
$("#login").click(function(){
|
|
|
|
|
$("#login").text("';
|
2018-07-09 10:44:54 +02:00
|
|
|
|
if ($dbo->isInstalled() && !Update::isUpdateAvailable() && setting('Backup automatico')) {
|
2017-09-04 12:02:29 +02:00
|
|
|
|
echo tr('Backup automatico in corso');
|
2017-08-04 16:28:16 +02:00
|
|
|
|
} else {
|
2017-09-04 12:02:29 +02:00
|
|
|
|
echo tr('Autenticazione');
|
2017-08-04 16:28:16 +02:00
|
|
|
|
}
|
|
|
|
|
echo '...");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if( $("input[name=username]").val() == ""){
|
|
|
|
|
$("input[name=username]").focus();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
$("input[name=password]").focus();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
</script>';
|
|
|
|
|
|
2018-06-26 09:41:43 +02:00
|
|
|
|
include_once App::filepath('include|custom|', 'bottom.php');
|