Example #1
0
 /**
  * 写入数据
  * @param  int $user_id
  * @param string $pwd
  */
 public static function add($user_id, $pwd)
 {
     $model = new UserPassword();
     $model->pwd = self::__encode($pwd);
     $model->user_id = $user_id;
     $model->update_time = time();
     $model->insert();
     return $model->id;
 }
Example #2
0
 public function actionSettings()
 {
     $friends_category = ['1' => 'family', '2' => 'collega', '3' => 'other'];
     $privacy_settings = User::getPrivacyInformation(Yii::$app->user->getId());
     $privacy_text = ['birth' => Yii::t('yii', 'Дата рождения'), 'education' => Yii::t('yii', 'Образование'), 'work' => Yii::t('yii', 'Работа'), 'about' => Yii::t('yii', 'О себе'), 'email' => 'Email', 'address' => Yii::t('yii', 'Адрес'), 'tel' => Yii::t('yii', 'Телефон'), 'site' => Yii::t('yii', 'Сайт'), 'soc' => Yii::t('yii', 'Соц. сети')];
     $this->redirectOnHomepageIfGuest($user, $isMyProfile);
     $user_id = Yii::$app->user->getId();
     $model = User::findOne($user_id);
     $model->scenario = 'settings';
     $password_model = UserPassword::findOne($user_id);
     $password_model->scenario = 'change_password';
     // Очищаємо телефони якщо вони = 0
     User::emptyPhone($model->telephone_1, $model->telephone_2);
     // Завантаження зображень
     $image = new UploadImage();
     $countries = User::getAllCountries(explode('-', Yii::$app->language)[0]);
     // Вивід помилок Ajax валідації
     if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         return ActiveForm::validate($model);
     }
     $folder = "avatar";
     $x1_avatar = $_POST['User']['x1_avatar'];
     $y1_avatar = $_POST['User']['y1_avatar'];
     $crop_box_size = $_POST['User']['crop_box_size'];
     $current_photo = true;
     // Зміна паролю
     if ($password_model->load(Yii::$app->request->post())) {
         if ($password_model->validate()) {
             $password_model->setPassword($password_model->new_password);
             $responce['status'] = $password_model->save(false);
         } else {
             $responce['status'] = false;
             $responce['errors'] = $password_model->getErrors();
         }
         return json_encode($responce);
     }
     // Завантаження зображення
     if (Yii::$app->request->post() && $model->validate()) {
         $image->file = UploadedFile::getInstance($image, 'file');
         if ($image->file && $image->validate()) {
             // Видаляємо аватарку, якщо користувач її змінює
             if ($model->avatar != "" && $model->avatar != "no_user_ua" && $model->avatar != "no_user_ru" && $model->avatar != "no_user_en") {
                 @unlink("img/avatar/" . $model->avatar);
             }
             $src = 'user_' . $user_id . '.' . $image->file->extension;
             $image->saveImage($src, $folder, $x1_avatar, $y1_avatar, $crop_box_size);
             $model->avatar = $src;
             $current_photo = false;
         }
     }
     // Зберігаємо дані в БД
     if ($model->load(\Yii::$app->request->post()) && $model->validate()) {
         // Обрізаємо існуючу аватарку
         if ($crop_box_size !== "" && $current_photo) {
             $image->saveImage($model->avatar, $folder, $x1_avatar, $y1_avatar, $crop_box_size);
         }
         // Телефон в правильний формат
         $model->changePhone();
         $model->changePhonePosition();
         $model->correctSite();
         $model->rating += User::getRatingByInfo($model->oldAttributes, $model->attributes);
         $model->save();
         \Yii::$app->getSession()->setFlash('notify', 'Успішно збережено!');
         return $this->redirect('/id' . Yii::$app->user->getId());
     }
     return $this->render('settings', ['model' => $model, 'password_model' => $password_model, 'image' => $image, 'countries' => $countries, 'friends_category' => $friends_category, 'privacy_settings' => $privacy_settings, 'privacy_text' => $privacy_text]);
 }
 /**
  * 修改密码,需要登录
  */
 public function actionEditPwd()
 {
     $response = Yii::$app->response;
     $response->format = \yii\web\Response::FORMAT_JSON;
     $request = Yii::$app->request;
     $this_path = $this->modules_name . "/" . lcfirst($this->class_name) . "/" . lcfirst(str_replace('action', "", __FUNCTION__));
     $this_allow_version = "1.1";
     //获取参数,和其他的分页的一样
     $param_os = (int) $request->post("os");
     //渠道
     $param_new_pwd = $request->post("new_pwd");
     //新密码
     $param_old_pwd = $request->post("old_pwd");
     //新密码
     //获取token
     $headers = $request->headers;
     $header_token = $headers->get('Token') ? $headers->get('Token') : $request->post("token");
     //加密之后的设备号,做到兼容post的方式
     //验证参数是不是有空的
     $check_null = Validators::validateAllNull([$param_os, $header_token]);
     if ($check_null === FALSE) {
         //错误信息,参数不全
         return $response->data = Error::errorJson($this_path, 1001);
     }
     //解密token
     if ($header_token == '233' && (YII_ENV_LOCAL == 'local' || YII_ENV_DEV)) {
         $uid = 1046;
     } else {
         $token_decode = RsaDecode::clientTokenToArray($header_token);
         if ($token_decode === FALSE) {
             //返回错误信息
             return $response->data = Error::errorJson($this_path, 9003);
         }
         //验证token
         $check_user_token = TokenUser::check($token_decode['uid'], $token_decode['deviceid'], $token_decode['logintime']);
         if ($check_user_token !== "0") {
             return $response->data = Error::errorJson($this_path, $check_user_token);
         }
         $uid = $token_decode['uid'];
     }
     $user_id = UserAccount::getUserId($uid);
     //测试数据 18312376990  123123
     $decode_old_pwd = RsaDecode::rsa_decode($param_old_pwd);
     $decode_new_pwd = RsaDecode::rsa_decode($param_new_pwd);
     //判断是不是有手机号注册
     $types = UserEmblem::findAllWay($user_id);
     if (!in_array(2, $types)) {
         //返回错误信息
         return $response->data = Error::errorJson($this_path, 4005);
     }
     //判断旧密码
     if (!UserPassword::check($user_id, $decode_old_pwd)) {
         return $response->data = Error::errorJson($this_path, 4006);
     }
     //修改密码
     $update = UserPassword::changePwd($user_id, $decode_new_pwd);
     if (!$update) {
         //修改密码错误
         return $response->data = Error::errorJson($this_path, 4007);
     }
     //返回对应的结果
     $return_json = ['request' => $this_path, 'info' => ['user_info' => App::getUserProfile($user_id)], 'version' => $this_allow_version, 'error_code' => 0, 'error' => ""];
     //接口访问记录
     CensusApi::add($user_id, $this_path);
     return $response->data = $return_json;
 }