ACL in PHP. Isi Kandungan Pengenalan –Apa itu ACL? –Fungsi ACL? IF Else Authorization ACL Sesi Soalsiasat.

Slides:



Advertisements
Similar presentations
LIST ITEM. List Style … Pop List Ditampilkan dalam bentuk field dengan tombol di sebelah kanan. Ketika tombol di klik maka sekumpulan data akan muncul.
Advertisements

Protokol Rangkaian Bab 6
CDPD Celular Digital Packet Data Mhd Farid Naqeeb B. Mhd Amin Nordin A96908 Azfa Abdul Rahman A96865.
BAB 3-2 Sifat Robot. Objektif Boleh mengetahui ciri/spesifikasi robot Boleh menerangkan ciri/spesifikasi yang menerangkan kelakuan dan sifat robot Boleh.
PCS - Personal Communications Services PCS ( Servis Komunikasi Peribadi ) adalah nama generik untuk sistem komersial yang menawarkan beberapa jenis servis.
WAP Wireless Application Protocol Hazlina Shariff A91333 Noor Haizawati Abdullah A91430.
BAB 2-6 Power Conversion Unit Power Transmission System Software.
PENGENALAN KEPADA SISTEM MULTIMEDIA (WXET 3142) BAB 4 : IMEJ DAN GRAFIK (sambungan)
Peserta dalam pembangunan perisian
Bab 5-3 Image Processing and Analysis. Objektif Boleh mengetahui langkah-langkah yg terlibat di dalam Fungsi II Boleh menghuraikan keperluan dan fungsi.
PCS (Personal Communications Services) – CDMA (Code Division Multiple Access) PCS (Personal Communications Services) PCS merupakan perkhidmatan telefon.
Sebuah alat komunikasi perhubungan melalui “rangkaian pengguna” Digunakan secara meluas di awal era keluaran telefon bimbit iaitu dari tahun 1980 ke 1990.
KOMPUTER Bagaimana?.
Bluetooth Bluetooth Yong Kiung Hee A Alice Kong Ming A
Kejuruteraan Perisian
1 Bab 8 Halatuju dan Kekangan dalam Antaramuka : Multisensori.
Pemprototaipan Sistem Topik yang dibincangkan: Faedah pemprototaipan Proses pemprototaipan Pemprototaipan ‘Evolutionary’ Pemprototaipan ‘Throw-away’ Pemprototaipan.
AMPS /D-AMPS ADVANCED MOBILE PHONE SYSTEM/DIGITAL ADVANCED MOBILE PHONE SYSTEM.
Repositori Digital Perpustakaan UniMAP One stop access to Local Contents.
BAB 1 - MANTIK Pembelajaran kaedah dan prinsip untuk membezakan di antara hujah yang baik dengan yang lemah. Memudahkan penyusunan idea-idea dengan teratur,
MULTICHANNEL MULTIPOINT DISTRIBUTED SERVICE (MMDS)
Keperluan/ Capturing the Requirements
Global System for Mobile Communication
Free Space Optics(FSO) Free Space Photonics(FSP) atau Wireless optic Merujuk kepada pemindahan gelombang infrared melalui atmosfera untuk mendapatkan komunikasi.
RANCANG BANGUN SISTEM INFORMASI ABSENSI KARYAWAN BERBASIS RFID MENGGUNAKAN PHP DAN MYSQL PADA PT MUSTIKA RATU.
PROGRAM 1L5G & MODUL i-1L5G
Pernyataan Kawalan Java
BAHAGIAN 2 VB6 Procedure dan Fungsi.
CodeIgniter Form & Login
ERD Notation: Entity & Attribute
NOR SYUHADA BINTI MOHD NOR HILME
DATA MANIPULATION LANGUAGE
BAB 4 PERSAMPELAN.
PEMPROSESAN PERKATAAN
BAB 2 PLANNING Objektif: Pengenalan kepada perancangan projek
NEUROCITE 2.0: Simulator Peramalan Rangkaian Neural Buatan
UNIT 2: Pengenalan Komputer dan SISTEM OPERASI KOMPUTER
ASAS PENGATURCARAAN F1001 En. Azrol Hisham Bin Mohd Adham
PENERBITAN ELEKTRONIK
BAB 3 ANALISIS SISTEM Objektif:
PENGENALAN KEPADA SISTEM MULTIMEDIA (WXET 3142)
MODULE 2: CCTV MONITORING.
PENGUMPULAN PROJEK DALAM SATU SISTEM APLIKATI
MODUL 3 FILING SYSTEM.
Pengenalan Kepada kejuruteraan Perisian
Pengenalan Kepada kejuruteraan Perisian
Masalah Tugasan.
Pengenalan Sistem Automasi Industri
Routing Protokol dan Konsep Routing Protocols and Concepts
Pernyataan if.. Pernyataan switch..
BAB 8 TATASUSUNAN.
Pengenalan.
Penyelesaian Rangkaian Multimedia
PENERBITAN ELEKTRONIK
2.0 PENGALAMATAN RANGKAIAN
Dr. Norshahriah Abdul Wahab Bilik Seminar, Bangunan Lestari, UPNM
06.09 : PREPARE INSTALLATION CHECKLIST
INOVASI DAN KREATIF.
MENGGUNAKAN OBJEK VISUAL BASIC 6.0
BAB 2 PLANNING Objektif: Pengenalan kepada perancangan projek
Sistem pemilik APARTMEN KOPTIARA (SPAK)
Oleh: Zaihan Abdul Ghani A Sharifah Suhaila Mohd Ramli A103305
Muhamad Shukri Saud PRODUCTION ORGANIZATION
ICT HANDYBOOK SPM LA2 COMPUTER SYSTEMS 2.3 Software.
3.4.3 KONFIGURASI DAN UJIAN RANGKAIAN
PEMBELAJARAN 3D.
WEB 2.0 and E-LEARNING & MOBILE LEARNING
Penilaian Capaian & Maklumbalas Berkaitan
Keperluan rangkaian bagi aplikasi multimedia
Presentation transcript:

