Scroll to top

Haloo! Selamat Datang di Komunitas Private Training Web Development (30588 Members, 251 Projects, 2663 Topic, 7322 Comments)

Butuh karyawan baru? atau seorang Web Developer (Part-time/Freelance/Full-time) untuk mengerjakan project/aplikasi anda?, cari disini : Members Area Jobs!
Bagaimana Cara Membuat Hak Akses User seperti pada SIKOLAG
Ahmad Adzan Azari Mengatakan : Members -
  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)
Robby Prihandaya Mengatakan :
Admin -
  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,.. :)

Ahmad Adzan Azari Mengatakan :
Members -
  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...

Ada 1 File Kiriman :
1. screencapture-localhost-pegawai-administrator-input_user-1514815776217.png (57 KB)
Ahmad Adzan Azari Mengatakan :
Members -
  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. }

Ahmad Adzan Azari Mengatakan :
Members -
  1. ini databasenya mas,

Ada 1 File Kiriman :
1. dv.PNG (27 KB)
Robby Prihandaya Mengatakan :
Admin -
  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.  

Ahmad Adzan Azari Mengatakan :
Members -
  1. diusernya sudah bisa input mas, tetapi di tbel user_modulnya masih kosong.

Ada 1 File Kiriman :
1. kosong.PNG (8 KB)
Ahmad Adzan Azari Mengatakan :
Members -
  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.  

Ada 3 File Kiriman :
1. ss11.PNG (23 KB)
2. ss2.PNG (69 KB)
3. ss3.PNG (24 KB)
Robby Prihandaya Mengatakan :
Admin -
  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,...

Ahmad Adzan Azari Mengatakan :
Members -
  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. }

Ahmad Adzan Azari Mengatakan :
Members -
  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...

Robby Prihandaya Mengatakan :
Admin -
  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,..

Ahmad Adzan Azari Mengatakan :
Members -
  1. ini mas. tolongan bantuannya mas

Ada 1 File Kiriman :
1. qwerty.PNG (33 KB)
Robby Prihandaya Mengatakan :
Admin -
  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.  

Ahmad Adzan Azari Mengatakan :
Members -
  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. }

Robby Prihandaya Mengatakan :
Admin -
  1. Coba upload saja semua filenya webnya disni saya lihat,..
  2. sekalian dengan databasenya, kalau setengah2 gini jadi repot juga,..
  3. gak kelar2 nanti,.. :)

Ahmad Adzan Azari Mengatakan :
Members -
  1. ini mas link downloadnya.
  2. http://bit.ly/SIMPEG02

Robby Prihandaya Mengatakan :
Admin -
  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 !!!