From d2b8d2eb90eb8352464d8e9f799d424728c8f9b2 Mon Sep 17 00:00:00 2001 From: Ibrohim Kholilul Islam <ibrohimislam@gmail.com> Date: Tue, 5 Apr 2016 02:17:00 +0700 Subject: [PATCH] backend UserRole --- app/Http/Controllers/RoleController.php | 59 +++++++++++++++++++++++++ app/Http/Kernel.php | 3 +- app/Http/routes.php | 2 + app/UsersRoles.php | 2 + 4 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 app/Http/Controllers/RoleController.php diff --git a/app/Http/Controllers/RoleController.php b/app/Http/Controllers/RoleController.php new file mode 100644 index 0000000..088f67f --- /dev/null +++ b/app/Http/Controllers/RoleController.php @@ -0,0 +1,59 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; +use App\UsersRoles; +use App\User; +use App\Http\Requests; + +use Illuminate\Support\Facades\Input; + +class RoleController extends Controller +{ + protected $user_roles = []; + + public function __construct() + { + //$this->middleware('auth'); + //$this->middleware('user.admin'); + //$this->user_roles = Auth::user()->roles()->get()->toArray(); + } + + public function has_role($role_name) + { + foreach ($this->user_roles as $role) + { + if ($role['name'] == $role_name) + { + return true; + } + } + + return false; + } + + public function index($userId) + { + return User::find($userId)->roles()->get(); + } + + public function store($userId) + { + $data = Input::json(); + if (UsersRoles::create(["id_user"=>$userId, "id_role"=>$data->get('id_role')])) + return ["status"=>"ok"]; + else + return ["status"=>"err"]; + } + + public function destroy($userId, $roleId) + { + if (UsersRoles::where('id_user', $userId)->where('id_role', $roleId)->delete()) + return ["status"=>"ok"]; + else + return ["status"=>"err"]; + } + +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index dc48d90..d0262b1 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -27,8 +27,7 @@ class Kernel extends HttpKernel \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class ], 'api' => [ diff --git a/app/Http/routes.php b/app/Http/routes.php index a09cb51..189f4ab 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -20,4 +20,6 @@ Route::group(['middleware' => 'web'], function () { Route::resource('user', 'UserController'); Route::resource('tps', 'TpsController'); Route::resource('schedule', 'ScheduleController'); + + Route::resource('user.role', 'RoleController'); }); diff --git a/app/UsersRoles.php b/app/UsersRoles.php index 10077fe..9a520a3 100644 --- a/app/UsersRoles.php +++ b/app/UsersRoles.php @@ -6,6 +6,8 @@ use Illuminate\Database\Eloquent\Model; class UsersRoles extends Model { + protected $fillable = array('id_user', 'id_role'); + public function user() { return $this->hasOne('App\User', 'id', 'id_user'); -- GitLab