Website Sekolah CodeIgniter V : Membuat Library Pengecekan Hak Akses User

Website Sekolah CodeIgniter V : Membuat Library Pengecekan Hak Akses User

Warning: Source code website sekolah versi 2.x ini tidak dikembangkan lagi, saya sedang menyusun ulang konsepnya dan akan dibuat dengan CI versi 3.x. Saat ini saya sudah membuat Basic CMS dengan CI 3 dan kemungkinan untuk website sekolah ini akan di koding ulang dengan konsep Basic CMS yang telah saya buat tersebut. Terima kasih telah berkunjung di blog ini 🙂

 

Heii..

Pada postingan sebelumnya kita telah membahas tentang membuat Admin Modul Pages untuk kemudahan Admin dalam membuat konten website. Tetapi fitur2 modul tersebut masih bisa di akses dengan mengetikan url nya langsung, misal => http://localhost/sekolahku/index.php/admin/pages   tanpa melakukan proses login terlebih dahulu. Nah.. pada kesempatan kali ini dibuat lah Library untuk pengecekan hak akses user untuk mencegah hal2 seperti itu. Pengecekan hak akses ini meliputi tipe2 user yng telah didefinisikan sebelumnya, yaitu Admin, Teachers, Students,  Alumni. Berikut ini adalah langkah-langkah pembuatan Library Hak Akses User:

1. Buat file General.php pada folder application/libraries

2. Ketik kode program berikut pada file General.php tersebut:

[php]

<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
* Description of General
*
* @author gieart
*/
class General {

//put your code here
var $ci;

function __construct() {
$this->ci = &get_instance();
}

function isLogin() {
if ($this->ci->session->userdata(‘is_login’) == TRUE) {
return TRUE;
} else {
return FALSE;
}
}

function isAdmin() {
if ($this->ci->session->userdata(‘type’) == ‘admin’) {
return TRUE;
} else {
return FALSE;
}
}

function isTeacher() {
if ($this->ci->session->userdata(‘type’) == ‘teachers’) {
return TRUE;
} else {
return FALSE;
}
}

function isStudent() {
if ($this->ci->session->userdata(‘type’) == ‘students’) {
return TRUE;
} else {
return FALSE;
}
}

function isAlumni() {
if ($this->ci->session->userdata(‘type’) == ‘alumni’) {
return TRUE;
} else {
return FALSE;
}
}

function checkAdmin() {
if (($this->isLogin() && $this->isAdmin()) != TRUE) {
$this->ci->session->set_flashdata(‘error’, ‘Maaf, Anda tidak memiliki hak akses sebagai admin’);
redirect(‘users/login’);
}
}

function checkTeacher() {
if (($this->isLogin() && $this->isTeacher()) != TRUE) {
$this->ci->session->set_flashdata(‘error’, ‘Maaf, Anda tidak memiliki hak akses sebagai guru’);
redirect(‘users/login’);
}
}

function checkStudent() {
if (($this->isLogin() && $this->isStudent()) != TRUE) {
$this->ci->session->set_flashdata(‘error’, ‘Maaf, Anda tidak memiliki hak akses sebagai siswa’);
redirect(‘users/login’);
}
}

function checkAlumni() {
if (($this->isLogin() && $this->isAlumni()) != TRUE) {
$this->ci->session->set_flashdata(‘error’, ‘Maaf, Anda tidak memiliki hak akses sebagai alumni’);
redirect(‘users/login’);
}
}

}

?>

[/php]

3. Buka file autoload.php pada folder application/config kemudian pada bagian pemanggilan libraries tambahkan pemanggilan library General  yang kita buat saat ini. Sehingga menjadi seperti ini :

[php]

$autoload[‘libraries’] = array(‘database’,’session’,’form_validation’,’General’);

[/php]

4. Lakukan pemanggilan library pada tempat2 yang dibutuhkan. Misal untuk memproteksi Admin Modul Pages, maka kita tambahkan pada constructor pada  file application/controllers/admin/pages , sehingga pada fungsi constructor menjadi seperti berikut:

[php]

function __construct() {
parent::__construct();

$this->general->checkAdmin(); // Pengecekan Hak Akses Admin, jika bukan Admin maka akan diredirect ke form Login

$this->load->model(‘Pages_model’);
}

[/php]

5. Selesaii.. :), coba lakukan pengecekan dengan mengakses http://localhost/sekolahku/index.php/admin/pages  tanpa melakukan proses login. Jika Library ini berjalan dengan baik maka saat pengaksesan tersebut akan diredirect ke form login ada peringatan yng menyatakan bahwa anda tidak memiliki hak akses.

Terima kasih… 🙂

DOWNLOAD FULL SOURCE CODE | ONLINE DEMO

username : admin

password : admin

About the author

gieart administrator

9 Comments so far

Gie Art JogjaLoversPosted on5:46 am - Mar 13, 2012

Test 🙂

Gie Art JogjaLoversPosted on5:46 am - Mar 13, 2012

Test 🙂

Aristian Eddy IrawanPosted on1:59 pm - Jun 26, 2012

Terimakasih atas tutorialnya.
saya ingin bertanya, kalo semisal penggunaan Authorisasi pada tiap fungsi ada contohnya ndak ya?
misal:

class Artikel extends CI_Controller.
{
function delete()
{
hanya untuk admin;.
}

functino read()
{
semua user.
}
}

Ahmad BachtiarPosted on10:03 pm - Dec 8, 2012

mas ko pesan bukan adminnya ndak bisa ya.

Muchamad D FadilahPosted on5:44 pm - Dec 16, 2012

Terima kasih, librarynya saya pake di aplikasi saya, dengan sedikit perubahan, oya, hanya saja, pas mau back masih bisa, misal sudah masuk ke session admin, maka back bisa tapi kalo ketik uril langsung gak bisa, aneh saya. 😀

Dodoananto DaPosted on9:36 am - Sep 11, 2013

mas ahmad, pesan bukan admin nya bisa ditambahkan di /views/users/login.php setelah <hr/>, berikut skrip nya ::

<?php if($this->session->flashdata("error")): ?>
<?php echo $this->session->flashdata("error"); ?><br/>
<?php endif; ?>

mohon dikoreksi bila salah

trims

Leave a Reply