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('/'); }
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; } }
/** * @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]; }