예제 #1
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @param  string|null  $guard
  * @return mixed
  */
 public function handle($request, Closure $next, $guard = null)
 {
     if (Auth::guard($guard)->check()) {
         return $next($request);
     } else {
         if (SSO::check()) {
             try {
                 $userData = SSO::getUser();
             } catch (Exception $e) {
                 SSO::logout();
             }
             if (substr($userData->npm, 0, 2) === "15" && $userData->faculty === "ILMU KOMPUTER") {
                 $request->session()->put('sso', json_encode(SSO::getUser()));
                 if (Auth::guard($guard)->attempt(['username' => $userData->username, 'password' => ''])) {
                     return $next($request);
                 } else {
                     $id = DB::table('users')->insertGetId(['username' => $userData->username, 'fullname' => $userData->name, 'voted_threads' => "|", 'voted_replies' => "|"]);
                     // Create folder for user
                     Storage::makeDirectory('users/' . $id);
                     Auth::guard($guard)->loginUsingId($id);
                     return $next($request);
                 }
             }
             return abort(401);
         } else {
             SSO::authenticate();
         }
     }
 }
예제 #2
0
 public function index()
 {
     if (!SSO::check()) {
         SSO::authenticate();
     }
     $user = SSO::getUser();
     $userdata = array('username' => $user->username, 'name' => $user->name, 'npm' => $user->npm, 'angkatan' => $this->parseTahunAngkatan($user->npm), 'jurusan' => $user->study_program, 'biohash' => $this->hashingBio($user->username, $user->npm));
     // hanya angkatan 2013-2015 yang diperbolehkan daftar
     if ($userdata['angkatan'] != '2013' & $userdata['angkatan'] != '2014' & $userdata['angkatan'] != '2015' | $user->faculty != 'ILMU KOMPUTER') {
         redirect(site_url());
     }
     // tutup pendaftaran
     if (time() > strtotime('6th February 2016 23:55:00.0') - (21 * 60 + 30) & !(time() > strtotime('8th February 2016 19:30:00.0') - (21 * 60 - 30)) & !$this->biodata->isUserRegistered($user->username) & !$this->isAdmin($user->username)) {
         // registration closed
         redirect(site_url());
     }
     // re-set session
     $this->session->unset_userdata('userdata');
     $this->session->set_userdata('userdata', $userdata);
     // check if user is admin
     if ($this->useradmin->isAdmin($user->username)) {
         // redirect to admin747835
         redirect(site_url('admin747835'));
     }
     // check if user exist or not
     if ($this->biodata->isUserRegistered($user->username)) {
         // user exist
         // redirect to dashboard
         redirect(site_url('dashboard'));
     } else {
         // user not exist
         // create initial data in database
         if (!$this->biodata->get($user->username)) {
             $this->saveUserDataToDatabase($userdata);
         }
         // redirect to form
         redirect(site_url('register'));
     }
 }
예제 #3
0
 public function index()
 {
     if (time() < strtotime('26th January 2016 18:16:00.0') - (21 * 60 + 30)) {
         redirect(site_url());
     }
     if (!SSO::check()) {
         SSO::authenticate();
     }
     $user = SSO::getUser();
     $userdata = array('username' => $user->username, 'name' => $user->name, 'npm' => $user->npm, 'angkatan' => $this->parseTahunAngkatan($user->npm), 'jurusan' => $user->study_program, 'biohash' => $this->hashingBio($user->username, $user->npm));
     // 2012-- & the other is not allowed, redirect to index
     if ($userdata['angkatan'] != '2013' & $userdata['angkatan'] != '2014' & $userdata['angkatan'] != '2015' & $user->faculty != 'ILMU KOMPUTER') {
         redirect(site_url());
     }
     // re-set session
     $this->session->unset_userdata('userdata');
     $this->session->set_userdata('userdata', $userdata);
     // check if user is admin
     if ($this->useradmin->isAdmin($user->username)) {
         // redirect to admin747835
         redirect(site_url('admin747835'));
     }
     // check if user exist or not
     if ($this->biodata->isUserRegistered($user->username)) {
         // user exist
         // redirect to dashboard
         redirect(site_url('dashboard'));
     } else {
         // user not exist
         // create initial data in database
         if (!$this->biodata->get($user->username)) {
             $this->saveUserDataToDatabase($userdata);
         }
         // redirect to form
         redirect(site_url('register'));
     }
 }
예제 #4
0
 public function login()
 {
     SSO::authenticate();
     if (SSO::check()) {
         $user = SSO::getUser();
         //TODO cek udah ada di database apa belum
         $userDb = userModel::where('username', $user->username)->first();
         if ($userDb) {
             $user->role = $userDb->role;
             Session::put('user', $user);
             return redirect('pkm/add');
         } else {
             Session::put('user', $user);
         }
         return redirect('auth/newUser');
     }
 }