/** * @param string $redirect_while_success * @return int */ function _auth($redirect_while_success = '') { /** * cek masukan yang diberikan */ $status = $this->_valid_input(); /** * cek username, password, dan status didalam database */ !$status || ($status = Peoples::get_instance()->_valid($this->obj_people)); /** * jika ada, re-declare objek people dengan data yang ada didalam database */ !$status || ($this->obj_people = Peoples::get_instance()->_get($this->obj_people->getUsername(), 'username')); if ($status) { Sessions::get_instance()->_generate(Session::get_instance()->_init($this->obj_people)); /** * jika target redirect di-set */ if (!empty($redirect_while_success)) { lrs_redirect($redirect_while_success . '?' . Helpers::status_param . '=' . $status); } } /** * sisanya kembalikan status return-nya */ return $status; }
function _validate($redirect_while_failed = '') { $valid = false; if ($this->_has()) { /** @var Session $obj_session */ $obj_session = $_SESSION[self::name]; /** * untuk session yang di-cek adalah hanya user agent dan alamat ip; * menghindari session di-copy dan digunakan di komputer lain * * username dan password tidak di validasi, * karena akan membutuhkan koneksi database setiap kali eksekusi */ $valid = $obj_session->compareUserAgent($_SERVER['HTTP_USER_AGENT']); /** * mungkin tergantung koneksi, * beberapa ISP memberikan IP sangat dinamis, jadi tidak bisa melakukan * verifikasi berdasarkan IP */ $valid = $valid && $obj_session->compareIpAddress($_SERVER['REMOTE_ADDR']); /** * jika sudah memasukin halaman view, * periksa kembali apakah sesuai dengan hak akses nya */ '' == Contents::get_instance()->get_view() || ($valid = $valid && $obj_session->getView() == Contents::get_instance()->get_view()); } if (!$valid) { /** * jika tujuan redirect sudah ditentukan */ if (!empty($redirect_while_failed)) { lrs_redirect($redirect_while_failed); } } /** * kembalikan hasil validasi */ return $valid; }
$is_absen_berhenti_sebelum_waktunya = Routes::get_instance()->is_tingkat(3, Absents::aksi_berhenti_sebelum_waktunya); $durasi_kerja = Options::get_instance()->get_option('durasi_kerja', 0); $durasi_kerja_jam = (int) $durasi_kerja / 60; $obj_people = Sessions::get_instance()->_retrieve()->getObjPeople(); $this_day = date('Y-m-d'); $obj_absen = Absents::get_instance()->_get($this_day, $obj_people->getId()); !is_null($obj_absen->getStatus()) || $obj_absen->setStatus(Absents::status_tidak_masuk); if ($is_absen_mulai) { $obj_absen->setDate($this_day)->setPeopleId($obj_people->getId())->setWorktimeStart(date('H:i:s'))->setStatus(Absents::status_masuk); lrs_redirect(LRS_URI_PATH . DS . $tingkat1 . DS . $tingkat2 . '?status=' . (Absents::get_instance()->_update($obj_absen) ? 1 : 999)); } elseif ($is_absen_berhenti) { $obj_absen->setWorktimeEnd(date('H:i:s'))->setStatus(Absents::status_selesai); lrs_redirect(LRS_URI_PATH . DS . $tingkat1 . DS . $tingkat2 . '?status=' . (Absents::get_instance()->_update($obj_absen) ? 2 : 999)); } elseif ($is_absen_berhenti_sebelum_waktunya) { $obj_absen->setWorktimeEnd(date('H:i:s'))->setStatus(Absents::status_izin_pulang)->setNote($_REQUEST['note']); lrs_redirect(LRS_URI_PATH . DS . $tingkat1 . DS . $tingkat2 . '?status=' . (Absents::get_instance()->_update($obj_absen) ? 3 : 999)); } $default_params = array('range_date_start' => '', 'range_date_end' => '', 'number' => 10, 'page' => 1); $list_params = sync_default_params($default_params, $_GET); $hari_libur = json_decode(Options::get_instance()->get_option('hari_libur', array()), true); Headers::get_instance()->set_page_title('Absen')->set_page_name('Absen')->set_page_sub_name($is_absen_histori ? 'Histori' : 'Absen'); Contents::get_instance()->get_header(); ?> <div class="container-fluid"> <div class="row"> <div class="col-xs-3 col-sm-2 sidebar"> <?php Contents::get_instance()->get_sidebar(); ?> </div>
namespace LRS\OfficeServer\Views\Admin; use LRS\OfficeServer\Controller\Contents; use LRS\OfficeServer\Controller\Headers; use LRS\OfficeServer\Controller\Sessions; use LRS\OfficeServer\Controller\Options; use LRS\OfficeServer\Controller\Helpers; use LRS\OfficeServer\Controller\Routes; $status = isset($_REQUEST[Helpers::status_param]) ? $_REQUEST[Helpers::status_param] : ''; $tingkat1 = Routes::get_instance()->get_tingkat(1); $tingkat2 = Routes::get_instance()->get_tingkat(2); $is_simpan = Routes::get_instance()->is_tingkat(2, Helpers::aksi_simpan); if ($is_simpan) { Options::get_instance()->set_option('hari_libur', mysql_real_escape_string(json_encode($_REQUEST['hari_libur']))); Options::get_instance()->set_option('durasi_kerja', $_REQUEST['durasi_kerja']); lrs_redirect(LRS_URI_PATH . DS . $tingkat1 . DS . '?status=2'); } $hari_libur = json_decode(Options::get_instance()->get_option('hari_libur', array()), true); $durasi_kerja = Options::get_instance()->get_option('durasi_kerja', 0); $obj_people = Sessions::get_instance()->_retrieve()->getObjPeople(); $days_a_week_lists = array(1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday', 7 => 'Sunday'); Headers::get_instance()->set_page_title('Admin')->set_page_name('Admin'); Contents::get_instance()->get_header(); ?> <div class="container-fluid"> <div class="row"> <div class="col-xs-3 col-sm-2 sidebar"> <?php Contents::get_instance()->get_sidebar(); ?>