function edit(ProfileRequest $request)
 {
     $input = $request->all();
     $user = Auth::user();
     if ($input['type'] == 'account') {
         $user->name = $input['name'];
         $user->email = $input['email'];
         $user->save();
     } elseif ($input['type'] == 'password') {
         $user->password = bcrypt($input['new_password']);
         $user->save();
     } elseif ($input['type'] == 'data') {
         // Remove empty inputs
         $input = array_filter($input);
         // Create new row in user data if none exists
         if (is_null($user->data)) {
             $data = new UserData();
             $data->user_id = $user->id;
             $data->save();
             $data->update($input);
         } else {
             $user->data->update($input);
         }
     }
     $request->session()->flash('success', 'Your profile was updated.');
     return redirect('/profile');
 }
 public function social(ClientInterface $client)
 {
     $user_data = new UserData($client->getName(), $client->getUserAttributes());
     if (Yii::$app->user->isGuest) {
         $user = User::findSocial($user_data->getObjectName(), $user_data->getObjectName());
         if ($user) {
             Login::login($user);
         } else {
             $user_data->save();
         }
     } else {
         User::saveSocial(Yii::$app->user->identity, $user_data);
     }
     Yii::$app->session->set('social', $client->getName());
 }
 public function actionIndex()
 {
     $social = Yii::$app->session->get('social');
     if ($social) {
         Yii::$app->session->remove('social');
         if (Yii::$app->user->isGuest && UserData::count() > 0) {
             return $this->redirect(['user/signup']);
         } else {
             return $this->redirect(['user/view', 'name' => Yii::$app->user->identity->name]);
         }
     }
     return $this->render('index');
 }
 public function updateSelf(UserRequest $request)
 {
     $user = Auth::user();
     $input = $request->all();
     if ($input['type'] == 'data') {
         // Remove empty inputs
         $input = array_filter($input);
         // Create new row in user data if none exists
         if (is_null($user->data)) {
             $data = new UserData();
             $data->user_id = $user->id;
             $data->save();
             $data->update($input);
         } else {
             $user->data->update($input);
         }
     }
     $request->session()->flash('success', 'Your profile was updated.');
     return redirect('/');
 }
Example #5
0
 public static function loadUserData(User $signup)
 {
     $signup->social = UserData::load();
     if (!$signup->social) {
         return null;
     }
     switch ($signup->social->getObjectName()) {
         case 'facebook':
             $signup->email = $signup->social->email;
             break;
         case 'vkontakte':
         case 'twitter':
             $signup->name = $signup->social->screen_name;
             break;
     }
 }
Example #6
0
File: Data.php Project: vetoni/toko
 /**
  * @param $name
  * @return UserData
  */
 protected static function findRecord($name)
 {
     if (!isset(static::$_records[$name])) {
         static::$_records[$name] = UserData::findOne(['user_id' => Yii::$app->user->getId(), 'name' => $name]);
     }
     return static::$_records[$name];
 }