[ '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() { var_dump(\Yii::$app->request->post()); $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()]); } return $this->render('contacts', ['user_info' => $user_info]); } public function actionService() { return $this->render('service'); } public function actionAddSkills() { } 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.'); } } }