[ 'class' => AccessControl::className(), 'rules' => [ [ //'actions' => ['cabinet','change-password', 'bookmarks', 'projects'], 'allow' => true, 'roles' => [ '@' ], ], ], ], ]; } public function actionCabinet() { $user = $this->findUser(Yii::$app->user->identity->id); $langs = Language::getActiveLanguages(); if($user->load(Yii::$app->request->post()) && $user->save()) { $user->userInfo->load(Yii::$app->request->post()); $user->userInfo->save(); Fields::saveFieldData(Yii::$app->request->post('Fields'), $user->id, $user::className(), 'ru'); return $this->render('cabinet', [ 'user' => $user, 'user_info' => $user->userInfo, 'langs' => $langs, ]); } else { return $this->render('cabinet', [ 'user' => $user, 'user_info' => $user->userInfo, 'langs' => $langs, ]); } } public function actionBookmarks() { return $this->render('bookmarks'); } public function actionGeneral() { $user_info = UserInfo::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->one(); $company_info = CompanyInfo::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->one(); $user = \Yii::$app->user->identity; if(empty( $user_info )) { $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]); } if(empty( $company_info )) { $company_info = new CompanyInfo([ 'user_id' => \Yii::$app->user->getId() ]); } $post = \Yii::$app->request->post(); if(!empty( $post )) { $user_info->load($post); $company_info->load($post); $user->load($post); if($user_info->save() && $user->save() && $company_info->save()) { \Yii::$app->session->setFlash('userinfoupdate', 'Информация успешно обновлена'); } else { \Yii::$app->session->setFlash('userinfoupdate', 'Ошибка обновления. Проверьте форму'); } } return $this->render('general', [ 'user_info' => $user_info, 'user' => $user, 'company_info' => $company_info, ]); } public function actionPortfolio() { } /** * $user User */ public function actionSetting() { $user = \Yii::$app->user->identity; $post = \Yii::$app->request->post('User'); if(!empty( $post )) { if(empty( $post[ 'new_password' ] )) { $user->addError('new_password', 'Введите новый пароль'); } else { $user->new_password = $post[ 'new_password' ]; } if(empty( $post[ 'old_password' ] )) { $user->addError('old_password', 'Введите новый пароль'); } else { $user->old_password = $post[ 'old_password' ]; } if(empty( $post[ 'password_reply' ] ) || $post[ 'password_reply' ] !== $post[ 'new_password' ]) { $user->addError('password_reply', 'Неправильный повтор пароля'); } else { $user->password_reply = $post[ 'password_reply' ]; } if(!$user->hasErrors()) { if($user->validatePassword($user->old_password)) { $user->setPassword($user->new_password); $user->generateAuthKey(); if($user->save()) { \Yii::$app->session->setFlash('passwordupdate', 'Пароль успешно обновлен'); } } else { $user->addError('old_password', 'Неправильный старый пароль'); } } } return $this->render('setting', [ 'user' => $user ]); } public function actionContacts() { $user_info = UserInfo::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->one(); if(empty( $user_info )) { $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]); } if(!empty( \Yii::$app->request->post() )) { Fields::saveFieldData(Yii::$app->request->post('Fields'), \Yii::$app->user->identity->id, User::className(), 'ru'); $user_info->load(\Yii::$app->request->post()); $user_info->save(); } return $this->render('contacts', [ 'user_info' => $user_info ]); } public function actionService() { $user_info = UserInfo::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->one(); if(empty( $user_info )) { $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]); } $post = \Yii::$app->request->post(); if(!empty( $post )) { $user_info->load($post); $user_info->save(); $user_specialization_values = [ ]; $user_payment_values = [ ]; UserSpecialization::deleteAll([ 'user_id' => \Yii::$app->user->getId() ]); UserPayment::deleteAll([ 'user_id' => \Yii::$app->user->getId() ]); foreach($post[ 'UserSpecialization' ][ 'specialization_id' ] as $index => $value) { $user_specialization_values[] = (new UserSpecialization([ 'user_id' => \Yii::$app->user->getId(), 'specialization_id' => $value, ]))->save(); } foreach($post[ 'UserPayment' ][ 'payment_id' ] as $index => $value) { $user_payment_values[] = (new UserPayment([ 'user_id' => \Yii::$app->user->getId(), 'payment_id' => $value, ]))->save(); } } $user_specialization = UserSpecialization::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->select([ 'specialization_id' ]) ->column(); $user_payment = UserPayment::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->select([ 'payment_id' ]) ->column(); $user_specialization_input = new UserSpecialization([ 'user_id' => \Yii::$app->user->getId() ]); $user_payment_input = new UserPayment([ 'user_id' => \Yii::$app->user->getId() ]); $specialization = Specialization::find() ->select([ 'specialization_name', 'specialization_id', ]) ->indexBy('specialization_id') ->asArray() ->column(); $payment = Payment::find() ->select([ 'name', 'payment_id', ]) ->indexBy('payment_id') ->asArray() ->column(); return $this->render('service', [ 'user_info' => $user_info, 'specialization' => $specialization, 'user_specialization' => $user_specialization, 'user_specialization_input' => $user_specialization_input, 'payment' => $payment, 'user_payment' => $user_payment, 'user_payment_input' => $user_payment_input, ]); } public function actionAddSkills() { $user = \Yii::$app->user->identity; if(!empty(\Yii::$app->request->post())) { Fields::saveFieldData(Yii::$app->request->post('Fields'), \Yii::$app->user->identity->id, User::className(), 'ru'); } return $this->render('add-skills', ['user' => $user]); } public function actionDescription() { $user_info = UserInfo::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->one(); if(empty( $user_info )) { $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]); } $post = \Yii::$app->request->post(); if(!empty($post)) { $user_info->load($post); $user_info->save(); } return $this->render('description', [ 'user_info' => $user_info ]); } public function actionEmployment() { $post = \Yii::$app->request->post(); if(!empty( $post )) { $job = [ ]; for($i = 0; $i < count($post[ 'Job' ]); $i++) { $job[ $i ] = new Job([ 'user_id' => \Yii::$app->user->getId(), 'current' => 0, ]); } if(Job::loadMultiple($job, $post)) { $job[ 0 ]->current = 1; if(Job::validateMultiple($job)) { Job::deleteAll([ 'user_id' => \Yii::$app->user->getId() ]); foreach($job as $onejob) { $onejob->save(false); } } } } else { $job = Job::find() ->where([ 'user_id' => \Yii::$app->user->getId() ]) ->orderBy([ 'current' => SORT_DESC ]) ->all(); if(empty( $job )) { $job[] = new Job([ 'user_id' => \Yii::$app->user->getId(), 'current' => 0, ]); } if(!$job[ 0 ]->current) { array_unshift($job, new Job([ 'user_id' => \Yii::$app->user->getId(), 'current' => 1, ])); } } return $this->render('employment', [ 'job' => $job ]); } public function actionProjects() { return $this->render('projects'); } public function actionGallery() { } public function actionGetForm($lastindex) { return $this->renderAjax('_job_form', [ 'index' => $lastindex + 1 ]); } /** * @param $id * * @return User * @throws NotFoundHttpException */ protected function findUser($id) { if($model = User::findOne([ "id" => $id ])) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } }