add admin gate
This commit is contained in:
@ -5,10 +5,12 @@ namespace App\Http\Controllers;
|
||||
use App\Models\Device;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
|
||||
class DeviceController extends Controller
|
||||
{
|
||||
//
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('devices.index', [
|
||||
@ -16,11 +18,15 @@ class DeviceController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function create(){
|
||||
public function create()
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
return view('devices.create');
|
||||
}
|
||||
|
||||
public function store(Request $request){
|
||||
public function store(Request $request)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$formFields = $request->validate([
|
||||
'title' => 'required',
|
||||
'device_type' => 'required',
|
||||
@ -36,11 +42,15 @@ class DeviceController extends Controller
|
||||
return redirect('/devices');
|
||||
}
|
||||
|
||||
public function edit(Device $device) {
|
||||
public function edit(Device $device)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
return view('devices.edit', ['device' => $device]);
|
||||
}
|
||||
|
||||
public function update(Device $device, Request $request){
|
||||
public function update(Device $device, Request $request)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$formFields = $request->validate([
|
||||
'title' => 'required',
|
||||
'device_type' => 'required',
|
||||
@ -56,7 +66,9 @@ class DeviceController extends Controller
|
||||
return back();
|
||||
}
|
||||
|
||||
public function destroy(Device $device){
|
||||
public function destroy(Device $device): RedirectResponse
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$device->delete();
|
||||
return redirect('devices');
|
||||
}
|
||||
|
@ -28,11 +28,13 @@ class LocationTransactionController extends Controller
|
||||
|
||||
public function edit(LocationTransaction $location)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
return view('locations.edit', ['location' => $location]);
|
||||
}
|
||||
|
||||
public function update(LocationTransaction $location, Request $request)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$formFields = $request->validate([
|
||||
'room_code' => 'required',
|
||||
'timestamp_located_since' => 'required'
|
||||
@ -45,6 +47,7 @@ class LocationTransactionController extends Controller
|
||||
|
||||
public function destroy(LocationTransaction $location)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$location->delete();
|
||||
return back();
|
||||
}
|
||||
|
@ -28,11 +28,13 @@ class OwnerTransactionController extends Controller
|
||||
|
||||
public function edit(OwnerTransaction $owner)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
return view('owners.edit', ['owner' => $owner]);
|
||||
}
|
||||
|
||||
public function update(OwnerTransaction $owner, Request $request)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$formFields = $request->validate([
|
||||
'rz_username' => 'required',
|
||||
'timestamp_owner_since' => 'required'
|
||||
@ -45,6 +47,7 @@ class OwnerTransactionController extends Controller
|
||||
|
||||
public function destroy(OwnerTransaction $owner)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$owner->delete();
|
||||
return back();
|
||||
}
|
||||
|
@ -8,32 +8,16 @@ use Illuminate\Http\Request;
|
||||
|
||||
class PurchasingInformationController extends Controller
|
||||
{
|
||||
public function create()
|
||||
{
|
||||
return view('purchasings.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$formFields = $request->validate([
|
||||
'price' => 'required',
|
||||
'timestamp_warranty_end' => 'required',
|
||||
'timestamp_purchase' => 'required',
|
||||
'cost_centre' => 'required',
|
||||
]);
|
||||
|
||||
PurchasingInformation::create($formFields);
|
||||
|
||||
return redirect('/');
|
||||
}
|
||||
|
||||
public function edit(Device $device)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
return view('purchasings.edit', ['purchasing' => $device->purchasing]);
|
||||
}
|
||||
|
||||
public function update(Device $device, Request $request)
|
||||
{
|
||||
$this->authorize('admin-only');
|
||||
$formFields = $request->validate([
|
||||
'price' => 'required',
|
||||
'timestamp_warranty_end' => 'required',
|
||||
@ -45,10 +29,4 @@ class PurchasingInformationController extends Controller
|
||||
|
||||
return redirect('/');
|
||||
}
|
||||
|
||||
public function destroy(PurchasingInformation $purchasing)
|
||||
{
|
||||
$purchasing->delete();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,8 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
// use Illuminate\Support\Facades\Gate;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
||||
|
||||
class AuthServiceProvider extends ServiceProvider
|
||||
@ -21,6 +22,10 @@ class AuthServiceProvider extends ServiceProvider
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
//
|
||||
$this->registerPolicies();
|
||||
|
||||
Gate::define('admin-only', function (User $user) {
|
||||
return $user->has_admin_privileges;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user