Exemplo n.º 1
0
 public function veriflyAction()
 {
     switch ($this->request->getPost('type')) {
         case "login":
             break;
         case "register":
             $this->tag->setTitle('注册中。。。');
             $username = $this->request->getPost('username');
             $email = $this->request->getPost("email");
             if (CheckController::usernameCheck($username)) {
                 $errmsg .= "用户名已存在辣~";
             }
             if (CheckController::emailCheck($email)) {
                 $errmsg .= "邮箱已经被使用辣~";
             }
             if (!$errmsg) {
                 $token = md5($username . $username . $regtime);
                 //创建用于激活识别码
                 $token_exptime = time() + 60 * 60 * 24;
                 //过期时间为24小时后
                 $user = new UserAccount();
                 $user->username = $username;
                 //用户名
                 $user->email = $email;
                 //邮箱
                 $user->regtime = time();
                 //注册时间
                 $user->salt = rand(100000, 999999);
                 //随机生成salt值
                 $user->password = md5(md5('12345678') . $user->salt);
                 //默认密码12346
                 $user->token = $token;
                 //激活识别码
                 $user->token_exptime = $token_exptime;
                 //验证超时时间
                 if ($user->save() == true) {
                     $this->tag->setTitle('注册成功 | FiSkinAlcon');
                     $this->flash->success("注册成功!一封激活邮件已发往您的邮箱,请及时登录查看喵~");
                 } else {
                     $this->tag->setTitle('新用户注册 | FiSkinAlcon');
                     foreach ($user->getMessages() as $message) {
                         $errmsg .= getMessage() . "<br/>";
                     }
                     $this->flash->error($errmsg);
                 }
             }
             break;
     }
 }
Exemplo n.º 2
0
 function processinviteAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $formvalues = $this->_getAllParams();
     $session = SessionWrapper::getInstance();
     $id = decode($formvalues['id']);
     $formvalues['id'] = $id;
     // debugMessage($formvalues);
     $formvalues['status'] = 1;
     $formvalues['password'] = $formvalues['password'];
     $formvalues['agreedtoterms'] = 1;
     $formvalues['activationdate'] = DEFAULT_DATETIME;
     $formvalues['hasacceptedinvite'] = 1;
     $user = new UserAccount();
     $user->populate($id);
     $user->processPost($formvalues);
     // debugMessage($user->toArray()); debugMessage("Error > ".$user->getErrorStackAsString()); exit();
     $user->save();
     // save notification to user's inbox
     $user->sendActivationConfirmationNotification();
     $url = $this->view->serverUrl($this->view->baseUrl('profile/view/id/' . encode($user->getID())));
     $usecase = '1.16';
     $module = '1';
     $type = USER_ACTIVATE;
     $details = "User Profile <a href='" . $url . "' class='blockanchor'>" . $user->getName() . "</a> activated";
     $browser = new Browser();
     $audit_values = $session->getVar('browseraudit');
     $audit_values['module'] = $module;
     $audit_values['usecase'] = $usecase;
     $audit_values['transactiontype'] = $type;
     $audit_values['userid'] = $session->getVar('userid');
     $audit_values['url'] = $url;
     $audit_values['transactiondetails'] = $details;
     $audit_values['status'] = "Y";
     // debugMessage($audit_values);
     $this->notify(new sfEvent($this, $type, $audit_values));
     $this->clearSession();
     $session->setVar(SUCCESS_MESSAGE, "You can now login using your Username or Email and Password");
     // $loginurl = $this->view->baseUrl("user/checklogin/email/".$user->getEmail().'/password/'.$formvalues['password']);
     $loginurl = $this->view->baseUrl("user/login");
     $this->_helper->redirector->gotoUrl($loginurl);
     return false;
 }
Exemplo n.º 3
0
 public function run()
 {
     $transaction = Yii::app()->db->beginTransaction();
     try {
         if ($this->data->validate()) {
             $user = new UserAccount();
             $user->setPassword($this->data->password);
             $user->status = UserAccount::STATUS_NEED_ACTIVATION;
             if (!$user->save()) {
                 throw new Exception("User registration failed. Cant save User row. Errors: " . var_export($user->getErrors(), true));
             }
             $identity = new Identity();
             $identity->user_id = $user->id;
             $identity->type = Identity::TYPE_EMAIL;
             $identity->status = Identity::STATUS_NEED_CONFIRMATION;
             $identity->identity = $this->data->email;
             if (!$identity->save()) {
                 throw new Exception("User registration failed. Can't save Identity. Errors: " . var_export($identity->getErrors(), true));
             }
             $profile = new Profile();
             $attributeNames = $profile->attributeNames();
             $attributes = $this->data->getAttributes($attributeNames);
             $profile->setAttributes($attributes, false);
             $profile->user_id = $user->id;
             if (!$profile->save()) {
                 throw new Exception("User registration failed. Can't save Profile. Errors: " . var_export($profile->getErrors(), true));
             }
             $this->afterRecordsCreated($user, $profile, $identity);
         } else {
             throw new Exception("Invalid registration data. Errors: " . var_export($this->data->getErrors(), true));
         }
     } catch (Exception $exc) {
         $transaction->rollback();
         throw $exc;
     }
     $transaction->commit();
     return true;
 }
