Skip to content

jomblodietwice/ci3-coreui-ionauth

Repository files navigation

(CI3CI) CODEIGNITER 3 - COREUI - ION AUTH

Pengantar

Repo ini merupakan paket (pack) dari kombinasi framework Codeigniter 3, admin template CoreUI (free) dan library Ion Auth. Repo ini dibuat untuk memudahkan rekan-rekan programmer PHP base untuk membuat projek yang membutuhkan admin module. Dalam repo ini sudah tersedia otorisasi user menggunakan Ion Auth dan view-nya menggunakan CoreUI free edition. Dengan menggunakan repo ini Anda tinggal membuat module/controller Anda sendiri sesuai kebutuhan projek, contoh-contoh tag HTML CoreUI sudah ada demikian pula penggunaan library Ion Auth semuanya sudah terinstal. Jadi Anda tidak perlu membuat lagi modul otentikasi dari nol.

Fitur:

  • Halaman Login dan link logout.
  • Halaman Forgot Password (belum diuji).
  • Halaman tambah dan edit User.
  • Halaman tambah dan edit Grup Otentikasi.
  • View 404 bawaan CodeIgniter 3 yang sudah diubah.
  • View error general bawaan CodeIgniter 3 yang sudah diubah (view error ini dipanggil memakai show_error()).
  • View Error PHP bawaan CodeIgniter 3 yang sudah diubah (error ini biasa muncul jika ada kesalahan kode pada view).

Catatan: untuk view error exception dan error DB masih bawaan CodeIgniter 3.

Demo

Untuk demo silahkan lihat DISINI (video).

Penggunaan

Setup CodeIgniter 3:

  1. Atur config base_url, log_threshold, encryption_key, session variable, csrf, compress_output Anda pada file application/config/config.php sesuai kebutuhan projek Anda.
  2. Beritahu CodeIgniter 3 kofigurasi database Anda di file application/config/database.php
  3. Jangan lupa tambahkan library, helper Anda jika ingin di-autoload pada file application/config/autoload.php.
  4. Import tabel-tabel ION AUTH ke dalam database Anda, file-nya berada pada folder application/third_party/ion_auth/sql/
  5. Jika sudah pada tahap production jangan lupa ubah semua file config CodeIgniter 3 pada application/config/production/

Setup ION AUTH

Untuk Ion Auth lakukan konfigurasi untuk site title, admin email, method hash, session hash pada file application/third_party/ion_auth/config/ion_auth.php, selengkapnya bisa dilihat disini.

Bawaan Otorisasi User

CoreUI

File contoh HTML, assets, JS, dan CSS CoreUI bisa dilihat di folder assets/coreui/. Sedangkan penggunaan CoreUI bisa dilihat disini.
Salah satu kelebihan CoreUI yang menarik yaitu pada sidebar disalah satu menunya ter-highlight otomatis jika halaman sekarang terbuka. Jadi para developer PHP tidak perlu lagi membuat pengecekan link sekarang yang terbuka menggunakan script PHP atau Javascript.

Membuat Controller Baru

Sebelum membuat controller baru tentukan dulu siapa yang bisa mengakses controller tersebut apakah admin, user biasa atau grup user tertentu. Karena itu ditiap controller perlu dibuat:

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

Dan untuk memanggil view gunakan $this->render('nama_view'); dan pastikan buat file view-nya berada dibawah folder application/views/coreui/. Silahkan pelajari kodingan MY_Controller di application/core/. Berikut kodingan dasar jika membuat controller baru.

<?php defined('BASEPATH') or exit('No direct script access allowed');

class Mynewcontroller extends MY_Controller
{
   public function __construct()
   {
      parent::__construct();      
   }

   public function index()
   {      
      $this->data['titlePage] = 'My New Controller';
      $this->render('dashboard_view');
   }
}

Untuk pembatasan akses gunakan kode berikut setelah parent::__construct(), jika:

  • pada controller hanya ingin diperiksa apakah user sudah login atau belum
if (!$this->ion_auth->logged_in()) {
   $this->session->set_userdata('previous_url', current_url());   
   redirect('Users/login', 'refresh');
}
  • pada controller ingin diperiksa apakah user adalah admin atau bukan
if (!$this->ion_auth->is_admin()) {   
   // arahkan ke dashboard atau ke controller apa saja sesuai keinginan
   redirect('Dashboard', 'refresh');
}
  • pada controller ingin diperiksa apakah user berada dalam satu grup tertentu
$group = 'member';

// gunakan nilai berikut jika hanya merujuk ke ID group
// $group = 2;

if (!$this->ion_auth->in_group($group)) {   
   // arahkan ke dashboard atau ke controller apa saja sesuai keinginan
   redirect('Dashboard', 'refresh');
}
  • pada controller ingin diperiksa apakah user berada dalam dua atau lebih digrup tertentu
// gunakan nilai berikut jika merujuk ke NAMA group
$group = array('member', 'operator');

// gunakan nilai berikut jika merujuk ke ID group
// $group = array(2, 3);

// gunakan nilai berikut jika ingin merujuk ke NAMA dan ID group
// $group = array('member', 3);

if (!$this->ion_auth->in_group($group)) {   
   // arahkan ke dashboard atau ke controller apa saja sesuai keinginan
   redirect('Dashboard', 'refresh');
}

// gunakan kode berikut jika ingin cek user berada dalam grup 1 dan 2 (menggunakan ID)
// $group = array(1, 2);
// if (!$this->ion_auth->in_group($group, false, true)) {   
//    redirect('Dashboard', 'refresh');
// }

Membuat View dari Controller

Membuat View baru akan selalu dimulai dengan tag HTML berikut:

<div class="container-lg">
   <div class="row">
   // isi data dari controller
   </div>
</div>

Donasi

Jika Anda merasa repo ini berguna bagi Anda dan merasa ingin traktir kami secangkir kopi bisa disalurkan lewat QR Code DANA kami atau melalui Saweria.

DANA

DANA

About

Admin template dengan CI3 - CoreUI - Ion Auth.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published