public function btnRecoverPassword_Click($strFormId, $strControlId, $strParameter) { if ($this->txtEmail->Text) { $objUser = NarroUser::QuerySingle(QQ::Equal(QQN::NarroUser()->Email, $this->txtEmail->Text)); } elseif ($this->txtUsername->Text) { $objUser = NarroUser::QuerySingle(QQ::Equal(QQN::NarroUser()->Username, $this->txtUsername->Text)); } else { $this->lblMessage->ForeColor = 'red'; $this->lblMessage->Text = t('Please enter a username or email to continue.'); return false; } if ($objUser instanceof NarroUser) { if ($objUser->UserId == NarroUser::ANONYMOUS_USER_ID) { $this->lblMessage->ForeColor = 'red'; $this->lblMessage->Text = t('Hey, the anonymous user doesn\'t have a password. What are you trying to do?'); return false; } $objMessage = new QEmailMessage(); $objMessage->From = sprintf('%s <%s>', __FROM_EMAIL_NAME__, __FROM_EMAIL_ADDRESS__); $objMessage->To = sprintf('%s <%s>', $objUser->Username, $objUser->Email); $objMessage->Subject = sprintf('Password recovery for "%s" on "%s"', $objUser->Username, $_SERVER['HTTP_HOST']); $objMessage->Body = sprintf('Somebody, probably you, requested a password recovery for "%s" on "%s". To change your password, please follow this link: %s', $objUser->Username, $_SERVER['HTTP_HOST'], (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . __VIRTUAL_DIRECTORY__ . __SUBDIRECTORY__ . sprintf('/change_password.php?l=%s&u=%s&h=%s', QApplication::$TargetLanguage->LanguageCode, $objUser->Username, $objUser->Password)); try { QEmailServer::Send($objMessage); $this->lblMessage->ForeColor = 'green'; $this->lblMessage->Text = t('You should have a new email message with instructions. Check your spam/bulk directory too.'); } catch (Exception $objEx) { $this->lblMessage->ForeColor = 'red'; $this->lblMessage->Text = t('Failed to send email. This may be a server issue. Please try again later.'); return false; } } else { $this->lblMessage->ForeColor = 'red'; $this->lblMessage->Text = t('Bad username or/and email'); } }
/** * Load a single NarroUser object, * by RealName Index(es) * @param string $strRealName * @param QQClause[] $objOptionalClauses additional optional QQClause objects for this query * @return NarroUser */ public static function LoadByRealName($strRealName, $objOptionalClauses = null) { return NarroUser::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::NarroUser()->RealName, $strRealName)), $objOptionalClauses); }
public static function LoadByUserId($intUserId, $objOptionalClauses = null) { $objUser = NarroUser::QuerySingle(QQ::AndCondition(QQ::Equal(QQN::NarroUser()->UserId, $intUserId)), QQ::ExpandAsArray(QQN::NarroUser()->NarroUserRoleAsUser)); if (!$objUser instanceof NarroUser) { return false; } foreach ($objUser->_NarroUserRoleAsUserArray as $objRole) { /* @var $objRole NarroUserRole */ $arrRolePermission = NarroRolePermission::LoadArrayByRoleId($objRole->RoleId, QQ::Expand(QQN::NarroRolePermission()->Permission)); foreach ($arrRolePermission as $objRolePermission) { $objUser->arrPermissions[$objRolePermission->Permission->PermissionName . '-' . $objRole->LanguageId . '-' . $objRole->ProjectId] = $objRolePermission; } } if (isset($objUser->Preferences['Language'])) { $objLanguage = NarroLanguage::LoadByLanguageCode($objUser->Preferences['Language']); if ($objLanguage instanceof NarroLanguage) { $objUser->Language = $objLanguage; } elseif (QApplication::$TargetLanguage instanceof NarroLanguage) { $objUser->Language = QApplication::$TargetLanguage; } } elseif (QApplication::$TargetLanguage instanceof NarroLanguage) { $objUser->Language = QApplication::$TargetLanguage; } return $objUser; }