بِسْمِ اللَّهِ Mudah-mudahan tutorial Codeigniter 4 – Myth:Auth Bagian 2 Manajemen User (Tambah User) ini bermanfaat
Library Myth:Auth menyediakan layanan user diantaranya registrasi, aktivasi, reset password, grup berikut pengaturan role, dan lain-lain. Dimana layanan ini semua sudah disediakan secara interaktif tanpa harus ada campur tangan administrator website/aplikasi. Tapi dengan library ini memungkinkan untuk layanan tersebut dilakukan secara manual dalam hal ini administrator.
Untuk tambah user sebenarnya sudah disediakan registrasi, tapi tidak menutup kemungkinan ini kita otak-atik sedimikian rupa sehingga bisa menjadi fungsi tambah user. Saya disini hanya memanfaatkan coding yang sudah ada, yaitu mengambil dari fungsi register() dan attemptRegister(). Dengan sedikit perubahan tentunya.
Persiapan Codeigniter 4 – Myth:Auth Bagian 2 Manajemen User (Tambah User)
Untuk bisa melanjutkan pastikan sudah ada ini:
Editor yang digunakan adalah Visual Studio Code
Project Codeigniter dengan library Myth:Auth didalamnya, tutorialnya bisa dilihat Codeigniter 4 Login multiuser dengan library Myth:Auth
Bagi yang sudah Codeigniter 4 – Merubah tampilan Myth:Auth
Sudah mengerjakan Codeigniter 4 – Myth:Auth Bagian 1 groups dan permissions
Pertama
Buka controller Users (\app\Controllers\Users.php) kemudian tambahkan entity User, GroupModel dan config Auth pada awal script setelah namespace. Scriptnya sebagai berikut:
use \Myth\Auth\Entities\User;
use \Myth\Auth\Authorization\GroupModel;
use \Myth\Auth\Config\Auth as AuthConfig;
Kemudian kenalkan (dengan cara membuat fungsi __construct) script diatas agar bisa digunakan/dipanggil untuk coding
protected $auth;
protected $config;
public function __construct()
{
$this->config = config('Auth');
$this->auth = service('authentication');
}
Selanjutnya buat fungsi add() untuk memanggil form/view add. Scriptnya sebagai berikut:
public function add()
{
$data = [
'title' => 'Add Users',
'config' => $this->config,
];
return view('users/add', $data);
}
Kemudian buat juga fungsi save() untuk menyimpan data. Scriptnya sebagai berikut:
public function save()
{
$users = model(UserModel::class);
$rules = [
'username' => 'required|alpha_numeric_space|min_length[3]|max_length[30]|is_unique[users.username]',
'email' => 'required|valid_email|is_unique[users.email]',
];
if (! $this->validate($rules))
{
return redirect()->back()->withInput()->with('errors', $this->validator->getErrors());
}
$rules = [
'password' => 'required|strong_password',
'pass_confirm' => 'required|matches[password]',
];
if (! $this->validate($rules))
{
return redirect()->back()->withInput()->with('errors', $this->validator->getErrors());
}
// Save the user
$allowedPostFields = array_merge(['password'], $this->config->validFields, $this->config->personalFields);
$user = new User($this->request->getPost($allowedPostFields));
$this->config->requireActivation === null ? $user->activate() : $user->generateActivateHash();
// Ensure default group gets assigned if set
if (! empty($this->config->defaultUserGroup)) {
$users = $users->withGroup($this->config->defaultUserGroup);
}
if (! $users->save($user))
{
return redirect()->back()->withInput()->with('errors', $users->errors());
}
if ($this->config->requireActivation !== null)
{
$activator = service('activator');
$sent = $activator->send($user);
if (! $sent)
{
return redirect()->back()->withInput()->with('error', $activator->error() ?? lang('Auth.unknownError'));
}
// Success!
return redirect()->to(base_url('/users/index'));
}
// Success!
return redirect()->to(base_url('/users/index'));
}
Kedua
Tambahkan view add (\app\Views\users\add.php) dan scriptnya sebagai berikut:
<?= $this->extend('template/index') ?>
<?= $this->section('page-content') ?>
<div class="text-center">
<h1 class="h4 text-gray-900 mb-4"><?= $title ?></h1>
</div>
<?= view('\Myth\Auth\Views\_message_block') ?>
<form action="<?= base_url(); ?>/users/save" class="user" method="post">
<?= csrf_field() ?>
<div class="form-group row">
<div class="col-sm-12">
<input type="email" class="form-control form-control-user <?php if(session('errors.email')) : ?>is-invalid<?php endif ?>"
name="email" aria-describedby="emailHelp" placeholder="<?=lang('Auth.email')?>" value="<?= old('email') ?>">
</div>
</div>
<div class="form-group row">
<div class="col-sm-12">
<input type="text" class="form-control form-control-user <?php if(session('errors.username')) : ?>is-invalid<?php endif ?>" name="username" placeholder="<?=lang('Auth.username')?>" value="<?= old('username') ?>">
</div>
</div>
<div class="form-group row">
<div class="col-sm-6 mb-3 mb-sm-0">
<input type="password" name="password" class="form-control form-control-user <?php if(session('errors.password')) : ?>is-invalid<?php endif ?>" placeholder="<?=lang('Auth.password')?>" autocomplete="off">
</div>
<div class="col-sm-6">
<input type="password" name="pass_confirm" class="form-control form-control-user <?php if(session('errors.pass_confirm')) : ?>is-invalid<?php endif ?>" placeholder="<?=lang('Auth.repeatPassword')?>" autocomplete="off">
</div>
</div>
<br>
<button type="submit" class="btn btn-primary btn-user btn-block">Simpan</button>
</form>
<?= $this->endSection() ?>
Tampilan form add seperti ini:

Untuk memanggil atau menampilkan form add, bisa ditambahkan link tambah setelah link Daftar/List pada template (\app\Views\template\index.php). Scriptnya sebagai berikut:
<a class="collapse-item" href="<?= base_url() ?>/users/add">Tambah</a>
Tampilan link Tambah-nya akan seperti ini

Ketiga
Yang terakhir sebagai contoh yang sudah saya kerjakan silakan buka alamat https://demo.belajardisiniaja.com/users untuk login silakan gunakan user dengan role adminstrator berikut:
Username : user01
Password : AEHqfe3F4z@Zwes
Tampilan Daftar/List Users sebagai berikut:

Kemudian klik link Tambah (Users)
Demikian tutorial Codeigniter 4 – Myth:Auth Bagian 2 Manajemen User (Tambah User). Silakan dilanjutkan dan dikembangkan lagi.
Mudah-mudahan tutorial ini bermanfaat.
Keren bang, tapi saya masih bigung dengan penjelasannya. bikin vidionya dong
Maaf.. Belum sempat…
You ought to take part in a contest for one of the best websites on the net. I am going to highly recommend this website!
untuk tutorial menampilkan list data usernya mana ya kak, soalnya kan ini data usernya mengambil dari table myth/auth
Coba liat disini, pada bagian Kedua. Pada controller Users disana ada function index untuk menampilkan list user. Silakan dicoba. Semoga bisa membantu..