-
Notifications
You must be signed in to change notification settings - Fork 653
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #39 from tuandm/feature/enhance-permission
Laravue permission feature
- Loading branch information
Showing
64 changed files
with
2,362 additions
and
646 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
<?php | ||
/** | ||
* File PermissionController.php | ||
* | ||
* @author Tuan Duong <[email protected]> | ||
* @package Laravue | ||
* @version 1.0 | ||
*/ | ||
namespace App\Http\Controllers; | ||
|
||
use App\Http\Resources\PermissionResource; | ||
use Illuminate\Http\Request; | ||
use App\Laravue\Models\Permission; | ||
|
||
/** | ||
* Class PermissionController | ||
* | ||
* @package App\Http\Controllers | ||
*/ | ||
class PermissionController extends Controller | ||
{ | ||
/** | ||
* Display a listing of the resource. | ||
* | ||
* @return \Illuminate\Http\Response | ||
*/ | ||
public function index() | ||
{ | ||
return PermissionResource::collection(Permission::all()); | ||
} | ||
|
||
/** | ||
* 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) | ||
{ | ||
// | ||
} | ||
|
||
/** | ||
* 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) | ||
{ | ||
// | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
<?php | ||
/** | ||
* File RoleController.php | ||
* | ||
* @author Tuan Duong <[email protected]> | ||
* @package Laravue | ||
* @version 1.0 | ||
*/ | ||
namespace App\Http\Controllers; | ||
|
||
use App\Http\Resources\PermissionResource; | ||
use App\Laravue\Models\Permission; | ||
use App\Laravue\Models\User; | ||
use Illuminate\Http\Request; | ||
use App\Laravue\Models\Role; | ||
use App\Http\Resources\RoleResource; | ||
use Illuminate\Support\Facades\Auth; | ||
|
||
/** | ||
* Class RoleController | ||
* | ||
* @package App\Http\Controllers | ||
*/ | ||
class RoleController extends Controller | ||
{ | ||
/** | ||
* Display a listing of the resource. | ||
* | ||
* @return \Illuminate\Http\Response | ||
*/ | ||
public function index() | ||
{ | ||
return RoleResource::collection(Role::all()); | ||
} | ||
|
||
/** | ||
* 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 Role | ||
* @return \Illuminate\Http\Response | ||
*/ | ||
public function show(Role $role) | ||
{ | ||
// | ||
} | ||
|
||
/** | ||
* Update the specified resource in storage. | ||
* | ||
* @param \Illuminate\Http\Request $request | ||
* @param Role $role | ||
* @return \Illuminate\Http\Response | ||
*/ | ||
public function update(Request $request, Role $role) | ||
{ | ||
if ($role === null || $role->isAdmin()) { | ||
return response()->json(['error' => 'Role not found'], 404); | ||
} | ||
|
||
$permissionIds = $request->get('permissions', []); | ||
$permissions = Permission::allowed()->whereIn('id', $permissionIds)->get(); | ||
$role->syncPermissions($permissions); | ||
$role->save(); | ||
return new RoleResource($role); | ||
} | ||
|
||
/** | ||
* Remove the specified resource from storage. | ||
* | ||
* @param int $id | ||
* @return \Illuminate\Http\Response | ||
*/ | ||
public function destroy($id) | ||
{ | ||
// | ||
} | ||
|
||
/** | ||
* Get permissions from role | ||
* | ||
* @param Role $role | ||
* @return \Illuminate\Http\Response | ||
*/ | ||
public function permissions(Role $role) | ||
{ | ||
return PermissionResource::collection($role->permissions); | ||
} | ||
} |
Oops, something went wrong.