Installed laravel-permission and laravel-modules
This commit is contained in:
89
app/Http/Controllers/PermissionController.php
Normal file
89
app/Http/Controllers/PermissionController.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\User;
|
||||
use App\Permission;
|
||||
use App\Http\Requests\StorePermission;
|
||||
use App\Http\Requests\UpdatePermission;
|
||||
|
||||
class PermissionController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$response = Permission::all();
|
||||
|
||||
return response()->json([
|
||||
'data' => $response
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage
|
||||
* @param StorePermission $request
|
||||
* @return Response
|
||||
*/
|
||||
public function store(StorePermission $request)
|
||||
{
|
||||
$validated = $request->validated();
|
||||
|
||||
$response = Permission::create($validated);
|
||||
|
||||
return response()->json([
|
||||
'data' => $response
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$response = Permission::findOrFail($id);
|
||||
|
||||
return response()->json([
|
||||
'data' => $response
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage
|
||||
* @param UpdatePermission $request
|
||||
* @return Response
|
||||
*/
|
||||
public function update(UpdatePermission $request, $id)
|
||||
{
|
||||
$validated = $request->validated();
|
||||
|
||||
$permission = Permission::findOrFail($id);
|
||||
|
||||
$permission->update($validated);
|
||||
|
||||
return response()->json([
|
||||
'data' => $permission
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$permission = Permission::findOrFail($id);
|
||||
|
||||
$permission->delete();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'The data has been deleted'
|
||||
]);
|
||||
}
|
||||
}
|
||||
88
app/Http/Controllers/RoleController.php
Normal file
88
app/Http/Controllers/RoleController.php
Normal file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Role;
|
||||
use App\Http\Requests\StoreRole;
|
||||
use App\Http\Requests\UpdateRole;
|
||||
|
||||
class RoleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$response = Role::all();
|
||||
|
||||
return response()->json([
|
||||
'data' => $response
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage
|
||||
* @param StoreRole $request
|
||||
* @return Response
|
||||
*/
|
||||
public function store(StoreRole $request)
|
||||
{
|
||||
$validated = $request->validated();
|
||||
|
||||
$response = Role::create($validated);
|
||||
|
||||
return response()->json([
|
||||
'data' => $response
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$response = Role::findOrFail($id);
|
||||
|
||||
return response()->json([
|
||||
'data' => $response
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage
|
||||
* @param UpdateRole $request
|
||||
* @return Response
|
||||
*/
|
||||
public function update(UpdateRole $request, $id)
|
||||
{
|
||||
$validated = $request->validated();
|
||||
|
||||
$role = Role::findOrFail($id);
|
||||
|
||||
$role->update($validated);
|
||||
|
||||
return response()->json([
|
||||
'data' => $role
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$role = Role::findOrFail($id);
|
||||
|
||||
$role->delete();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'The data has been deleted'
|
||||
]);
|
||||
}
|
||||
}
|
||||
72
app/Http/Controllers/UserRolePermissionController.php
Normal file
72
app/Http/Controllers/UserRolePermissionController.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Permission;
|
||||
use App\Role;
|
||||
use App\Http\Resources\PermissionResource;
|
||||
use App\Http\Resources\RoleResource;
|
||||
|
||||
class UserRolePermissionController extends Controller
|
||||
{
|
||||
public function permissionAttachRole($permission, $role)
|
||||
{
|
||||
$permission = Permission::findOrFail($permission);
|
||||
$role = Role::findOrFail($role);
|
||||
|
||||
$permission->assignRole($role);
|
||||
|
||||
return new PermissionResource($permission);
|
||||
}
|
||||
|
||||
public function permissionAttachMultiRoles(Request $roles, $permission)
|
||||
{
|
||||
$permission = Permission::findOrFail($permission);
|
||||
$roles = Role::whereIn('id', $roles)->get();
|
||||
|
||||
$permission->syncRoles($roles);
|
||||
|
||||
return new PermissionResource($permission);
|
||||
}
|
||||
|
||||
public function permissionRemoveRole($permission, $role)
|
||||
{
|
||||
$permission = Permission::findOrFail($permission);
|
||||
$role = Role::findOrFail($role);
|
||||
|
||||
$permission->removeRole($role);
|
||||
|
||||
return new PermissionResource($permission);
|
||||
}
|
||||
|
||||
public function roleAttachPermission($role, $permission)
|
||||
{
|
||||
$role = Role::findOrFail($role);
|
||||
$permission = Permission::findOrFail($permission);
|
||||
|
||||
$role->givePermissionTo($permission);
|
||||
|
||||
return new RoleResource($role);
|
||||
}
|
||||
|
||||
public function roleAttachMultiPermissions(Request $permissions, $role)
|
||||
{
|
||||
$role = Role::findOrFail($role);
|
||||
$permissions = Permission::whereIn('id', $permissions)->get();
|
||||
|
||||
$role->syncPermissions($permissions);
|
||||
|
||||
return new RoleResource($role);
|
||||
}
|
||||
|
||||
public function roleRemovePermission($role, $permission)
|
||||
{
|
||||
$role = Role::findOrFail($role);
|
||||
$permission = Permission::findOrFail($permission);
|
||||
|
||||
$role->revokePermissionTo($permission);
|
||||
|
||||
return new RoleResource($role);
|
||||
}
|
||||
}
|
||||
30
app/Http/Requests/StorePermission.php
Normal file
30
app/Http/Requests/StorePermission.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use App\Permission;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class StorePermission extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::user()->can('create-permission');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return Permission::getCreateRules();
|
||||
}
|
||||
}
|
||||
30
app/Http/Requests/StoreRole.php
Normal file
30
app/Http/Requests/StoreRole.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Role;
|
||||
|
||||
class StoreRole extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::user()->can('create-role');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return Role::getCreateRules();
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/UpdatePermission.php
Normal file
32
app/Http/Requests/UpdatePermission.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use App\Permission;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class UpdatePermission extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::user()->can('update-permission');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
$id = $this->permission;
|
||||
|
||||
return Permission::getUpdateRulesForId($id);
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/UpdateRole.php
Normal file
32
app/Http/Requests/UpdateRole.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Role;
|
||||
|
||||
class UpdateRole extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::user()->can('update-role');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
$id = $this->role;
|
||||
|
||||
return Role::getUpdateRulesForId($id);
|
||||
}
|
||||
}
|
||||
32
app/Http/Resources/PermissionResource.php
Normal file
32
app/Http/Resources/PermissionResource.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\Resource;
|
||||
|
||||
class PermissionResource extends Resource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'data' => [
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'guard_name' => $this->guard_name,
|
||||
'created_at' => $this->created_at->toIso8601String(),
|
||||
'updated_at' => $this->updated_at->toIso8601String(),
|
||||
'deleted_at' => $this->deleted_at
|
||||
? $this->deleted_at->toIso8601String()
|
||||
: $this->deleted_at,
|
||||
'roles' => $this->roles,
|
||||
'users' => $this->users,
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Resources/RoleResource.php
Normal file
32
app/Http/Resources/RoleResource.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\Resource;
|
||||
|
||||
class RoleResource extends Resource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'data' => [
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'guard_name' => $this->guard_name,
|
||||
'created_at' => $this->created_at->toIso8601String(),
|
||||
'updated_at' => $this->updated_at->toIso8601String(),
|
||||
'deleted_at' => $this->deleted_at
|
||||
? $this->deleted_at->toIso8601String()
|
||||
: $this->deleted_at,
|
||||
'permissions' => $this->permissions,
|
||||
'users' => $this->users
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user