Beispiel #1
0
 /**
  * The function from com_registration!
  * Registers a user into Mambo/Joomla
  *
  * @return boolean True when the registration process was successful, False when not
  */
 function saveRegistration()
 {
     global $database, $acl, $vmLogger, $mosConfig_useractivation, $mosConfig_allowUserRegistration, $mosConfig_live_site;
     if ($mosConfig_allowUserRegistration == '0') {
         mosNotAuth();
         return false;
     }
     $row = new mosUser($database);
     if (!$row->bind($_POST, 'usertype')) {
         $error = vmHtmlEntityDecode($row->getError());
         $vmLogger->err($error);
         echo "<script type=\"text/javascript\"> alert('" . $error . "');</script>\n";
         return false;
     }
     mosMakeHtmlSafe($row);
     $usergroup = 'Registered';
     $row->id = 0;
     $row->usertype = $usergroup;
     $row->gid = $acl->get_group_id($usergroup, 'ARO');
     if ($mosConfig_useractivation == '1') {
         $row->activation = md5(vmGenRandomPassword());
         $row->block = '1';
     }
     if (!$row->check()) {
         $error = vmHtmlEntityDecode($row->getError());
         $vmLogger->err($error);
         echo "<script type=\"text/javascript\"> alert('" . $error . "');</script>\n";
         return false;
     }
     $pwd = $row->password;
     $row->password = md5($row->password);
     $row->registerDate = date('Y-m-d H:i:s');
     if (!$row->store()) {
         $error = vmHtmlEntityDecode($row->getError());
         $vmLogger->err($error);
         echo "<script type=\"text/javascript\"> alert('" . $error . "');</script>\n";
         return false;
     }
     $row->checkin();
     $name = $row->name;
     $email = $row->email;
     $username = $row->username;
     $component = vmIsJoomla(1.5) ? 'com_user' : 'com_registration';
     $activation_link = $mosConfig_live_site . "/index.php?option={$component}&task=activate&activation=" . $row->activation;
     // Send the registration email
     $this->_sendMail($name, $email, $username, $pwd, $activation_link);
     return true;
 }
Beispiel #2
0
 /**
  * Function to save User Information
  * into Joomla
  */
 function saveUser(&$d)
 {
     global $database, $my, $_VERSION, $VM_LANG;
     global $mosConfig_live_site, $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_sitename;
     $aro_id = 'aro_id';
     $group_id = 'group_id';
     // Column names have changed since J! 1.5
     if (vmIsJoomla('1.5', '>=')) {
         $aro_id = 'id';
         $group_id = 'id';
     }
     $row = new mosUser($database);
     if (!$row->bind($_POST)) {
         echo "<script type=\"text/javascript\">alert('" . vmHtmlEntityDecode($row->getError()) . "');</script>\n";
     }
     $isNew = !$row->id;
     $pwd = '';
     // MD5 hash convert passwords
     if ($isNew) {
         // new user stuff
         if ($row->password == '') {
             $pwd = vmGenRandomPassword();
             $row->password = md5($pwd);
         } else {
             $pwd = $row->password;
             $row->password = md5($row->password);
         }
         $row->registerDate = date('Y-m-d H:i:s');
     } else {
         // existing user stuff
         if ($row->password == '') {
             // password set to null if empty
             $row->password = null;
         } else {
             if (!empty($_POST['password'])) {
                 if ($row->password != @$_POST['password2']) {
                     $d['error'] = vmHtmlEntityDecode($VM_LANG->_('REGWARN_VPASS2', false));
                     return false;
                 }
             }
             $row->password = md5($row->password);
         }
     }
     // save usertype to usetype column
     $query = "SELECT name" . "\n FROM #__core_acl_aro_groups" . "\n WHERE `{$group_id}` = {$row->gid}";
     $database->setQuery($query);
     $usertype = $database->loadResult();
     $row->usertype = $usertype;
     // save params
     $params = vmGet($_POST, 'params', '');
     if (is_array($params)) {
         $txt = array();
         foreach ($params as $k => $v) {
             $txt[] = "{$k}={$v}";
         }
         $row->params = implode("\n", $txt);
     }
     if (!$row->check()) {
         echo "<script type=\"text/javascript\"> alert('" . vmHtmlEntityDecode($row->getError()) . "');</script>\n";
         return false;
     }
     if (!$row->store()) {
         echo "<script type=\"text/javascript\"> alert('" . vmHtmlEntityDecode($row->getError()) . "');</script>\n";
         return false;
     }
     if ($isNew) {
         $newUserId = $row->id;
     } else {
         $newUserId = false;
     }
     $row->checkin();
     $_SESSION['session_user_params'] = $row->params;
     // update the ACL
     if (!$isNew) {
         $query = "SELECT `{$aro_id}`" . "\n FROM #__core_acl_aro" . "\n WHERE value = '{$row->id}'";
         $database->setQuery($query);
         $aro_id = $database->loadResult();
         $query = "UPDATE #__core_acl_groups_aro_map" . "\n SET group_id = {$row->gid}" . "\n WHERE aro_id = {$aro_id}";
         $database->setQuery($query);
         $database->query() or die($database->stderr());
     }
     // for new users, email username and password
     if ($isNew) {
         // Send the notification emails
         $name = $row->name;
         $email = $row->email;
         $username = $row->username;
         $password = $pwd;
         $this->_sendMail($name, $email, $username, $password);
     }
     return $newUserId;
 }