예제 #1
0
 /**
  * //login
  * @return redirect::to
  */
 public function doLogin()
 {
     if (!Cas::authenticate()) {
         return Redirect::to('report.html')->with('msg', Config::get('msg.errorSSO'))->with('alertLevel', 'danger');
     }
     $attributes = Cas::attr();
     $statusUvus = stripos($attributes['schacuserstatus'], 'uvus:OK');
     //Uvus no valido :)
     if ($statusUvus == false) {
         return Redirect::to(route('report.html'))->with('msg', Config::get('msg.uvusNoValido'))->with('alertLevel', 'danger');
     }
     $user = User::where('username', '=', $attributes['uid'])->first();
     //No existe user en BD => Primer Acceso
     if ($this->existsUser($user) == false) {
         // => registrar acceso
         $this->registraAcceso($attributes);
         // => Salva notificación para admins SGR
         $motivo = 'Nuevo acceso';
         $this->salvaNotificacion($attributes, $motivo);
         // => send mail para admins SGR
         $sgrMail = new sgrMail();
         $sgrMail->notificaRegistroUser($user);
         //notifica a los administradores designados que hay un nuevo usuario a registrar.
         // => Redirect report for user
         return Redirect::to(route('report.html'))->with('msg', Config::get('msg.uvusRegistrado'))->with('alertLevel', 'danger');
     }
     //User existe en BD
     // Cuenta desactivada :)
     if ($user->estado == false) {
         return Redirect::to(route('report.html'))->with('msg', Config::get('msg.uvusNoActivo'))->with('alertLevel', 'danger');
     }
     //Cuenta Caducada :)
     if (strtotime($user->caducidad) < strtotime(date('Y-m-d'))) {
         // => Salva notificación para admins SGR
         $motivo = 'Cuenta caducada';
         $this->salvaNotificacion($attributes, $motivo);
         return Redirect::to(route('report.html'))->with('msg', Config::get('msg.cuentaCaducada'))->with('alertLevel', 'danger');
     }
     //Cuenta OK
     Auth::loginUsingId($user->id);
     $sgrUser = new sgrUser($user);
     return Redirect::to($sgrUser->home());
 }