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