protected function __trigger() { self::__init(); $db = ASDCLoader::instance(); $success = false; $Members = $this->_Parent->ExtensionManager->create('members'); $Members->initialiseCookie(); if ($Members->isLoggedIn() !== true) { redirect(URL . '/forbidden/'); } $Members->initialiseMemberObject(); // Make sure we dont accidently use an expired token extension_Members::purgeCodes(); $activation_row = $db->query(sprintf("SELECT * FROM `tbl_members_codes` WHERE `token` = '%s' AND `member_id` = %d LIMIT 1", $db->escape($_POST['fields']['code']), (int) $Members->Member->get('id')))->current(); // No code, you are a spy! if ($activation_row === false) { redirect(URL . '/members/activate/failed/'); } // Got this far, all is well. $db->query(sprintf("UPDATE `tbl_entries_data_%d` SET `role_id` = %d WHERE `entry_id` = %d LIMIT 1", $Members->roleField(), 3, (int) $Members->Member->get('id'))); extension_Members::purgeTokens((int) $Members->Member->get('id')); $em = new EntryManager($this->_Parent); $entry = end($em->fetch((int) $Members->Member->get('id'))); $email = $entry->getData(self::findFieldID('email-address', 'members')); $name = $entry->getData(self::findFieldID('name', 'members')); $Members->emailNewMember(array('section' => $Members->memberSectionHandle(), 'entry' => $entry, 'fields' => array('username-and-password' => $entry->getData(self::findFieldID('username-and-password', 'members')), 'name' => $name['value'], 'email-address' => $email['value']))); redirect(URL . '/members/activate/success/'); }
protected function __trigger() { $result = new XMLElement(self::ROOTELEMENT); $success = false; self::__init(); $db = ASDCLoader::instance(); $Members = $this->_Parent->ExtensionManager->create('members'); $Members->initialiseCookie(); if ($Members->isLoggedIn() !== true) { $result->appendChild(new XMLElement('error', 'Must be logged in.')); $result->setAttribute('status', 'error'); return $result; } $Members->initialiseMemberObject(); // Make sure we dont accidently use an expired code extension_Members::purgeCodes(); $em = new EntryManager($this->_Parent); $entry = end($em->fetch((int) $Members->Member->get('id'))); $email = $entry->getData(self::findFieldID('email-address', 'members')); $name = $entry->getData(self::findFieldID('name', 'members')); $success = $Members->emailNewMember(array('entry' => $entry, 'fields' => array('username-and-password' => $entry->getData(self::findFieldID('username-and-password', 'members')), 'name' => $name['value'], 'email-address' => $email['value']))); if ($success == true && isset($_REQUEST['redirect'])) { redirect($_REQUEST['redirect']); } $result->setAttribute('result', $success === true ? 'success' : 'error'); return $result; }
protected function __trigger() { self::__init(); $db = ASDCLoader::instance(); $success = false; $Members = $this->_Parent->ExtensionManager->create('members'); $Members->initialiseCookie(); if ($Members->isLoggedIn() !== true) { redirect(URL . '/forbidden/'); } $Members->initialiseMemberObject(); // Make sure we dont accidently use an expired token extension_Members::purgeCodes(); $em = new EntryManager($this->_Parent); $entry = end($em->fetch((int) $Members->Member->get('id'))); $email = $entry->getData(self::findFieldID('email-address', 'members')); $name = $entry->getData(self::findFieldID('name', 'members')); $Members->emailNewMember(array('section' => $Members->memberSectionHandle(), 'entry' => $entry, 'fields' => array('username-and-password' => $entry->getData(self::findFieldID('username-and-password', 'members')), 'name' => $name['value'], 'email-address' => $email['value']))); redirect(URL . '/members/activate/sent/'); }
protected function __trigger() { $result = new XMLElement(self::ROOTELEMENT); self::__init(); $db = ASDCLoader::instance(); $success = false; $Members = Frontend::instance()->ExtensionManager->create('members'); $Members->initialiseCookie(); if ($Members->isLoggedIn() !== true) { $result->appendChild(new XMLElement('error', 'Must be logged in.')); $result->setAttribute('status', 'error'); return $result; } $Members->initialiseMemberObject(); // Make sure we dont accidently use an expired code extension_Members::purgeCodes(); $activation_row = $db->query(sprintf("SELECT * FROM `tbl_members_codes` WHERE `code` = '%s' AND `member_id` = %d LIMIT 1", $db->escape($_POST['fields']['code']), (int) $Members->Member->get('id')))->current(); // No code, you are a spy! if ($activation_row === false) { $success = false; $result->appendChild(new XMLElement('error', 'Activation failed. Code was invalid.')); } else { // Got this far, all is well. $db->query(sprintf("UPDATE `tbl_entries_data_%d` SET `role_id` = %d WHERE `entry_id` = %d LIMIT 1", $Members->roleField(), Symphony::Configuration()->get('new_member_default_role', 'members'), (int) $Members->Member->get('id'))); extension_Members::purgeCodes((int) $Members->Member->get('id')); $em = new EntryManager($this->_Parent); $entry = end($em->fetch((int) $Members->Member->get('id'))); $email = $entry->getData(self::findFieldID('email-address', 'members')); $name = $entry->getData(self::findFieldID('name', 'members')); $Members->emailNewMember(array('section' => $Members->memberSectionHandle(), 'entry' => $entry, 'fields' => array('username-and-password' => $entry->getData(self::findFieldID('username-and-password', 'members')), 'name' => $name['value'], 'email-address' => $email['value']))); $success = true; } if ($success == true && isset($_REQUEST['redirect'])) { redirect($_REQUEST['redirect']); } $result->setAttribute('status', $success === true ? 'success' : 'error'); return $result; }
private function __triggerCode() { $result = new XMLElement(self::ROOTELEMENT, NULL, array('step' => '2')); $success = false; $Members = $this->_Parent->ExtensionManager->create('members'); $code = $_POST['fields']['code']; self::__init(); $db = ASDCLoader::instance(); // Make sure we dont accidently use an expired code extension_Members::purgeCodes(); $code_row = $db->query(sprintf("SELECT * FROM `tbl_members_codes` WHERE `code` = '%s' LIMIT 1", $db->escape($code)))->current(); // No code, you are a spy! if ($code_row !== false) { extension_Members::purgeCodes($code_row->member_id); $success = $Members->sendNewPasswordEmail($code_row->member_id); } $result->setAttribute('result', $success === true ? 'success' : 'error'); if ($success == false) { $result->appendChild(new XMLElement('error', 'Sending email containing new password failed.')); } elseif ($success == true && isset($_REQUEST['redirect'])) { redirect($_REQUEST['redirect']); } return $result; }