Secara default, dalam modul multi-tenancy tim kami, setiap anggota tim melihat semua entri tim mereka, dan pengguna tim dikelola hanya oleh administrator sistem. Pelanggan meminta kami bagaimana menambahkan peran baru “admin tim” untuk mengelola pengguna tim mereka sendiri. Jadi kami membuat proyek demo dengan repositori.
Sebagai posisi awal, saya berasumsi bahwa Anda telah menghasilkan adminPanel dengan modul multi-tenancy dan memilih “tim” multi-tenancy, bukan “pengguna”.
Selanjutnya, saya akan menunjukkan tindakan dalam 6 langkah, cara menambahkan “admin tim”.
Langkah 1. Tambahkan bidang baru dalam model pengguna
Kami tidak akan menambahkan peran baru ke yang sudah ada (admin & pengguna), kami hanya akan menambahkan bidang: Users.team_admin – Anda dapat menambahkannya di QuickAdminpanel sebagai kotak centang, atau setelah diunduh sebagai bidang “Boolean” dalam migrasi dan app/user.php.
Default seharusnya PALSU.
Schema::table('users', function (Blueprint $table) {
$table->boolean('team_admin')->default(0)->nullable();
});
Langkah 2. Model Pengguna: Admin Tim – Atribut
Mari tambahkan atribut lain ke app/user.php Itu akan memeriksa apakah pengguna admin sistem atau admin tim:
// That method exists by default in QuickAdminPanel
public function getIsAdminAttribute()
{
return $this->roles()->where('id', 1)->exists();
}
// That is new method
public function getIsTeamAdminAttribute()
{
return $this->is_admin || $this->team_admin;
}
Setelah melakukan itu, kami akan dapat memeriksanya dari mana saja, seperti $ user-> is_team_admin atau auth ()-> user ()-> is_team_admin. Dan kami akan melakukan hal itu, pada langkah berikutnya.
Langkah 3. Menu: Tampilkan pengguna untuk Admin Tim
Secara default, hanya administrator sistem yang melihat item menu manajemen pengguna di bilah sisi kiri. Ayo ubah.
Kami akan menggunakan yang baru is_team_admin Atribut, lihat di bawah.
@can('user_management_access')
@if(auth()->user()->is_team_admin)
<li class="nav-item nav-dropdown">
<a class="nav-link nav-dropdown-toggle" href="#">
<i class="fa-fw fas fa-users nav-icon">
</i>
{{ trans('cruds.userManagement.title') }}
</a>
{{-- ... other sub-menu items --}}
</li>
@endif
@endcan
Juga, kita perlu mengizinkan user_management_access untuk semua pengguna kalau begitu. Jadi kita perlu mengedit Basis Data/Biji/PermissionRoletableSeeder.php:
Tua:
$user_permissions = $admin_permissions->filter(function ($permission) {
return substr($permission->title, 0, 5) != 'user_'
&& substr($permission->title, 0, 5) != 'role_'
&& substr($permission->title, 0, 11) != 'permission_';
});
Sekarang:
// Simple can't manage roles/permissions/teams, but can manage users now
$user_permissions = $admin_permissions->filter(function ($permission) {
return substr($permission->title, 0, 5) != 'role_'
&& substr($permission->title, 0, 11) != 'permission_'
&& substr($permission->title, 0, 5) != 'team_';
});
Langkah 4. Keamanan tambahan di Pengontrol
Tentu saja, tidak cukup untuk menampilkan/menyembunyikan item menu. Kita perlu memastikan bahwa non-tim-admin tidak akan mengakses manajemen pengguna.
APP/HTTP/CONTROLER/ADMIN/USERSCONTROLLER.PHP:
public function index()
{
// Old version:
// abort_if(Gate::denies('user_access'), Response::HTTP_FORBIDDEN, '403 Forbidden');
// New version:
abort_if(Gate::denies('user_access') || !auth()->user()->is_team_admin, Response::HTTP_FORBIDDEN, '403 Forbidden');
Dan Anda perlu mengulangi perubahan itu UsersController metode.
Langkah 5. Model pengguna adalah multi-tenant sekarang
Secara default, pengguna tidak memiliki multi-tenancy tetapi sekarang mereka harus melakukannya. Jadi kami membuat perubahan ini app/user.php – Lihat dalam tebal:
use App\Traits\MultiTenantModelTrait;
class User extends Authenticatable
{
use SoftDeletes, Notifiable, HasApiTokens, MultiTenantModelTrait;
// ... other model's code
Langkah 6. Pengguna Buat/Edit Formulir: Ubah bidang yang terlihat
Akhirnya, kita perlu mengubah peran mana yang melihat bidang apa dalam bentuk pengguna.
– Administrator dapat memilih a peranAdmin tim tidak bisa (perannya hardcoded sebagai pengguna sederhana saat itu);
– Administrator dapat memilih a timAdmin Tim hanya beroperasi dalam tim mereka sendiri.
Untuk itu, kami membuat perubahan Sumber daya/tampilan/admin/create.blade.php dan folder yang sama edit.blade.php. Ini adalah file yang terlalu besar untuk ditambahkan di sini, jadi inilah tautan ke komit repositori.

Lihat di sini – Administrator Tim tidak melihat peran dan tim pilihan.
Dan itu saja. Pada saat itu, pengguna admin tim Anda akan dapat menambah/mengedit pengguna lain dari tim yang sama.
Kode Lengkap dengan Perubahan Repositori: LaravelDaily/Quickadminpanel-Team-Admin-Demo
News
Berita
News Flash
Blog
Technology
Sports
Sport
Football
Tips
Finance
Berita Terkini
Berita Terbaru
Berita Kekinian
News
Berita Terkini
Olahraga
Pasang Internet Myrepublic
Jasa Import China
Jasa Import Door to Door
Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.
Comments are closed, but trackbacks and pingbacks are open.