public function doLogin()
 {
     $code = Input::get('code');
     if (strlen($code) == 0) {
         return Redirect::to('/')->with('message', 'There was an error communicating with Facebook');
     }
     $facebook = new Facebook(Config::get('facebook'));
     $uid = $facebook->getUser();
     if ($uid == 0) {
         return Redirect::to('/')->with('message', 'There was an error');
     }
     $me = $facebook->api('/me', ['fields' => ['id', 'first_name', 'last_name', 'picture', 'email', 'gender']]);
     $profile = Profile::whereUid($uid)->first();
     if (empty($profile)) {
         $user = new User();
         $user->name = $me['first_name'] . ' ' . $me['last_name'];
         $user->email = $me['email'];
         $user->photo = 'https://graph.facebook.com/' . $me['id'] . '/picture?type=large';
         $user->save();
         $profile = new Profile();
         $profile->uid = $uid;
         $profile->username = $me['id'];
         $profile->gender = $me['gender'];
         $profile = $user->profiles()->save($profile);
     }
     $profile->access_token = $facebook->getAccessToken();
     $profile->save();
     $user = $profile->user;
     Auth::login($user);
     return Redirect::to('/')->with('message', 'Logged in with Facebook');
 }
 protected function getfbUser()
 {
     $code = Input::get('code');
     if (strlen($code) == 0) {
         return Redirect::to('/')->with('message', 'There was an error communicating with Facebook');
     }
     $facebook = new Facebook(Config::get('facebook'));
     $uid = $facebook->getUser();
     if ($uid == 0) {
         return Redirect::to('/')->with('message', 'There was an error');
     }
     $me = $facebook->api('/me');
     // check if that email exists in wordpress database
     //if there is user with that email, log them in
     //otherwise insert that user with dummy password, and alert that to user
     $profile = Profile::whereUid($uid)->first();
     if (empty($profile)) {
         $user = new User();
         $user->user_login = $me['email'];
         $user->user_nicename = $me['first_name'] . ' ' . $me['last_name'];
         $user->user_email = $me['email'];
         //$user->photo = 'https://graph.facebook.com/'.$me['username'].'/picture?type=large';
         $user->save();
         $profile = new Profile();
         $profile->uid = $uid;
         $profile->username = $me['first_name'] . " " . $me['last_name'];
         $profile = $user->profiles()->save($profile);
     }
     $profile->access_token = $facebook->getAccessToken();
     $profile->save();
     $user = $profile->user;
     //dd($user);
     Auth::login($user);
     $username = $me['email'];
     Session::put('username', $username);
     $userId = User::where('user_login', $username)->pluck('ID');
     Session::put('userId', $userId);
     return Redirect::to('/');
     //->with('message', 'Logged in with Facebook');
 }
 public function loginWithGithub()
 {
     $code = Input::get('code');
     $githubService = OAuth::consumer('Github');
     if (!empty($code)) {
         try {
             $token = $githubService->requestAccessToken($code);
             $result = json_decode($githubService->request('user'), true);
         } catch (Exception $e) {
             die("Too many requests, access denied by Github. Please wait a while.");
         }
         $profile = Profile::where('uid', '=', $result['id'])->first();
         if (empty($profile)) {
             $user = new User();
             $user->name = $result['name'];
             $user->email = $result['email'];
             $user->photo = $result['avatar_url'];
             $user->save();
             $profile = new Profile();
             $profile->uid = $result['id'];
             // $profile->access_token = $fb->requestAccessToken( $code );
             $profile->username = $result['login'];
             $profile->gender = $result['bio'];
             $profile = $user->profiles()->save($profile);
         }
         $profile->save();
         $user = $profile->user;
         Auth::login($user);
         return Redirect::to('/')->with('message', 'Logged in with Facebook');
     } else {
         // get githubService authorization
         $url = $githubService->getAuthorizationUri();
         return Redirect::to((string) $url);
     }
 }
