Files
emonev/apps/php/login.php
T

93 lines
4.0 KiB
PHP

<?php
/*******************************************************************
Module : /apps/php/login.php
Desc. : PHP - Halaman Proses Login
Created By : Siau Pheng ([email protected]).
Created Date : January 5th, 2008.
Last Modified : June 28th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
require_once(__DIR__."/func/emonev.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
$db = $db ?? new MySQL();
$auth = new Auth($db);
$ajson = [];
$mode = Param::Get("mode");
$aapp = $_SESSION['__WEB_APP'];
if ($mode == "login") {
$auser = [];
$auth->set_id_reg($aapp['PARENT_CODE']);
if ($auth->user_check(Param::Get("Username"), Param::Get("Password"))) {
$auser = $auth->user_data(Param::Get("Username"));
// penyimpanan periode dan tw login !
$alogin = $_SESSION['__WEB_APP'];
$log_tahun = Param::Get("OPTION_TAHUN", $alogin['REAL_THN']);
$log_bln = Param::Get("OPTION_BLN", $alogin['REAL_BLN']);
if ($log_tahun <> $alogin['REAL_THN']) {
$alogin['REAL_THN'] = $log_tahun;
$db->Query("SELECT * FROM vi_para_rpjmd WHERE '".$log_tahun."' BETWEEN Tahun_Min AND Tahun_Max ORDER BY RPJMDID DESC LIMIT 1");
if ($db->Next()) $alogin['REAL_RPJMDID'] = $db->Row("RPJMDID", 0);
}
if ($log_bln <> $alogin['REAL_BLN']) {
$alogin['REAL_BLN'] = $log_bln;
$log_tw = 0;
if ($log_bln <= 3) { $log_tw = 1; }
else if ($log_bln <= 6) { $log_tw = 2; }
else if ($log_bln <= 9) { $log_tw = 3; }
else if ($log_bln <= 12) { $log_tw = 4; }
$alogin['REAL_TW'] = $log_tw;
}
// mapping tahun nomenklatur submap
$alogin['SUBMAP_TAHUN'] = map_tahun_submap($alogin['REAL_THN']);
$alogin['AKUN_TAHUN'] = map_tahun_akun($alogin['REAL_THN']);
// penyesuaian kembali konfigurasi periode --> REAL_RPJMDID
$db->Query("SELECT Tahun1,Tahun2,Tahun3,Tahun4,Tahun5,Tahun_Min,Tahun_Max,Ket Real_Periode FROM vi_para_rpjmd WHERE RPJMDID='".$alogin['REAL_RPJMDID']."' LIMIT 1");
if ($db->Next()) $alogin = array_merge($alogin, $db->AllRow());
if ($alogin['Tahun1']==$alogin['REAL_THN']) $alogin['REAL_FIELD'] = "T1_";
if ($alogin['Tahun2']==$alogin['REAL_THN']) $alogin['REAL_FIELD'] = "T2_";
if ($alogin['Tahun3']==$alogin['REAL_THN']) $alogin['REAL_FIELD'] = "T3_";
if ($alogin['Tahun4']==$alogin['REAL_THN']) $alogin['REAL_FIELD'] = "T4_";
if ($alogin['Tahun5']==$alogin['REAL_THN']) $alogin['REAL_FIELD'] = "T5_";
$_SESSION['__WEB_APP'] = $alogin;
$_appurl = $_GET['redir'] ?? "";
if (!empty($_appurl)) {
$_redir = $auth->redirect($_appurl);
//jika kosong, tampilkan pesan redirect tidak diijinkan
//jika berisi, js harus redirect ...
}
$ajson['token'] = $_SESSION['APP_TOKEN'];
$ajson['hasil'] = "SUKSES";
$ajson['pesan'] = '<div class="border border-success p-2 pt-3"><h5>Login berhasil,</h5><p><b>'.$auser["Username"].'</b> / '.$auser["Nama"].'<br>'.$auser["Posisi"].'<br><i>login terakhir :</i><br>'.tgl_sql2str($auser["Last_Date"],true).'<br>'.$auser["Last_IP"].'</p></div>';
} else {
$ajson['hasil'] = "ERROR";
$ajson['pesan'] = "Periksa kembali ID Pengguna atau Password Anda ...";
}
} else if ($mode == "logout") {
$auth->logout();
foreach ($_SESSION as $_key => $_val) {
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
}
require(__DIR__."/../cfg/app.php");
$nhost = ($_SERVER['SERVER_ADDR'] == "127.0.0.1") ? $_SESSION['__WEB_APP']['WEB_PATH']."../" : $_SESSION['__WEB_APP']['PARENT_SITE'];
$ajson['nexthost'] = $nhost;
}
send_json($ajson);
?>