Skip to content

Commit

Permalink
Merge pull request #39 from tuandm/feature/enhance-permission
Browse files Browse the repository at this point in the history
Laravue permission feature
  • Loading branch information
tuandm committed May 1, 2019
2 parents 902ad69 + 61c381e commit e48ac53
Show file tree
Hide file tree
Showing 64 changed files with 2,362 additions and 646 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -6,10 +6,10 @@
<img src="https://img.shields.io/badge/laravel-5.8-red.svg" alt="vue">
</a>
<a href="https://github.com/vuejs/vue">
<img src="https://img.shields.io/badge/vue-2.6.8-brightgreen.svg" alt="vue">
<img src="https://img.shields.io/badge/vue-2.6.10-brightgreen.svg" alt="vue">
</a>
<a href="https://github.com/ElemeFE/element">
<img src="https://img.shields.io/badge/element--ui-2.6.1-brightgreen.svg" alt="element-ui">
<img src="https://img.shields.io/badge/element--ui-2.7.2-brightgreen.svg" alt="element-ui">
</a>
<a href="https://github.com/tuandm/laravue/blob/master/LICENSE">
<img src="https://img.shields.io/badge/license-MIT-brightgreen.svg" alt="license">
Expand Down
3 changes: 1 addition & 2 deletions app/Http/Controllers/AuthController.php
Expand Up @@ -9,11 +9,10 @@
namespace App\Http\Controllers;

use App\Laravue\JsonResponse;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
use App\Http\Resources\User as UserResource;
use App\Http\Resources\UserResource as UserResource;

/**
* Class AuthController
Expand Down
5 changes: 5 additions & 0 deletions app/Http/Controllers/LaravueController.php
Expand Up @@ -11,6 +11,11 @@

use Illuminate\Http\Request;

/**
* Class LaravueController
*
* @package App\Http\Controllers
*/
class LaravueController extends Controller
{
/**
Expand Down
76 changes: 76 additions & 0 deletions app/Http/Controllers/PermissionController.php
@@ -0,0 +1,76 @@
<?php
/**
* File PermissionController.php
*
* @author Tuan Duong <bacduong@gmail.com>
* @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)
{
//
}
}
99 changes: 99 additions & 0 deletions app/Http/Controllers/RoleController.php
@@ -0,0 +1,99 @@
<?php
/**
* File RoleController.php
*
* @author Tuan Duong <bacduong@gmail.com>
* @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);
}
}

0 comments on commit e48ac53

Please sign in to comment.