Example #4
0
    $uid = $facebook->getUser();
    if ($uid == 0) {
        return Redirect::to('/')->with('message', 'There was an error');
    }
    $me = $facebook->api('/me');
    $profile = Profile::whereUid($uid)->first();
    if (empty($profile)) {
        $user = new User();
        $user->name = $me['first_name'] . ' ' . $me['last_name'];
        $user->email = $me['email'];
        $user->photo = 'https://graph.facebook.com/' . $me['username'] . '/picture?type=large';
        $user->save();
        $profile = new Profile();
        $profile->uid = $uid;
        $profile->username = $me['username'];
        $profile = $user->profiles()->save($profile);
    }
    $profile->access_token = $facebook->getAccessToken();
    $profile->save();
    $user = $profile->user;
    Auth::login($user);
    return Redirect::to('/')->with('message', 'Logged in with Facebook');
});
/**********Admin*************/
Route::get('admin', 'AdminController@index');
////////////////////User Management
Route::get('admin/users/add-new', 'AdminController@addnew');
Route::get('admin/users/manage', 'AdminController@manageuser');
Route::post('changeStatus', 'AdminController@changeStatus');
Route::post('userDelete', 'AdminController@userDelete');
Route::get('admin/users/view/{id}', 'AdminController@userView');
 public function create_administrative_staff()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["actions"] = Session::get('actions');
         if (in_array('side_nuevo_personal_administrativo', $data["actions"])) {
             // Validate the info, create rules for the inputs
             $attributes = array('dni' => 'DNI del Personal Administrativo', 'names' => 'Nombres del Personal Administrativo', 'lastname' => 'Apellidos del Personal Administrativo', 'birthdate' => 'Fecha de nacimiento', 'email' => 'E-mail', 'telephone' => 'Teléfono o Celular');
             $messages = array();
             $rules = array('dni' => 'required|digits:8|unique:users,dni,NULL,id,deleted_at,NULL', 'names' => 'required|alpha_num_dash|max:45', 'lastname' => 'required|alpha_num_dash|max:45', 'email' => 'required|email|max:100|unique:users,email,NULL,id,deleted_at,NULL');
             // Run the validation rules on the inputs from the form
             $validator = Validator::make(Input::all(), $rules, $messages, $attributes);
             // If the validator fails, redirect back to the form
             if ($validator->fails()) {
                 return Redirect::to('people/new_administrative_staff')->withErrors($validator)->withInput(Input::all());
             } else {
                 // se crea el usuario primero
                 $user = new User();
                 $user->dni = Input::get('dni');
                 $e = Input::get('email');
                 if ($e != '') {
                     $user->email = $e;
                 }
                 $user->password = Hash::make('12345678');
                 $user->save();
                 $user->profiles()->attach(Profile::where('name', '=', 'Personal Administrativo')->first()->id);
                 $admin_staff = new AdministrativeStaff();
                 $admin_staff->names = Input::get('names');
                 $admin_staff->lastname = Input::get('lastname');
                 $b = Input::get('birthdate');
                 if ($b != '') {
                     $admin_staff->birthdate = date('Y-m-d', strtotime($b));
                 }
                 $admin_staff->telephone = Input::get('telephone');
                 $admin_staff->user_id = $user->id;
                 $admin_staff->save();
                 Session::flash('message', 'Se creó correctamente el Personal Administrativo.');
                 // Llamo a la función para registrar el log de auditoria
                 $log_description = "Se creó el Personal Administrativo con id: {{$admin_staff->id}}";
                 Helpers::registerLog(3, $log_description);
                 return Redirect::to('people/list_administrative_staff');
             }
         } else {
             // Llamo a la función para registrar el log de auditoria
             $log_description = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'";
             Helpers::registerLog(10, $log_description);
             Session::flash('error', 'Usted no tiene permisos para realizar dicha acción.');
             return Redirect::to('/dashboard');
         }
     } else {
         return View::make('error/error');
     }
 }
 public function loginWithFb()
 {
     $redirectUrl = Input::get('redirect_url');
     $facebookBaseConfig = Config::get('facebook');
     $config = app('siteConfig');
     $facebookConfig = $config['main']['social']['facebook'];
     $facebookConfig['appId'] = empty($facebookConfig['appId']) ? '' : $facebookConfig['appId'];
     $facebookConfig['secret'] = empty($facebookConfig['secret']) ? '' : $facebookConfig['secret'];
     FacebookSession::setDefaultApplication($facebookConfig['appId'], $facebookConfig['secret']);
     $helper = new FacebookJavaScriptLoginHelper();
     $session = null;
     function getUserDataFromFb($session)
     {
         $request = new FacebookRequest($session, 'GET', '/me', array('fields' => 'id,name,email'));
         $response = $request->execute();
         $graphObject = $response->getGraphObject()->asArray();
         return $graphObject;
     }
     try {
         $session = $helper->getSession();
     } catch (FacebookRequestException $ex) {
         // When Facebook returns an error
     } catch (\Exception $ex) {
         // When validation fails or other local issues
     }
     if (Request::ajax()) {
         if ($session) {
             // Logged in.
             $uid = $session->getUserId();
             $accessToken = $session->getToken();
             $profile = Profile::whereUid($uid)->first();
             if (empty($profile)) {
                 $me = getUserDataFromFb($session);
                 $user = new User();
                 $user->name = $me['name'];
                 $user->email = $me['email'];
                 $user->photo = 'https://graph.facebook.com/' . $uid . '/picture?type=large';
                 $user->save();
                 $profile = new Profile();
                 $profile->uid = $uid;
                 //$profile->username = $me['username']; //Username not available in the new Facebook API
                 $profile->access_token = $accessToken;
                 $profile = $user->profiles()->save($profile);
             } else {
                 $profile->access_token = $accessToken;
                 $profile->save();
             }
             $user = $profile->user;
             Auth::login($user);
             return Response::json(array('user' => $user));
         } else {
             return Response::make('Not loggedin', 400);
         }
     } else {
         if ($session) {
             if ($redirectUrl) {
                 return Redirect::to($redirectUrl);
             } else {
                 return Redirect::route('home');
             }
         }
         return Redirect::route('login');
     }
 }