55 public function __construct()
83 if (!$this->
settings->get(
'password_assistance')) {
85 #if(empty($_SESSION['AccountId']) && $_SESSION['AccountId'] !== false) 87 #$this->ilias->error_obj->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->WARNING); 92 if (!$this->
settings->get(
'setup_ok')) {
93 die(
'Setup is not completed. Please run setup routine again.');
99 if (
$lang != null &&
$lang !=
'' && $this->lng->getLangKey() !=
$lang) {
102 $this->lng->loadLanguageModule(
'pwassist');
104 $cmd = $this->ctrl->getCmd();
105 $next_class = $this->ctrl->getNextClass($this);
107 switch ($next_class) {
110 return $this->$cmd();
112 if (!empty(
$_GET[
'key'])) {
127 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
130 $form->setFormAction($this->ctrl->getFormAction($this,
'submitAssistanceForm'));
131 $form->setTarget(
'_parent');
133 $username =
new ilTextInputGUI($this->lng->txt(
'username'),
'username');
135 $form->addItem($username);
138 $email->setRequired(
true);
141 $form->addCommandButton(
'submitAssistanceForm', $this->lng->txt(
'submit'));
151 ilStartUpGUI::initStartUpTemplate(
'tpl.pwassist_assistance.html',
true);
153 $this->tpl->setVariable(
'TXT_PAGEHEADLINE', $this->lng->txt(
'password_assistance'));
155 $this->tpl->setVariable(
156 'TXT_ENTER_USERNAME_AND_EMAIL',
161 $this->lng->txt(
'pwassist_enter_username_and_email'),
170 $this->tpl->setVariable(
'FORM',
$form->getHTML());
189 if (!
$form->checkInput()) {
190 $form->setValuesByPost();
195 $username =
$form->getInput(
'username');
200 $txt_key =
'pwassist_invalid_username_or_email';
203 if (strcasecmp($userObj->getEmail(),
$email) != 0) {
205 } elseif (!strlen(
$email)) {
207 $txt_key =
'pwassist_no_email_found';
211 ($userObj->getAuthMode(
true) == AUTH_DEFAULT && AUTH_DEFAULT !=
AUTH_LOCAL)
217 $txt_key =
'pwassist_invalid_auth_mode';
223 if ($userObj == null) {
225 $form->setValuesByPost();
236 $this->rbacreview->isAssigned($userObj->getId(), ANONYMOUS_ROLE_ID) ||
237 $this->rbacreview->isAssigned($userObj->getId(), SYSTEM_ROLE_ID)
240 $form->setValuesByPost();
243 $this->sendPasswordAssistanceMail($userObj);
260 public function sendPasswordAssistanceMail(
ilObjUser $userObj)
264 require_once
'Services/Mail/classes/class.ilMailbox.php';
265 require_once
'Services/Mail/classes/class.ilMail.php';
266 require_once
'Services/Mail/classes/class.ilMimeMail.php';
267 require_once
'include/inc.pwassist_session_handler.php';
272 !is_array($pwassist_session) ||
273 count($pwassist_session) == 0 ||
274 $pwassist_session[
'expires'] <
time() ||
284 $pwassist_session[
'pwassist_id'],
291 $server_url = $protocol .
$_SERVER[
'HTTP_HOST'] . substr(
$_SERVER[
'PHP_SELF'], 0, strrpos(
$_SERVER[
'PHP_SELF'],
'/')) .
'/';
296 $pwassist_url = $protocol .
$_SERVER[
'HTTP_HOST']
297 . str_replace(
'ilias.php',
'pwassist.php',
$_SERVER[
'PHP_SELF'])
298 .
'?client_id=' . $this->
ilias->getClientId()
299 .
$delimiter .
'lang=' . $this->lng->getLangKey()
300 .
$delimiter .
'key=' . $pwassist_session[
'pwassist_id'];
301 $alternative_pwassist_url = $protocol .
$_SERVER[
'HTTP_HOST']
302 . str_replace(
'ilias.php',
'pwassist.php',
$_SERVER[
'PHP_SELF'])
303 .
'?client_id=' . $this->
ilias->getClientId()
304 .
$delimiter .
'lang=' . $this->lng->getLangKey()
305 .
$delimiter .
'key=' . $pwassist_session[
'pwassist_id'];
308 $senderFactory = $DIC[
"mail.mime.sender.factory"];
309 $sender = $senderFactory->system();
312 $mm->Subject($this->lng->txt(
'pwassist_mail_subject'));
320 $this->lng->txt(
'pwassist_mail_body'),
325 'mailto:' . $DIC->settings()->get(
"admin_email"),
326 $alternative_pwassist_url
339 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
342 $form->setFormAction($this->ctrl->getFormAction($this,
'submitAssignPasswordForm'));
343 $form->setTarget(
'_parent');
345 $username =
new ilTextInputGUI($this->lng->txt(
'username'),
'username');
347 $form->addItem($username);
354 $key->setValue($pwassist_id);
357 $form->addCommandButton(
'submitAssignPasswordForm', $this->lng->txt(
'submit'));
376 require_once
'include/inc.pwassist_session_handler.php';
377 require_once
'Services/Language/classes/class.ilLanguage.php';
381 $pwassist_id =
$_GET[
'key'];
387 !is_array($pwassist_session) ||
388 count($pwassist_session) == 0 ||
389 $pwassist_session[
'expires'] <
time()
394 ilStartUpGUI::initStartUpTemplate(
'tpl.pwassist_assignpassword.html',
true);
396 $this->tpl->setVariable(
'TXT_PAGEHEADLINE', $this->lng->txt(
'password_assistance'));
398 $this->tpl->setVariable(
'TXT_ENTER_USERNAME_AND_NEW_PASSWORD', $this->lng->txt(
'pwassist_enter_username_and_new_password'));
403 $this->tpl->setVariable(
'FORM',
$form->getHTML());
427 require_once
'include/inc.pwassist_session_handler.php';
433 if (!
$form->checkInput()) {
434 $form->setValuesByPost();
439 $username =
$form->getInput(
'username');
441 $pwassist_id =
$form->getInput(
'key');
447 !is_array($pwassist_session) ||
448 count($pwassist_session) == 0 ||
449 $pwassist_session[
'expires'] <
time()
452 $form->setValuesByPost();
456 $is_successful =
true;
459 $userObj =
new ilObjUser($pwassist_session[
'user_id']);
460 if ($userObj == null) {
461 $message = $this->lng->txt(
'user_does_not_exist');
462 $is_successful =
false;
467 if ($is_successful && strcasecmp($userObj->
getLogin(), $username) != 0) {
468 $message = $this->lng->txt(
'pwassist_login_not_match');
469 $is_successful =
false;
474 $message = $this->lng->txt($error_lng_var);
475 $is_successful =
false;
482 if ($is_successful) {
484 if (!$is_successful) {
485 $message = $this->lng->txt(
'passwd_invalid');
491 if ($is_successful) {
499 if ($is_successful) {
501 $this->
showMessageForm(sprintf($this->lng->txt(
'pwassist_password_assigned'), $username));
504 $form->setValuesByPost();
515 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
518 $form->setFormAction($this->ctrl->getFormAction($this,
'submitUsernameAssistanceForm'));
519 $form->setTarget(
'_parent');
522 $email->setRequired(
true);
525 $form->addCommandButton(
'submitUsernameAssistanceForm', $this->lng->txt(
'submit'));
542 ilStartUpGUI::initStartUpTemplate(
'tpl.pwassist_username_assistance.html',
true);
544 $this->tpl->setVariable(
'TXT_PAGEHEADLINE', $this->lng->txt(
'password_assistance'));
546 $this->tpl->setVariable(
547 'TXT_ENTER_USERNAME_AND_EMAIL',
552 $this->lng->txt(
'pwassist_enter_email'),
561 $this->tpl->setVariable(
'FORM',
$form->getHTML());
579 require_once
'Services/User/classes/class.ilObjUser.php';
580 require_once
'Services/Utilities/classes/class.ilUtil.php';
583 if (!
$form->checkInput()) {
584 $form->setValuesByPost();
597 if (!is_array($logins) || count($logins) < 1) {
599 $form->setValuesByPost();
623 $this->sendUsernameAssistanceMail(
$email, $logins);
641 public function sendUsernameAssistanceMail(
$email,
array $logins)
645 require_once
'Services/Mail/classes/class.ilMailbox.php';
646 require_once
'Services/Mail/classes/class.ilMail.php';
647 require_once
'Services/Mail/classes/class.ilMimeMail.php';
648 require_once
'include/inc.pwassist_session_handler.php';
653 $login_url = $server_url .
'pwassist.php' .
'?client_id=' . $this->
ilias->getClientId() .
'&lang=' . $this->lng->getLangKey();
656 $senderFactory = $DIC[
"mail.mime.sender.factory"];
657 $sender = $senderFactory->system();
660 $mm->Subject($this->lng->txt(
'pwassist_mail_subject'));
668 $this->lng->txt(
'pwassist_username_mail_body'),
669 join($logins,
",\n"),
673 'mailto:' . $DIC->settings()->get(
"admin_email"),
687 ilStartUpGUI::initStartUpTemplate(
'tpl.pwassist_message.html',
true);
688 $this->tpl->setVariable(
'TXT_PAGEHEADLINE', $this->lng->txt(
'password_assistance'));
691 $this->tpl->setVariable(
'TXT_TEXT', str_replace(
"\\n",
'<br />',
$text));
701 $this->tpl->setPermanentLink(
'usr', null, $context);
static getUserIdByLogin($a_login)
getAssignPasswordForm($pwassist_id)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
getLogin()
get login / username public
db_pwassist_session_destroy($pwassist_id)
destroy session
db_pwassist_session_read($pwassist_id)
static isPasswordValidForUserContext($clear_text_password, $user, &$error_language_variable=null)
if(empty($userids)) $userid
fillPermanentLink($context)
showAssignPasswordForm(ilPropertyFormGUI $form=null, $pwassist_id='')
Assign password form.
const PERMANENT_LINK_TARGET_PW
catch(Exception $e) $message
getEmail()
get email address public
db_pwassist_session_find($user_id)
if(isset($_POST['submit'])) $form
getId()
get object id public
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
submitUsernameAssistanceForm()
Reads the submitted data from the password assistance form.
This class represents a text property in a property form.
redirection script todo: (a better solution should control the processing via a xml file) ...
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
showMessageForm($text)
This form is used to show a message to the user.
Create styles array
The data for the language used.
Password assistance facility for users who have forgotten their password or for users for whom no pas...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
getUsernameAssistanceForm()
showAssistanceForm(ilPropertyFormGUI $form=null)
const PERMANENT_LINK_TARGET_NAME
submitAssignPasswordForm()
Reads the submitted data from the password assistance form.
submitAssistanceForm()
Reads the submitted data from the password assistance form.
static _getUserIdsByEmail($a_email)
STATIC METHOD get all user_ids of an email address.
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
update()
update object in db
db_pwassist_session_write($pwassist_id, $maxlifetime, $user_id)
Writes serialized session data to the database.
showUsernameAssistanceForm(ilPropertyFormGUI $form=null)
Shows the password assistance form.