Hallo! Selamat Datang di Marketplace produk digital, Freelancer terbaik di indonesia (67478 Members, 783 Products, 5290 Topic, 12955 Comments)

Bagaimana Cara Membuat Hak Akses User seperti pada SIKOLAG

Dibuat
Login Terakhir 11 Hari lalu,
Telah Dilihat 6626 Kali
ADNinc Dev Mengatakan : Sultan Account
  1. Assalamualaikum
  2. mas cara membuat hak akses seperti SIKOLAG itu gimana ya
  3. kira2 ada tutorialnya tidak ?
Ada 1 File Kiriman :
1. hak_akses.PNG (22 KB)

Ada 17 Jawaban

PHPMU.COM Support
commented on 14 Des 2017 22:21:48
  1. Assalam, sebenarnya bisa di lihat langsung pada SIKOLAG nya,..
  2. ada 3 table yang berperan pada sikolag untuk membuat hak akses,..
  3. table modul, users, dan users_modul,..
  4.  
  5. pertama insert nama semua modul yang ada,
  6. ambil dari url pada address bar dan tempatkan pada field link table modul,..
  7. ex : media.php?module=identitas
  8. Berarti yang di insert : identitas, dan seterusnya untuk semua modul,..
  9.  
  10. tampilkan semua modul saat mau insert user dari aplikasi :
  11. <?php
  12. $qrMod = mysql_query("SELECT * FROM modul WHERE publish='Y' AND status='user'");
  13. while($mod=mysql_fetch_array($qrMod)){
  14. echo "<label><input name='modul[]' type='checkbox' value='$mod[id_modul]' /> $mod[nama_modul]</label> ";
  15. }
  16. ?>
  17.  
  18. Menyimpan data setelah dipilih/eksekusi ke table users_modul :
  19. <?php
  20. $mod=count($_POST['modul']);
  21. $modul=$_POST['modul'];
  22. for($i=0;$i<$mod;$i++){
  23. mysql_query("INSERT INTO users_modul SET id_session='$pass',id_modul='$modul[$i]'"); //
  24. }
  25. ?>
  26. Note : id_session disini saya ambil dari pass user sebagai identitas unik guna mengetahui modul akses untuk si user,..
  27.  
  28. Selanjutnya buat function untuk cek menu/modul yang bisa di akses user ke table users_modul, dan aktifkan menu yang bisa di akses,..
  29. <?php
  30. function umenu_akses($link,$id){
  31. $cek = mysql_num_rows(mysql_query("SELECT * FROM modul,users_modul
  32. WHERE modul.id_modul=users_modul.id_modul AND users_modul.id_session='$id' AND modul.link='$link'"));
  33. return $cek;
  34. }
  35. ?>
  36.  
  37. terakhir pada setiap menu nanti dibuatkan seperti ini :
  38. <?php
  39. $cek=umenu_akses("?module=identitas",$_SESSION[sessid]);
  40. if($cek==1 OR $_SESSION[leveluser]=='admin'){
  41. echo "<li><a href='?module=identitas'><b>Identitas Website</b></a></li>";
  42. }
  43. ?>
  44.  
  45. Artinya di atas : JIka setelah di cek ke tbl users_modul dan value==1 maka menu terbuka,..
  46. dan jika si user yang login levelny admin maka menu juga akan dibuka-kan,.. :)
ADNinc Dev
commented on 01 Jan 2018 21:40:51
  1. Assalamualaikum mas,
  2. saya coba utek2 lagi masih error ini gmna ya mas.
  3. ini coding yang saya pakai. mohon bantuannya
  4.  
  5. ----------------------------------------- Model----------------------------------
  6. function moduluser(){
  7. return $this->db->get('modul')->result_array();
  8. }
  9.  
  10. ---------------------------------------- controler -------------------------------
  11. function tambah_user(){
  12. $this->cek_admin();
  13. $data['title'] = 'Menambah User Administrator';
  14. $data['pegawai'] = $this->Model_pegawai->pegawai();
  15. $data['modul'] = $this->Model_users->moduluser();
  16. $this->template->load('admin/template','admin/mod_users/tambah_users',$data);
  17. }
  18.  
  19. function input_user(){
  20. $this->cek_admin();
  21. $data=$this->input->post();
  22. $this->session->set_flashdata('message',
  23. '<div class="alert alert-warning alert-dismissible" role="alert">
  24. <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
  25. Data Berhasil Ditambhakan...!!!
  26. </div>');
  27.  
  28. $this->Model_users->tambahuser($data);
  29.  
  30. $mod=count($_POST['modul']);
  31. $modul=$_POST['modul'];
  32. for($i=0;$i<$mod;$i++){
  33. mysql_query("INSERT INTO users_modul SET id_session='$pass',id_modul='$modul[$i]'");
  34. }
  35. redirect('administrator/user','refresh');
  36.  
  37. }
  38.  
  39. Hohon bantuannya mas, untuk pengerjaan TA saya...
Terdapat 1 File dilampirkan :
1. screencapture-localhost-pegawai-administrator-input_user-1514815776217.png (57 KB)
ADNinc Dev
commented on 01 Jan 2018 21:46:41
  1. ----------------------------------------- Model----------------------------------
  2.  
  3. <?php
  4. class Model_users extends CI_model{
  5. function users(){
  6. return $this->db->get('users')->result_array();
  7. }
  8.  
  9. function tambahuser($data){
  10. $data["password"]=sha1($data["password"]);
  11. //upload gambar
  12. $nmfile = "IMG_".time();
  13. $config['upload_path']='./assets/foto_user/';
  14. $config['allowed_types']='gif|jpg|png|jpeg|bmp';
  15. $config['file_name'] = $nmfile;
  16.  
  17. $this->load->library('upload',$config);
  18.  
  19. //upload
  20. $upload=$this->upload->do_upload('foto');
  21. if ($upload) {
  22. $data["foto"]=$this->upload->data("file_name");
  23. }
  24. //query simpan
  25. $this->db->insert('users',$data);
  26. }
  27.  
  28. function detailuser($id){
  29. $this->db->where('username',$id);
  30. return $this->db->get('users') -> result_array();
  31. }
  32.  
  33. function edituser($data, $id){
  34. //password jika kosong maka harus dibuang dari array
  35. if (empty($data['password'])) {
  36. unset($data['password']);
  37. }else{
  38. $data["password"]=sha1($data["password"]);
  39. }
  40. //upload gambar
  41. $nmfile = "IMG_".time();
  42. $config['upload_path']='./assets/foto_user/';
  43. $config['allowed_types']='gif|jpg|png|jpeg|bmp';
  44. $config['file_name'] = $nmfile;
  45. $this->load->library('upload',$config);
  46.  
  47. //upload
  48. $upload=$this->upload->do_upload('foto');
  49. if ($upload) {
  50. $data["foto"]=$this->upload->data("file_name");
  51. }
  52. //query simpan
  53. $this->db->update('users', $data);
  54. $this->db->where('username', $id);
  55. }
  56.  
  57. function hapususer($id){
  58. $this->db->where('username',$id);
  59. $this->db->delete('users');
  60. }
  61.  
  62. // Model Untuk Modul User
  63.  
  64. function moduluser(){
  65. return $this->db->get('modul')->result_array();
  66. }
  67.  
  68. function addmodul($data){
  69. $this->db->insert('modul',$data);
  70. }
  71.  
  72. function insertmodel($data){
  73. return $this->db->insert('users_modul', $data);
  74. }
  75. }
ADNinc Dev
commented on 01 Jan 2018 22:25:00
  1. ini databasenya mas,
Terdapat 1 File dilampirkan :
1. dv.PNG (27 KB)
PHPMU.COM Support
commented on 02 Jan 2018 06:41:26
  1. Assalam, itu error saat insert usernya mas,...
  2. itu field "modul" saat insert user nongol, seharusnya tidak ada,..
  3. coba sesuaikan lagi model insertnya dengan struktur database table users nya,..
  4.  
  5. untuk insert gampangnya bikin gini saja :
  6.  
  7. // Models :
  8. <?php
  9. public function insert($table,$data){
  10. return $this->db->insert($table, $data);
  11. }
  12. ?>
  13.  
  14. // Controllers :
  15. <?php
  16. $config['upload_path'] = 'asset/foto_user/';
  17. $config['allowed_types'] = 'gif|jpg|png|JPG|JPEG';
  18. $config['max_size'] = '1000'; // kb
  19. $this->load->library('upload', $config);
  20. $this->upload->do_upload('f');
  21. $hasil=$this->upload->data();
  22.  
  23. $data = array('username'=>$this->input->post('a'),
  24. 'password'=>hash("sha512", md5($this->input->post('b'))),
  25. 'nama_lengkap'=>$this->input->post('c'),
  26. 'email'=>$this->input->post('d'),
  27. 'foto'=>$hasil['file_name'],
  28. 'id_session'=>date('YmdHis'),
  29. 'level'=>$this->input->post('g'));
  30. $this->model_app->insert('users',$data);
  31. ?>
  32.  
  33.  
ADNinc Dev
commented on 02 Jan 2018 11:14:23
  1. diusernya sudah bisa input mas, tetapi di tbel user_modulnya masih kosong.
Terdapat 1 File dilampirkan :
1. kosong.PNG (8 KB)
ADNinc Dev
commented on 02 Jan 2018 17:49:11
  1. Alhamdulliha udah bisa masuk ke database, tp masih ada kendala mas adminnya malah tidak bisa menampilkan menunya kira2 salahnya dimana ya? dan level pada user juga sudah Admin
  2.  
  3. fungsi pengecekan menu
  4.  
  5. function umenu_akses($link,$id){
  6. return $this->db->query("SELECT * FROM modul,users_modul WHERE modul.id_modul=users_modul.id_modul AND users_modul.id_session='$id' AND modul.link='$link'")->num_rows();
  7. }
  8.  
  9. ------------- Perintah di menunya -------------------
  10. <ul class="ml-menu">
  11. <?php
  12.  
  13. $cek=$this->Model_users->umenu_akses("tampil_pegawai",$this->session->id_session);
  14. if($cek==1 OR $this->session->level=='Admin'){
  15. echo"<li><a href='<?php echo base_url(); ?>administrator/tampil_pegawai'>Daftar Seluruh Pegawai</a></li>";
  16. }
  17.  
  18. $cek=$this->Model_users->umenu_akses("list_pasangan",$this->session->id_session);
  19. if($cek==1 OR $this->session->level=='Admin'){
  20. echo"<li><a href='<?php echo base_url(); ?>administrator/list_pasangan'>Suami/Istri</a></li>";
  21. }
  22.  
  23. $cek=$this->Model_users->umenu_akses("list_anak",$this->session->id_session);
  24. if($cek==1 OR $this->session->level=='Admin'){
  25. echo"<li><a href='<?php echo base_url(); ?>administrator/list_anak'>Anak</a></li>";
  26. }
  27.  
  28. $cek=$this->Model_users->umenu_akses("orang_tua",$this->session->id_session);
  29. if($cek==1 OR $this->session->level=='Admin'){
  30. echo"<li><a href='<?php echo base_url(); ?>administrator/orang_tua'>Orang Tua</a></li>";
  31. }
  32.  
  33. $cek=$this->Model_users->umenu_akses("list_pendidikan",$this->session->id_session);
  34. if($cek==1 OR $this->session->level=='Admin'){
  35. echo"<li><a href='<?php echo base_url(); ?>administrator/list_pendidikan'>Pendidikan</a></li>";
  36. }
  37. ?>
  38. </ul>
  39.  
Terdapat 3 File dilampirkan :
1. ss11.PNG (23 KB)
2. ss2.PNG (69 KB)
3. ss3.PNG (24 KB)
PHPMU.COM Support
commented on 03 Jan 2018 06:59:25
  1. coba saat login admin di echo $this->session->level;
  2. value/isi nya atau yang tercetak apa?
  3. seharusnya jika $this->session->level isinya "Admin" maka menu akan muncul,..
  4. atau coba share script aksi login adminnya disini saya periksa,...
ADNinc Dev
commented on 03 Jan 2018 09:39:17
  1. <?php
  2. class Login extends CI_Controller {
  3.  
  4. function __construct() {
  5. parent::__construct();
  6. $this->load->model('Model_login');
  7. }
  8.  
  9. function index(){
  10. if (isset($_POST['submit'])){
  11. $username = $this->input->post('username');
  12. $password = sha1($this->input->post('password'));
  13.  
  14. $users = $this->Model_login->cek_users($username,$password);
  15. $pegawai = $this->Model_login->cek_pegawai($username,$password);
  16.  
  17. $row1 = $users->row_array();
  18. $row2 = $pegawai->row_array();
  19.  
  20. $total_users = $users->num_rows();
  21. $total_pegawai = $pegawai->num_rows();
  22.  
  23. if ($total_users > 0){
  24. $this->session->set_userdata(array(
  25. 'id'=>$row1['username'],
  26. 'level'=>'users')
  27. );
  28. redirect('Administrator/home');
  29.  
  30. }elseif($total_pegawai > 0){
  31. $this->session->set_userdata(array(
  32. 'id'=>$row2['id_pegawai'],
  33. 'level'=>'pegawai')
  34. );
  35. redirect('Pegawai/home');
  36. }else{
  37. echo "<script>window.alert('Maaf, gagal Login');
  38. window.location=('login')</script>";
  39. }
  40. }else{
  41. $this->load->view('login');
  42. }
  43. }
  44.  
  45. function logout()
  46. {
  47. $this->session->sess_destroy();
  48. redirect(base_url('login'));
  49. }
  50.  
  51.  
  52. }
ADNinc Dev
commented on 03 Jan 2018 22:25:52
  1. yeh udah bisa. admin semua menu udah muncul. malah level usernya yang berkendala lagi
  2. menu user tidak mau muncul sesuai apa yang dipilih di hak akses.
  3.  
  4. <?php
  5. $cek=$this->Model_users->umenu_akses("tampil_pegawai",$this->session->id_session);
  6. if($cek==1 OR $this->session->level=='Admin'){
  7. echo"<li><a href='<?php echo base_url(); ?>administrator/tampil_pegawai'>Daftar Seluruh Pegawai</a></li>";
  8. }
  9. ?>
  10.  
  11. klau coding saya ubah $cek==0 itu muncul mas itu muncul semuanya. Kira2 salahnya dimana lagi ya mas...
PHPMU.COM Support
commented on 05 Jan 2018 15:45:51
  1. level usernya yang berkendala? itu levelnya ada berapa mas...
  2. coba share print screen table user nya dan table pegawai juga,..
  3. karena saya lihat dari aksi loginnya hanya ada 2 session yang di create untuk level, yaitu users dan pegawai,..
ADNinc Dev
commented on 05 Jan 2018 15:56:09
  1. ini mas. tolongan bantuannya mas
Terdapat 1 File dilampirkan :
1. qwerty.PNG (33 KB)
PHPMU.COM Support
commented on 05 Jan 2018 16:58:40
  1. Oke, di kontroller login saat create session jangan dibuat seperti ini :
  2. $this->session->set_userdata(array(
  3. 'id'=>$row1['username'],
  4. 'level'=>'users'));
  5. karena pada menu kita cek session level nya,..
  6.  
  7. jadi dibuat seperti ini saja :
  8. $this->session->set_userdata(array(
  9. 'id'=>$row1['username'],
  10. 'level'=>$row1['level']));
  11. jadi nanti user level (user dan admin) akan memiliki session level yang beda,...
  12.  
ADNinc Dev
commented on 05 Jan 2018 17:34:31
  1. Sudah di ubah tetep gak bisa mas
  2.  
  3. if ($total_users > 0){
  4. $this->session->set_userdata(array(
  5. 'id'=>$row1['username'],
  6. 'level'=>$row1['level'],
  7. 'id_session'=>$row1['id_session'])
  8. );
  9. redirect('Administrator/home');
  10.  
  11. }elseif($total_pegawai > 0){
  12. $this->session->set_userdata(array(
  13. 'id'=>$row2['id_pegawai'],
  14. 'level'=>'pegawai')
  15. );
  16. redirect('Pegawai/home');
  17. }else{
  18. echo "<script>window.alert('Maaf, gagal Login');
  19. window.location=('login')</script>";
  20. }
PHPMU.COM Support
commented on 05 Jan 2018 18:12:57
  1. Coba upload saja semua filenya webnya disni saya lihat,..
  2. sekalian dengan databasenya, kalau setengah2 gini jadi repot juga,..
  3. gak kelar2 nanti,.. :)
ADNinc Dev
commented on 05 Jan 2018 19:40:20
  1. ini mas link downloadnya.
  2. http://bit.ly/SIMPEG02
PHPMU.COM Support
commented on 06 Jan 2018 06:32:21
  1. Oke mas, setelah saya cek memang tidak ada masalah di kodingnya,..
  2. ternyata bermasalah pada query untuk Cek hak akses pada "Model_users.php" baris 49
  3.  
  4. sebelumnya :
  5. return $this->db->query("SELECT * FROM modul,users_modul WHERE modul.id_modul=users_modul.id_modul
  6. AND users_modul.id_session='$id' AND modul.link='$link'")->result_array();
  7.  
  8. Seharusnya :
  9. return $this->db->query("SELECT * FROM modul,users_modul WHERE modul.id_modul=users_modul.id_modul
  10. AND users_modul.id_session='$id' AND modul.link='$link'")->num_rows();
  11.  
  12. Setelah diubah dan dicoba akses lagi,.. :)
Maaf, Untuk Memberikan Komentar Anda Harus Login !!!