/**
  * Output the object.
  *
  * @param smdoc $foowd Reference to the foowd environment object.
  */
 function method_view()
 {
     $this->foowd->track('smdoc_user->method_view');
     if ($this->foowd->user->inGroup('Author', $this->creatorid)) {
         $this->foowd->template->assign('SM_version', $this->smver_to_string());
         $this->foowd->template->assign('IMAP_server', $this->imap_to_string());
         $this->foowd->template->assign('SMTP_server', $this->smtp_to_string());
     }
     $this->foowd->template->assign('show_email', $this->show_email);
     $nicks = $this->IM_nicks;
     if ($this->IRC != '') {
         $nicks['IRC'] = $this->IRC;
     }
     if (!empty($nicks)) {
         $this->foowd->template->assign('nicks', $nicks);
     }
     parent::method_view();
     $this->foowd->track();
 }
Example #2
0
 /**
  * Get user a new password if it has been lost.
  *
  * @access private
  * @static
  * @param smdoc $foowd Reference to the foowd environment object.
  * @param string username The name of the user to fetch the password for.
  * @param string queryUsername Username given for stage 2 of the retrieval process.
  * @param string id The ID given for stage 2 of the process.
  * @return int 0 = nothing, display form<br />
  *             1 = password change request e-mail sent<br />
  *             2 = could not send e-mail due to technical problem<br />
  *             3 = user has no e-mail address<br />
  *             4 = user does not exist<br />
  *             5 = password changed and e-mail sent<br />
  *             6 = could not send e-mail due to technical problem<br />
  *             7 = id does not match<br />
  *             8 = user does not exist<br />
  */
 function fetchPassword(&$foowd, $username, $queryUsername = NULL, $id = NULL)
 {
     if ($username == '') {
         return 0;
     }
     // nothing, display form
     $user_info['username'] = $username;
     $lostuser =& base_user::fetchUser($foowd, $user_info);
     if (!$lostuser || !isset($lostuser->title) || strtolower($lostuser->title) != strtolower($username)) {
         return 4;
     }
     // user does not exist
     if (!isset($lostuser->email)) {
         return 3;
     }
     // user has no e-mail address
     $site = $foowd->config_settings['site']['site_name'];
     // We have username only, send stage one email
     if ($id == NULL && $queryUsername == NULL) {
         $foowd->template->assign('sitename', $site);
         $foowd->template->assign('username', $lostuser->title);
         $foowd->template->assign('hostname', $_SERVER['SERVER_NAME']);
         $foowd->template->assign('class', 'base_user');
         $foowd->template->assign('id', md5($user->updated . $user->title));
         $message = $foowd->template->fetch('fetchpwd_request.tpl');
         $result = email($foowd, $lostuser->email, sprintf(_("%s - Password Change Request"), $site), $message, 'From: ' . $foowd->config_settings['site']['email_webmaster'] . '\\r\\nReply-To: ' . $foowd->config_settings['site']['email_noreply']);
         if ($result) {
             return 1;
         } else {
             return 2;
         }
         // could not send e-mail due to technical problem
     } else {
         if (strtolower($lostuser->title) != strtolower($queryUsername)) {
             return 8;
         }
         // user does not exist
         if ($id != md5($lostuser->updated . $lostuser->title)) {
             return 7;
         }
         // id does not match
         $newPassword = '';
         $foo_len = rand(6, 12);
         srand(time());
         for ($foo = 0; $foo < $foo_len; $foo++) {
             $newPassword .= chr(rand(97, 122));
         }
         $lostuser->set('password', md5($salt . $newPassword));
         $salt = $this->foowd->config_settings['user']['password_salt'];
         $foowd->template->assign('sitename', $site);
         $foowd->template->assign('username', $user->title);
         $foowd->template->assign('password', $newPassword);
         $foowd->template->assign('hostname', $_SERVER['SERVER_NAME']);
         $foowd->template->assign('class', 'base_user');
         $message = $foowd->template->fetch('fetchpwd_response.tpl');
         $result = email($foowd, $lostuser->email, sprintf(_("%s - Password Change Request"), $site), $message, 'From: ' . $foowd->config_settings['site']['email_webmaster'] . '\\r\\nReply-To: ' . $foowd->config_settings['site']['email_noreply']);
         if ($result) {
             return 5;
         } else {
             return 6;
         }
         // could not send e-mail due to technical problem (or could not save new password)
     }
     return 0;
     // nothing, display form
 }