ACL in PHP

Isi Kandungan Pengenalan –Apa itu ACL? –Fungsi ACL? IF Else Authorization ACL Sesi Soalsiasat

Pengenalan Apa itu ACL? ACL atau akronimnya Access Control List, merupakan suatu kaedah untuk menentukan akses kepada sesuatu fungsi untuk setiap pengguna sistem. Merupakan satu terma, ACL tidak dimasukkan sebagai fungsi native PHP dan perlu dibangunkan oleh pembangun; user defined function.

IF Else Authentication Adalah cara mudah untuk melaksanakan authorization access dalam sesuatu sistem. Selalu digunakan dalam pembangunan PHP. Terdapat banyak kelemahan. –Sukar untuk diurus. –Kurang dinamik.

IF Else Authorization Contoh Aturcara <?php $username = “test”; $levels = “admin”; if($level == “admin”) : //give system management access to admin. elseif($level == “hr”) : //give human resource access to hr. elseif($level == “it-dept”) : //give IT department access to IT dept’s staff. endif; ?>

Senario yang mungkin berlaku… Organisasi telah berkembang, jabatan baru “Jabatan Multimedia” telah diwujudkan, sila beri akses kepada staf Jabatan Multimedia! “Jabatan Multimedia” memerlukan akses kepada Modul “Jabatan IT”! “Jabatan Multimedia” akan dimansuhkan dan staf “Jabatan Multimedia” akan diletakkan dibawah “Jabatan IT”, sila pindahkan modul “Jabatan Multimedia” kepada “Jabatan IT”.

ACL Kaedah ini menggunakan database, table yang diperlukan:- –acl –user –user_group –user_privilege Lebih baik implement konsep Object Oriented Programming (OOP) untuk menguruskan akses. Akses diperiksa berdasarkan kebenaran untuk menggunakan sesuatu module, bukan berdasarkan level pengguna.

ACL – table acl FieldTypeMisc. idINT(11) auto_increment primary_key modulesVARCHAR(100)

ACL – table user FieldTypeMisc. idINT(11) auto_increment primary_key nameVARCHAR(100) passwordVARCHAR(32) groupINT(11) link to id in user_group table

ACL – table user_group FieldTypeMisc. idINT(11) auto_increment primary_key nameVARCHAR(100)

ACL – table user_privilege FieldTypeMisc. idINT(11) auto_increment primary_key acl_idINT(11) group_idINT(11)

