Browse Source

role & permission

master
Anindya Akhdan 3 years ago
parent
commit
c396d120c8
  1. 84
      app/Http/Controllers/RoleController.php
  2. 3
      app/Models/User.php
  3. 2
      database/seeders/DatabaseSeeder.php
  4. 62
      database/seeders/UserRolePermissionSeeder.php
  5. 7
      routes/web.php

84
app/Http/Controllers/RoleController.php

@ -0,0 +1,84 @@ @@ -0,0 +1,84 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class RoleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return 'role page';
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}

3
app/Models/User.php

@ -7,10 +7,11 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -7,10 +7,11 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
use HasApiTokens, HasFactory, Notifiable, HasRoles;
/**
* The attributes that are mass assignable.

2
database/seeders/DatabaseSeeder.php

@ -14,5 +14,7 @@ class DatabaseSeeder extends Seeder @@ -14,5 +14,7 @@ class DatabaseSeeder extends Seeder
public function run()
{
// \App\Models\User::factory(10)->create();
$this->call([UserRolePermissionSeeder::class]);
}
}

62
database/seeders/UserRolePermissionSeeder.php

@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Support\Str;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
class UserRolePermissionSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$default_user_value = [
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
DB::beginTransaction();
try {
//code...
$admin = User::create(array_merge([
'email' => 'admin@gmail.com',
'name' => 'admin',
], $default_user_value));
$staff = User::create(array_merge([
'email' => 'staff@gmail.com',
'name' => 'staff',
], $default_user_value));
$role_admin = Role::create(['name' => 'admin']);
$role_staff = Role::create(['name' => 'staff']);
$permission = Permission::create(['name' => 'read role']);
$permission = Permission::create(['name' => 'create role']);
$permission = Permission::create(['name' => 'update role']);
$permission = Permission::create(['name' => 'delete role']);
$role_admin->givePermissionTo('read role');
$role_admin->givePermissionTo('create role');
$role_admin->givePermissionTo('update role');
$role_admin->givePermissionTo('delete role');
$admin->assignRole('admin');
$staff->assignRole('staff');
DB::commit();
} catch (\Throwable $th) {
DB::rollback();
}
}
}

7
routes/web.php

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
<?php
use App\Http\Controllers\RoleController;
use Illuminate\Support\Facades\Route;
/*
@ -31,3 +32,9 @@ Route::get('/dashboard', function () { @@ -31,3 +32,9 @@ Route::get('/dashboard', function () {
})->middleware(['auth'])->name('dashboard');
require __DIR__ . '/auth.php';
// Route::resource('roles',RoleController::class);
Route::controller(RoleController::class)->group(function () {
Route::get('/roles', 'index');
});

Loading…
Cancel
Save