Seegatesite.com – I’ll share how to create a user permissions view to dynamic sidebar menu on adminLTE using Mysql. Someone asks through this website, how do I create a user permission view for my application. Because if I explain through the comment form will be very long at all, so on this occasion I try to write tutorial my way to create user permissions view for dynamic sidebar menu adminLTE.
Before starting , you should read Creating dynamic sidebar menu with Mysql and AdminLTE Bootstrap Template
Create 3 pieces of tables t_user, t_menu, t_menu_sub to accommodate the data
t_user table
1 2 3 4 5 6 7 8 | CREATE TABLE 't_user' ( 'id_user' int(11) NOT NULL AUTO_INCREMENT, 'name_user' varchar(20) NOT NULL, 'pass_user' char(50) NOT NULL, 'h_menu' varchar(254) DEFAULT NULL, PRIMARY KEY ('id_user'), UNIQUE KEY 'NewIndex1' ('name_user') ) |
Fill the following data
1 | insert into 't_user'('id_user','name_user','pass_user','h_menu') values (1,'ADMIN',md5('1188'),'1,2,3,4,5,6,7,8,9'); |
r_menu table
1 2 3 4 5 6 7 | CREATE TABLE 'r_menu' ( 'id_menu' int(2) NOT NULL AUTO_INCREMENT, 'name_menu' varchar(100) DEFAULT NULL, 'order' int(2) DEFAULT NULL, 'icon' varchar(30) DEFAULT NULL, PRIMARY KEY ('id_menu') ) |
Fill the following data
1 2 3 4 | insert into 'r_menu'('id_menu','name_menu','order','icon') values (1,'Data Karyawan',1,'fa fa-dashboard'); insert into 'r_menu'('id_menu','name_menu','order','icon') values (2,'Penggajian',2,'fa fa-files-o'); insert into 'r_menu'('id_menu','name_menu','order','icon') values (3,'Penilaian Kinerja Karyawan',3,'fa fa-share'); insert into 'r_menu'('id_menu','name_menu','order','icon') values (4,'Transaksi',4,'fa fa-laptop'); |
r_menu_sub table
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE 'r_menu_sub' ( 'id_sub_menu' int(3) NOT NULL AUTO_INCREMENT, 'name_sub_menu' varchar(100) DEFAULT NULL, 'id_menu' int(2) DEFAULT NULL, 'order_sub_menu' int(2) DEFAULT NULL, 'url' varchar(150) DEFAULT '#', 'title' text, PRIMARY KEY ('id_sub_menu'), KEY 'urutan_sub_menu_index' ('id_menu','order_sub_menu') ) |
Fill these table with the following mysql data
1 2 3 4 5 6 7 8 9 | insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (1,'Data Karyawan',1,1,'aplikasi/karyawan/v_karyawan.php','Data karyawan - untuk mencatat biodata karyawan'); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (2,'Otorisasi Resign',1,4,'aplikasi/karyawan/v_otorisasi_resign.php',NULL); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (3,'Data Parameter Gaji',2,1,'aplikasi/penggajian/v_parameter_gaji.php',NULL); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (4,'Proses Penggajian (Gaji, THR, TAT)',2,2,'#',NULL); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (5,'Pembayaran Komisi AO',2,3,'aplikasi/penggajian/v_komisi_ao.php',NULL); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (6,'Parameter Insentif Dinamis',3,1,'#',NULL); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (7,'Penilaian PA',3,2,'#',NULL); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (8,'Transaksi Lembur',4,1,'aplikasi/transaksi/v_transaksi_lembur.php',NULL); insert into 'r_menu_sub'('id_sub_menu','name_sub_menu','id_menu','order_sub_menu','url','title') values (9,'Transaksi Lain (BUUT , KOPKAR , UUO-SPI)',4,2,'aplikasi/transaksi/v_transaksi_lain.php',NULL); |
In this article, I will not explain in detail how to create the overall form on adminLTE but I have discussed it on how to create a user permissions view on adminLTE dynamic sidebar menu. If you need the full of source code, please download at the end of the article.
Script on the adminLTE sidebar menu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <!-- sidebar: style can be found in sidebar.less --> <section class="sidebar"> <!-- Sidebar user panel --> <ul class="sidebar-menu"> <li class="header"> <?php echo date('d/F/Y') ?> </li> <?php $query = mysql_query("SELECT * FROM r_menu ORDER BY r_menu.'order' ASC")?> <?php while($menu=mysql_fetch_array($query)) {?> <li class="treeview"> <a id="menu-<?php echo $menu['id_menu']; ?>"href="#"> <i class="<?php echo $menu['icon']; ?>"></i> <span><?php echo $menu['name_menu']; ?></span> <i class="fa fa-angle-left pull-right"></i> </a> <?php $id_menu=$menu['id_menu']; $query_sub_menu=mysql_query("select * from r_menu_sub where id_menu=$id_menu order by order_sub_menu asc"); if(mysql_num_rows($query_sub_menu)>0) { ?> <ul class="treeview-menu"> <?php $ilx=1; while($sub_menu=mysql_fetch_array($query_sub_menu)) { ?> <li> <?php $mymenu=$_SESSION['h_menu']; $arramymenu=explode(",", $mymenu) ; if(in_array($sub_menu['id_sub_menu'], $arramymenu)) { if($ilx % 2 == 0) { $circle_color = 'aqua'; }else { $circle_color = 'yellow'; } ?> <a href="<?php echo $sitename.$sub_menu['url']; ?>" title="<?php echo $sub_menu['title']; ?>"> <i class="fa fa-circle-o text-<?php echo $circle_color; ?>"></i> <span class="wrap"> <?php echo $sub_menu['name_sub_menu']; ?> </span> </a> </li> <?php $ilx++; } } ?> </ul> <?php } ?> </li> <?php } ;?> </ul> </section> <!-- /.sidebar --> |
Explanation :
The main script to create dynamic menu with user permissions view is the following script
1 2 3 4 5 6 | $mymenu=$_SESSION['h_menu']; $arramymenu=explode(",", $mymenu) ; if(in_array($sub_menu['id_sub_menu'], $arramymenu)) { //.......showing menu ......... } |
$_SESSION[‘h_menu’] store h_menu value (user permission access field) from t_user table
in my example t_user table has the following value
$_SESSION[‘h_menu’] has the value “1,2,3,4,5,6,7,8,9” > id_menu_sub. In my example, r_sub_menu has 9 rows of data with id_menu_sub 1,2,3,4,5,6,7,8,9
When table r_menu_sub looping, it will check if id_menu_sub match with user permission access value in array, if same it will show menu
1 2 3 4 5 6 | if(in_array($sub_menu['id_sub_menu'], $arramymenu)) { //................. <a href="<?php echo $sitename.$sub_menu['url']; ?>" title="<?php echo $sub_menu['title']; ?>"> //............................. } |
Try to change the h_menu value to “1,3,4,5,7”. What will happen ?
Hopefully this brief tutorial can help you to create a user permissions view on adminLTE sidebar.
To get the full source code please download the following link
Download : How To Create User Permission To Dynamic Sidebar Menu AdminLTE
Password : seegatesite.com
thanks
very good
password user ADMIN apa pak?
maaf lupa nulis : password admin : 1188
atau bisa anda buat sendiri
insert into t_user(id_user,name_user,pass_user,h_menu) values (1,'ADMIN',md5('123'),'1,2,3,4,5,6,7,8,9');
terimakasih
JIka hanya menu single di r_menu dan tidak ada di r_menu_sub, bagaimana caranya agar icon V tidak tampil. Sudah coba ubah tapi tetap tampil.
hapus script ini
Ini script dari sidebar.php
maaf salah kasih jawaban,
Hapus yang ini
Ini icon V harus tampil karena ada di tabel r_menu dan r_menu_sub
Dashboard – Dashboard 1
– Dashboard 2
Tabel – Tabel 1
– Tabel 2
Ini icon V tidak boleh tampil karena hanya ada r_menu
User
Logout
oooo… maksutnya kalo tidak ada sub menu maka icon v tidak ditampilkan gitu ? okay…ubah script seperti berikut
Semoga membantu anda 🙂
Menu sidebar gak tampil, nanti sy coba lagi, thank’s ya
Sebenarnya intinya hanya pada kode berikut
mengecek terlebih dahulu apakah r_menu memiliki sub_menu ? jika tidak maka icon v tidak ditampilkan
Tanpa login index.php masih bisa kebuka ya
Iya. pada tutorial ini saya hanya berbagi cara memberi akses menu ke masing2 user. Untuk mencegah agar user tidak dapat mengakses halaman utama sebelum melalui login page dapat ditambahkan session php. Sepertinya sudah ada di artikel berikut ini
https://seegatesite.com/dynamic-menu-adminlte-and-dashboard-page-tutorial-build-point-of-sale-with-php-pdo-mysql-and-jquery-part-2/
Tetapi koneksi databasenya dari PHP menggunakan PDO, lebih powerful 🙂
download not workin. I shared but still locked.
please check again
Selamat siang pak sigit, artikel bagus dan menambah kemampuan coding membuat menu dinamis. Perkenalkan nama saya yanuar, pertanyaan saya apakah ada referensi / coding untuk membuat user permissions nya secara dinamis sesuai pilihan menu yang kita pilih misalnya menggunakan plugin treeview checkbox kemudian bisa kita simpan dan edit juga. Hasil posting waktu simpan sama spt bapak yg contohkan di atas field role : 1,2,3
bisa pak, dari contoh saya dapat dikembangkan. Silahkan tampilkan menu kedalam tabel atau li element dan tambahkan checkbox. Kemudian ambil kode menu dari object yang tercentang saja. Saya ada contoh, kalo ga repot saya bantu share. terimakasih