Code {1} <?php // get user data $result = mysql_query(“SELECT u.username, g.id FROM user u LEFT JOIN user_group g ON u.group=g.id WHERE u.id=1”); $row = mysql_fetch_array($result); $username = $row[“username”]; $levels = $row[“id”]; $appACL = new ACL(); $appACL->fetch_ACL($level); if($appACL->check_ACL(1)) : //give access to module A elseif($appACL->check_ACL(2)) : //give access to module B elseif($appACL->check_ACL(3)) : //give access to module C endif; ?>

Code {2} <?php class ACL { var $list_ACL; function fetch_ACL($level == 0) { $query = “SELECT p.id, FROM user_privilege p WHERE p.group_id=“.$level.” ORDER BY p.id ASC”; $result = mysql_query($query); $count = 1; while($row = mysql_fetch_array($result)) : while($count < $row[“id”]) : $this->list_ACL[$count] = 0; $count++; endwhile; if($count == $row[“id”]) : $this->list_ACL[$count] = 1; $count++; endif; endwhile; $query_acl = “SELECT count(id) AS totals FROM acl”; $result_acl = mysql_query($query_acl); $row_acl = mysql_fetch_array($result_acl); for(; $count <= $row_acl[“totals”]; $count++) : $this->list_ACL[$count] = 0; endfor; } // continues..

Code {3} // continues from last page function check_ACL($acl = 0) { if($this->list_ACL[$acl] == 1) : return true; else : return false; endif; } ?>

Sample

GUI for Editing ACL {1} <?php $query_group = "SELECT * FROM user_group"; $result_group = mysql_query($query_group); while ($row_group = $csdb->mysql_fetch_array($result_group)) : $levels[$row_group["id"]] = $row_group["name"]; endwhile; ?> Module <?php foreach($levels as $value) : print “ ”.$value.” ”; endforeach; ?> <?php // continues… ?>

GUI for Editing ACL {2} <?php $query_acl = "SELECT * FROM acl ORDER BY id ASC"; $result_acl = mysql_query($query_acl); $count = 0; while($row_acl = mysql_fetch_array($result_acl)) : $menu_id[$count] = $row_acl["id"]; $menu_runid[$row_acl["id"]] = $count; $menu_name[$count] = $row_acl["name"]; $count++; endwhile; $query_acp = "SELECT * FROM user_privilege"; $result_acp = mysql_query($query_acp); while($row_acp = mysql_fetch_array($result_acp)) : $this_id = $menu_runid[$row_acp[“acl_id"]]; $menu_access[$this_id][$row_acp[“group_id"]] = 1; endwhile; // continues… ?>

GUI for Editing ACL {2} <?php $query_acl = "SELECT * FROM acl ORDER BY id ASC"; $result_acl = mysql_query($query_acl); $count = 0; while($row_acl = mysql_fetch_array($result_acl)) : $menu_id[$count] = $row_acl["id"]; $menu_runid[$row_acl["id"]] = $count; $menu_name[$count] = $row_acl["name"]; $count++; endwhile; $query_acp = "SELECT * FROM user_privilege"; $result_acp = mysql_query($query_acp); while($row_acp = mysql_fetch_array($result_acp)) : $this_id = $menu_runid[$row_acp[“acl_id"]]; $menu_access[$this_id][$row_acp[“group_id"]] = 1; endwhile; // continues… ?>

GUI for Editing ACL {3} $counts = 0; for($list = 0; $list < count($menu_id); $list++) : print " "; print " ".$menu_name[$list]." "; foreach($levels as $level => $name) : $checked = ((isset($menu_access[$list][$level]) and $menu_access[$list][$level] == 1) ? "checked='checked'" : ""); print " "; $counts++; endforeach; print " "; endfor; ?>

Submit ACL <?php // Validate post form command mysql_query("TRUNCATE TABLE user_privilege"); $acl_id = $_POST["menu_id"]; $acl_access = $_POST["menu_access"]; $acl_group = $_POST["menu_level"]; for ($i=0; $i < count($acl_id); $i++) : $bool = ((isset($acl_access[$i]) and $acl_access[$i] == 1) ? 1 : 0); if($bool == 1) : mysql_query("INSERT INTO user_privilege (acl_id, group_id) VALUES (".$acl_id[$i].", ".$acl_group[$i].")"); endif; endfor; ?>