Example #1
0
 public function UpdateUserPassword($userId, $mode = self::MODE_USER, $password = false)
 {
     if ($password) {
         preg_match("/^[\\x20-\\x7e]{3,32}\$/D", $password, $matches);
         if (empty($matches)) {
             $this->error = new CVoxImplantError(__METHOD__, 'PASSWORD_INCORRECT', GetMessage('VI_USER_PASS_ERROR'));
             return false;
         }
     }
     $ViHttp = new CVoxImplantHttp();
     $result = $ViHttp->UpdateUserPassword($userId, $mode, $password);
     if (!$result || $ViHttp->GetError()->error) {
         if ($ViHttp->GetError()->code == 'USER_NOT_FOUND') {
             $this->ClearUserInfo($userId);
         }
         $this->error = new CVoxImplantError(__METHOD__, $ViHttp->GetError()->code, $ViHttp->GetError()->msg);
         return false;
     }
     global $USER_FIELD_MANAGER;
     if ($mode == self::MODE_USER) {
         $USER_FIELD_MANAGER->Update("USER", $userId, array('UF_VI_PASSWORD' => $result->PASSWORD));
     } else {
         if ($mode == self::MODE_PHONE) {
             $USER_FIELD_MANAGER->Update("USER", $userId, array('UF_VI_PHONE_PASSWORD' => $result->PASSWORD));
         }
     }
     return array('PASSWORD' => $result->PASSWORD);
 }