From fa7b33ea6c073acf810b4d2931d292012e7a5315 Mon Sep 17 00:00:00 2001
From: rionaldichandraseta <rionaldi.chandraseta@gmail.com>
Date: Thu, 19 Apr 2018 12:24:58 +0700
Subject: [PATCH] Add role check in user

---
 app/Http/Controllers/Auth/LoginController.php | 10 ++++++++++
 app/User.php                                  | 17 +++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php
index c3ba2a1..e3a65a0 100644
--- a/app/Http/Controllers/Auth/LoginController.php
+++ b/app/Http/Controllers/Auth/LoginController.php
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Auth;
 
 use App\Http\Controllers\Controller;
 use Illuminate\Foundation\Auth\AuthenticatesUsers;
+use Illuminate\Http\Request;
 
 class LoginController extends Controller
 {
@@ -36,4 +37,13 @@ class LoginController extends Controller
     {
         $this->middleware('guest')->except('logout');
     }
+
+    public function authenticated(Request $request) {
+        if($request->user()->isPegawaiOnly()){
+            return redirect('/pages/profile');
+        }
+        else {
+            return redirect('/pages');
+        }
+    }
 }
diff --git a/app/User.php b/app/User.php
index edc85ff..a5d3db2 100644
--- a/app/User.php
+++ b/app/User.php
@@ -5,6 +5,7 @@ namespace App;
 
 use App\Notification\ResetPassword;
 use Illuminate\Notifications\Notifiable;
+use Illuminate\Http\Request;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 
 class User extends Authenticatable
@@ -36,4 +37,20 @@ class User extends Authenticatable
     public function sendPasswordResetNotification($token) {
         $this->notify(new ResetPassword($token));
     }
+
+    public function isAdmin() {
+        return !is_null(Admin::find($this->id));
+    }
+
+    public function isPMO() {
+        return !is_null(PMO::find($this->id));
+    }
+
+    public function isPegawai() {
+        return !is_null(Pegawai::find($this->id));
+    }
+
+    public function isPegawaiOnly() {
+        return ($this->isPegawai() and !$this->isPMO() and !$this->isAdmin());
+    }
 }
-- 
GitLab