Exemplo n.º 4
0
 public function signUpAction()
 {
     $signUp = $this->request->getPost('data');
     $signUp['username'] = $signUp['phone'];
     if (!$signUp['phone'] || !$signUp['code'] || !$signUp['password'] || !$signUp['repassword']) {
         \ToolFlash::error('请填写完注册信息');
     }
     if (!\ToolValidator::isMobile($signUp['phone'])) {
         \ToolFlash::error('请填写正确的手机号码');
     }
     //判断该用户是否存在
     if (\BUser::instance()->phoneExists($signUp['phone'])) {
         \ToolFlash::error('手机号已存在');
     }
     if ($signUp['password'] != $signUp['repassword']) {
         \ToolFlash::error('两次输入密码不一致');
     }
     $smsInfo = $this->session->get('sms_info');
     if ($signUp['code'] != $smsInfo['code']) {
         \ToolFlash::error('请输入正确的手机验证码');
     }
     if (!\Captcha::install()->verify($this->session->get('captachaID'), $signUp['captcha'])) {
         \ToolFlash::error("验证码不正确");
     }
     $userData = array('username' => $signUp['username'], 'phone' => $signUp['phone'], 'password' => $signUp['password']);
     if (\BUser::instance()->saveUser($userData)) {
         //注册成功保存session
         $userInfo = \User::findFirst("username='******'phone'] . "'")->toArray();
         \BUser::instance()->setLoginSession($userInfo);
         //跳转到上个页面
         $url = $this->session->get('referer');
         $this->session->remove('referer');
         $url = $url ? $url : $this->url->getBaseUri();
         /******注册成功送5000测试账户余额  add by zhangyanan 20150504  start 正式上线后删除*****/
         $UserAccount = new \UserAccount();
         $UserAccountLog = new \UserAccountLog();
         $UserAccount->save(array('uid' => $userInfo['id'], 'account' => 200000, 'income' => 200000, 'expense' => 0, 'ctime' => time()));
         $UserAccountLog->save(array('uid' => $userInfo['id'], 'type' => 1, 'amount' => 200000, 'note' => '注册测试金额2000', 'ctime' => time()));
         /******注册成功送5000测试账户余额  add by zhangyanan 20150504  end 正式上线后删除*****/
         \ToolFlash::success('注册成功', $url);
     } else {
         \ToolFlash::error('注册失败,请重新注册');
     }
 }
Exemplo n.º 5
0
 /**
  * Resets user's password and send it to email
  * @param UserAccount $user
  */
 public function resetPassword(UserAccount $user)
 {
     if ($user->status != UserAccount::STATUS_ACTIVE) {
         if (!$this->allowActivationOnPasswordReset) {
             throw new CException('Can\'t reset password for inactive users.');
         } else {
             $identity = Identity::model()->findByAttributes(array('user_id' => $user->id, 'type' => Identity::TYPE_EMAIL, 'status' => Identity::STATUS_NEED_CONFIRMATION));
             $identity->userIdentityConfirmation->confirm();
         }
     }
     $emailAddr = $user->getActiveEmail();
     $newPassword = $this->randomPassword();
     $user->setPassword($newPassword);
     $user->save(false, array('password'));
     $email = new YiiMailer('resetPassword', $data = array('newPassword' => $newPassword, 'description' => $description = 'Password reset'));
     $email->setSubject($description);
     $email->setTo($emailAddr);
     $email->setFrom(Yii::app()->params['noreplyAddress'], Yii::app()->name, FALSE);
     Yii::log('Sendign reset password mail to ' . $emailAddr);
     if ($email->send()) {
         Yii::log('Ok');
     } else {
         Yii::log('Failed');
         throw new CException('Failed to send the email');
     }
 }
 function croppictureAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $session = SessionWrapper::getInstance();
     $formvalues = $this->_getAllParams();
     $user = new UserAccount();
     $user->populate(decode($formvalues['id']));
     $userfolder = $user->getID();
     // debugMessage($formvalues);
     //debugMessage($user->toArray());
     $oldfile = "large_" . $user->getProfilePhoto();
     $base = BASE_PATH . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . "users" . DIRECTORY_SEPARATOR . 'user_' . $userfolder . '' . DIRECTORY_SEPARATOR . 'avatar' . DIRECTORY_SEPARATOR;
     // debugMessage($user->toArray());
     $src = $base . $oldfile;
     $currenttime = time();
     $currenttime_file = $currenttime . '.jpg';
     $newlargefilename = $base . "large_" . $currenttime_file;
     $newmediumfilename = $base . "medium_" . $currenttime_file;
     // exit();
     $image = WideImage::load($src);
     $cropped1 = $image->crop($formvalues['x1'], $formvalues['y1'], $formvalues['w'], $formvalues['h']);
     $resized_1 = $cropped1->resize(300, 300, 'fill');
     $resized_1->saveToFile($newlargefilename);
     //$image2 = WideImage::load($src);
     $cropped2 = $image->crop($formvalues['x1'], $formvalues['y1'], $formvalues['w'], $formvalues['h']);
     $resized_2 = $cropped2->resize(165, 165, 'fill');
     $resized_2->saveToFile($newmediumfilename);
     $user->setProfilePhoto($currenttime_file);
     $user->save();
     // check if UserAccount already has profile picture and archive it
     $ftimestamp = current(explode('.', $user->getProfilePhoto()));
     $allfiles = glob($base . DIRECTORY_SEPARATOR . '*.*');
     $currentfiles = glob($base . DIRECTORY_SEPARATOR . '*' . $ftimestamp . '*.*');
     // debugMessage($currentfiles);
     $deletearray = array();
     foreach ($allfiles as $value) {
         if (!in_array($value, $currentfiles)) {
             $deletearray[] = $value;
         }
     }
     // debugMessage($deletearray);
     if (count($deletearray) > 0) {
         foreach ($deletearray as $afile) {
             $afile_filename = basename($afile);
             rename($afile, $base . DIRECTORY_SEPARATOR . 'archive' . DIRECTORY_SEPARATOR . $afile_filename);
         }
     }
     $session->setVar(SUCCESS_MESSAGE, "Successfully updated profile picture");
     $this->_helper->redirector->gotoUrl($this->view->baseUrl('profile/view/id/' . encode($user->getID())));
     // exit();
 }