From c0eab34dba5e6827587336a1585ba25f27699ddb Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Sun, 13 Jun 2010 22:10:15 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=B0=20trunk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +YUCHENG HU+ git-svn-id: https://svn.code.sf.net/p/hawebs/svn@263 a2543c7e-f6e9-4f8a-8bff-1ffc34733512 --- .../trunk/components/com_user/controller.php | 537 ++++++++++++++++++ .../trunk/components/com_user/index.html | 1 + .../components/com_user/models/index.html | 1 + .../components/com_user/models/remind.php | 109 ++++ .../components/com_user/models/reset.php | 245 ++++++++ .../trunk/components/com_user/models/user.php | 142 +++++ .../trunk/components/com_user/router.php | 48 ++ oss/joomla/trunk/components/com_user/user.php | 28 + oss/joomla/trunk/components/com_user/user.xml | 12 + .../components/com_user/views/index.html | 1 + .../com_user/views/login/index.html | 1 + .../com_user/views/login/metadata.xml | 6 + .../com_user/views/login/tmpl/default.php | 8 + .../com_user/views/login/tmpl/default.xml | 55 ++ .../views/login/tmpl/default_login.php | 74 +++ .../views/login/tmpl/default_logout.php | 36 ++ .../com_user/views/login/tmpl/index.html | 1 + .../com_user/views/login/tmpl/metadata.xml | 8 + .../com_user/views/login/view.html.php | 116 ++++ .../com_user/views/register/index.html | 1 + .../com_user/views/register/metadata.xml | 6 + .../com_user/views/register/tmpl/default.php | 85 +++ .../com_user/views/register/tmpl/default.xml | 12 + .../views/register/tmpl/default_message.php | 9 + .../com_user/views/register/tmpl/index.html | 1 + .../com_user/views/register/view.html.php | 70 +++ .../com_user/views/remind/index.html | 1 + .../com_user/views/remind/metadata.xml | 6 + .../com_user/views/remind/tmpl/default.php | 28 + .../com_user/views/remind/tmpl/default.xml | 12 + .../com_user/views/remind/tmpl/index.html | 1 + .../com_user/views/remind/view.html.php | 76 +++ .../com_user/views/reset/index.html | 1 + .../com_user/views/reset/metadata.xml | 6 + .../com_user/views/reset/tmpl/complete.php | 34 ++ .../com_user/views/reset/tmpl/complete.xml | 4 + .../com_user/views/reset/tmpl/confirm.php | 26 + .../com_user/views/reset/tmpl/confirm.xml | 4 + .../com_user/views/reset/tmpl/default.php | 28 + .../com_user/views/reset/tmpl/default.xml | 12 + .../com_user/views/reset/tmpl/index.html | 1 + .../com_user/views/reset/view.html.php | 90 +++ .../components/com_user/views/user/index.html | 1 + .../com_user/views/user/metadata.xml | 6 + .../com_user/views/user/tmpl/default.php | 15 + .../com_user/views/user/tmpl/default.xml | 15 + .../com_user/views/user/tmpl/form.php | 81 +++ .../com_user/views/user/tmpl/form.xml | 12 + .../com_user/views/user/tmpl/index.html | 1 + .../com_user/views/user/view.html.php | 115 ++++ 50 files changed, 2189 insertions(+) create mode 100644 oss/joomla/trunk/components/com_user/controller.php create mode 100644 oss/joomla/trunk/components/com_user/index.html create mode 100644 oss/joomla/trunk/components/com_user/models/index.html create mode 100644 oss/joomla/trunk/components/com_user/models/remind.php create mode 100644 oss/joomla/trunk/components/com_user/models/reset.php create mode 100644 oss/joomla/trunk/components/com_user/models/user.php create mode 100644 oss/joomla/trunk/components/com_user/router.php create mode 100644 oss/joomla/trunk/components/com_user/user.php create mode 100644 oss/joomla/trunk/components/com_user/user.xml create mode 100644 oss/joomla/trunk/components/com_user/views/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/login/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/login/metadata.xml create mode 100644 oss/joomla/trunk/components/com_user/views/login/tmpl/default.php create mode 100644 oss/joomla/trunk/components/com_user/views/login/tmpl/default.xml create mode 100644 oss/joomla/trunk/components/com_user/views/login/tmpl/default_login.php create mode 100644 oss/joomla/trunk/components/com_user/views/login/tmpl/default_logout.php create mode 100644 oss/joomla/trunk/components/com_user/views/login/tmpl/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/login/tmpl/metadata.xml create mode 100644 oss/joomla/trunk/components/com_user/views/login/view.html.php create mode 100644 oss/joomla/trunk/components/com_user/views/register/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/register/metadata.xml create mode 100644 oss/joomla/trunk/components/com_user/views/register/tmpl/default.php create mode 100644 oss/joomla/trunk/components/com_user/views/register/tmpl/default.xml create mode 100644 oss/joomla/trunk/components/com_user/views/register/tmpl/default_message.php create mode 100644 oss/joomla/trunk/components/com_user/views/register/tmpl/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/register/view.html.php create mode 100644 oss/joomla/trunk/components/com_user/views/remind/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/remind/metadata.xml create mode 100644 oss/joomla/trunk/components/com_user/views/remind/tmpl/default.php create mode 100644 oss/joomla/trunk/components/com_user/views/remind/tmpl/default.xml create mode 100644 oss/joomla/trunk/components/com_user/views/remind/tmpl/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/remind/view.html.php create mode 100644 oss/joomla/trunk/components/com_user/views/reset/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/reset/metadata.xml create mode 100644 oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.php create mode 100644 oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.xml create mode 100644 oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.php create mode 100644 oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.xml create mode 100644 oss/joomla/trunk/components/com_user/views/reset/tmpl/default.php create mode 100644 oss/joomla/trunk/components/com_user/views/reset/tmpl/default.xml create mode 100644 oss/joomla/trunk/components/com_user/views/reset/tmpl/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/reset/view.html.php create mode 100644 oss/joomla/trunk/components/com_user/views/user/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/user/metadata.xml create mode 100644 oss/joomla/trunk/components/com_user/views/user/tmpl/default.php create mode 100644 oss/joomla/trunk/components/com_user/views/user/tmpl/default.xml create mode 100644 oss/joomla/trunk/components/com_user/views/user/tmpl/form.php create mode 100644 oss/joomla/trunk/components/com_user/views/user/tmpl/form.xml create mode 100644 oss/joomla/trunk/components/com_user/views/user/tmpl/index.html create mode 100644 oss/joomla/trunk/components/com_user/views/user/view.html.php diff --git a/oss/joomla/trunk/components/com_user/controller.php b/oss/joomla/trunk/components/com_user/controller.php new file mode 100644 index 00000000..6982850f --- /dev/null +++ b/oss/joomla/trunk/components/com_user/controller.php @@ -0,0 +1,537 @@ +get('guest')) { + JError::raiseError( 403, JText::_('Access Forbidden') ); + return; + } + + JRequest::setVar('layout', 'form'); + + parent::display(); + } + + function save() + { + // Check for request forgeries + JRequest::checkToken() or jexit( 'Invalid Token' ); + + $user =& JFactory::getUser(); + $userid = JRequest::getVar( 'id', 0, 'post', 'int' ); + + // preform security checks + if ($user->get('id') == 0 || $userid == 0 || $userid <> $user->get('id')) { + JError::raiseError( 403, JText::_('Access Forbidden') ); + return; + } + + //clean request + $post = JRequest::get( 'post' ); + $post['username'] = JRequest::getVar('username', '', 'post', 'username'); + $post['password'] = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW); + $post['password2'] = JRequest::getVar('password2', '', 'post', 'string', JREQUEST_ALLOWRAW); + + // get the redirect + $return = JURI::base(); + + // do a password safety check + if(strlen($post['password']) || strlen($post['password2'])) { // so that "0" can be used as password e.g. + if($post['password'] != $post['password2']) { + $msg = JText::_('PASSWORDS_DO_NOT_MATCH'); + // something is wrong. we are redirecting back to edit form. + // TODO: HTTP_REFERER should be replaced with a base64 encoded form field in a later release + $return = str_replace(array('"', '<', '>', "'"), '', @$_SERVER['HTTP_REFERER']); + if (empty($return) || !JURI::isInternal($return)) { + $return = JURI::base(); + } + $this->setRedirect($return, $msg, 'error'); + return false; + } + } + + // we don't want users to edit certain fields so we will unset them + unset($post['gid']); + unset($post['block']); + unset($post['usertype']); + unset($post['registerDate']); + unset($post['activation']); + + // store data + $model = $this->getModel('user'); + + if ($model->store($post)) { + $msg = JText::_( 'Your settings have been saved.' ); + } else { + //$msg = JText::_( 'Error saving your settings.' ); + $msg = $model->getError(); + } + + + $this->setRedirect( $return, $msg ); + } + + function cancel() + { + $this->setRedirect( 'index.php' ); + } + + function login() + { + // Check for request forgeries + JRequest::checkToken('request') or jexit( 'Invalid Token' ); + + global $mainframe; + + if ($return = JRequest::getVar('return', '', 'method', 'base64')) { + $return = base64_decode($return); + if (!JURI::isInternal($return)) { + $return = ''; + } + } + + $options = array(); + $options['remember'] = JRequest::getBool('remember', false); + $options['return'] = $return; + + $credentials = array(); + $credentials['username'] = JRequest::getVar('username', '', 'method', 'username'); + $credentials['password'] = JRequest::getString('passwd', '', 'post', JREQUEST_ALLOWRAW); + + //preform the login action + $error = $mainframe->login($credentials, $options); + + if(!JError::isError($error)) + { + // Redirect if the return url is not registration or login + if ( ! $return ) { + $return = 'index.php?option=com_user'; + } + + $mainframe->redirect( $return ); + } + else + { + // Facilitate third party login forms + if ( ! $return ) { + $return = 'index.php?option=com_user&view=login'; + } + + // Redirect to a login form + $mainframe->redirect( $return ); + } + } + + function logout() + { + global $mainframe; + + //preform the logout action + $error = $mainframe->logout(); + + if(!JError::isError($error)) + { + if ($return = JRequest::getVar('return', '', 'method', 'base64')) { + $return = base64_decode($return); + if (!JURI::isInternal($return)) { + $return = ''; + } + } + + // Redirect if the return url is not registration or login + if ( $return && !( strpos( $return, 'com_user' )) ) { + $mainframe->redirect( $return ); + } + } else { + parent::display(); + } + } + + /** + * Prepares the registration form + * @return void + */ + function register() + { + $usersConfig = &JComponentHelper::getParams( 'com_users' ); + if (!$usersConfig->get( 'allowUserRegistration' )) { + JError::raiseError( 403, JText::_( 'Access Forbidden' )); + return; + } + + $user =& JFactory::getUser(); + + if ( $user->get('guest')) { + JRequest::setVar('view', 'register'); + } else { + $this->setredirect('index.php?option=com_user&task=edit',JText::_('You are already registered.')); + } + + parent::display(); + } + + /** + * Save user registration and notify users and admins if required + * @return void + */ + function register_save() + { + global $mainframe; + + // Check for request forgeries + JRequest::checkToken() or jexit( 'Invalid Token' ); + + // Get required system objects + $user = clone(JFactory::getUser()); + $pathway =& $mainframe->getPathway(); + $config =& JFactory::getConfig(); + $authorize =& JFactory::getACL(); + $document =& JFactory::getDocument(); + + // If user registration is not allowed, show 403 not authorized. + $usersConfig = &JComponentHelper::getParams( 'com_users' ); + if ($usersConfig->get('allowUserRegistration') == '0') { + JError::raiseError( 403, JText::_( 'Access Forbidden' )); + return; + } + + // Initialize new usertype setting + $newUsertype = $usersConfig->get( 'new_usertype' ); + if (!$newUsertype) { + $newUsertype = 'Registered'; + } + + // Bind the post array to the user object + if (!$user->bind( JRequest::get('post'), 'usertype' )) { + JError::raiseError( 500, $user->getError()); + } + + // Set some initial user values + $user->set('id', 0); + $user->set('usertype', $newUsertype); + $user->set('gid', $authorize->get_group_id( '', $newUsertype, 'ARO' )); + + $date =& JFactory::getDate(); + $user->set('registerDate', $date->toMySQL()); + + // If user activation is turned on, we need to set the activation information + $useractivation = $usersConfig->get( 'useractivation' ); + if ($useractivation == '1') + { + jimport('joomla.user.helper'); + $user->set('activation', JUtility::getHash( JUserHelper::genRandomPassword()) ); + $user->set('block', '1'); + } + + // If there was an error with registration, set the message and display form + if ( !$user->save() ) + { + JError::raiseWarning('', JText::_( $user->getError())); + $this->register(); + return false; + } + + // Send registration confirmation mail + $password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW); + $password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email + UserController::_sendMail($user, $password); + + // Everything went fine, set relevant message depending upon user activation state and display message + if ( $useractivation == 1 ) { + $message = JText::_( 'REG_COMPLETE_ACTIVATE' ); + } else { + $message = JText::_( 'REG_COMPLETE' ); + } + + $this->setRedirect('index.php', $message); + } + + function activate() + { + global $mainframe; + + // Initialize some variables + $db =& JFactory::getDBO(); + $user =& JFactory::getUser(); + $document =& JFactory::getDocument(); + $pathway =& $mainframe->getPathWay(); + + $usersConfig = &JComponentHelper::getParams( 'com_users' ); + $userActivation = $usersConfig->get('useractivation'); + $allowUserRegistration = $usersConfig->get('allowUserRegistration'); + + // Check to see if they're logged in, because they don't need activating! + if ($user->get('id')) { + // They're already logged in, so redirect them to the home page + $mainframe->redirect( 'index.php' ); + } + + if ($allowUserRegistration == '0' || $userActivation == '0') { + JError::raiseError( 403, JText::_( 'Access Forbidden' )); + return; + } + + // create the view + require_once (JPATH_COMPONENT.DS.'views'.DS.'register'.DS.'view.html.php'); + $view = new UserViewRegister(); + + $message = new stdClass(); + + // Do we even have an activation string? + $activation = JRequest::getVar('activation', '', '', 'alnum' ); + $activation = $db->getEscaped( $activation ); + + if (empty( $activation )) + { + // Page Title + $document->setTitle( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ) ); + // Breadcrumb + $pathway->addItem( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' )); + + $message->title = JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ); + $message->text = JText::_( 'REG_ACTIVATE_NOT_FOUND' ); + $view->assign('message', $message); + $view->display('message'); + return; + } + + // Lets activate this user + jimport('joomla.user.helper'); + if (JUserHelper::activateUser($activation)) + { + // Page Title + $document->setTitle( JText::_( 'REG_ACTIVATE_COMPLETE_TITLE' ) ); + // Breadcrumb + $pathway->addItem( JText::_( 'REG_ACTIVATE_COMPLETE_TITLE' )); + + $message->title = JText::_( 'REG_ACTIVATE_COMPLETE_TITLE' ); + $message->text = JText::_( 'REG_ACTIVATE_COMPLETE' ); + } + else + { + // Page Title + $document->setTitle( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ) ); + // Breadcrumb + $pathway->addItem( JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' )); + + $message->title = JText::_( 'REG_ACTIVATE_NOT_FOUND_TITLE' ); + $message->text = JText::_( 'REG_ACTIVATE_NOT_FOUND' ); + } + + $view->assign('message', $message); + $view->display('message'); + } + + /** + * Password Reset Request Method + * + * @access public + */ + function requestreset() + { + // Check for request forgeries + JRequest::checkToken() or jexit( 'Invalid Token' ); + + // Get the input + $email = JRequest::getVar('email', null, 'post', 'string'); + + // Get the model + $model = &$this->getModel('Reset'); + + // Request a reset + if ($model->requestReset($email) === false) + { + $message = JText::sprintf('PASSWORD_RESET_REQUEST_FAILED', $model->getError()); + $this->setRedirect('index.php?option=com_user&view=reset', $message); + return false; + } + + $this->setRedirect('index.php?option=com_user&view=reset&layout=confirm'); + } + + /** + * Password Reset Confirmation Method + * + * @access public + */ + function confirmreset() + { + // Check for request forgeries + JRequest::checkToken() or jexit( 'Invalid Token' ); + + // Get the input + $token = JRequest::getVar('token', null, 'post', 'alnum'); + + // Get the model + $model = &$this->getModel('Reset'); + + // Verify the token + if ($model->confirmReset($token) === false) + { + $message = JText::sprintf('PASSWORD_RESET_CONFIRMATION_FAILED', $model->getError()); + $this->setRedirect('index.php?option=com_user&view=reset&layout=confirm', $message); + return false; + } + + $this->setRedirect('index.php?option=com_user&view=reset&layout=complete'); + } + + /** + * Password Reset Completion Method + * + * @access public + */ + function completereset() + { + // Check for request forgeries + JRequest::checkToken() or jexit( 'Invalid Token' ); + + // Get the input + $password1 = JRequest::getVar('password1', null, 'post', 'string', JREQUEST_ALLOWRAW); + $password2 = JRequest::getVar('password2', null, 'post', 'string', JREQUEST_ALLOWRAW); + + // Get the model + $model = &$this->getModel('Reset'); + + // Reset the password + if ($model->completeReset($password1, $password2) === false) + { + $message = JText::sprintf('PASSWORD_RESET_FAILED', $model->getError()); + $this->setRedirect('index.php?option=com_user&view=reset&layout=complete', $message); + return false; + } + + $message = JText::_('PASSWORD_RESET_SUCCESS'); + $this->setRedirect('index.php?option=com_user&view=login', $message); + } + + /** + * Username Reminder Method + * + * @access public + */ + function remindusername() + { + // Check for request forgeries + JRequest::checkToken() or jexit( 'Invalid Token' ); + + // Get the input + $email = JRequest::getVar('email', null, 'post', 'string'); + + // Get the model + $model = &$this->getModel('Remind'); + + // Send the reminder + if ($model->remindUsername($email) === false) + { + $message = JText::sprintf('USERNAME_REMINDER_FAILED', $model->getError()); + $this->setRedirect('index.php?option=com_user&view=remind', $message); + return false; + } + + $message = JText::sprintf('USERNAME_REMINDER_SUCCESS', $email); + $this->setRedirect('index.php?option=com_user&view=login', $message); + } + + function _sendMail(&$user, $password) + { + global $mainframe; + + $db =& JFactory::getDBO(); + + $name = $user->get('name'); + $email = $user->get('email'); + $username = $user->get('username'); + + $usersConfig = &JComponentHelper::getParams( 'com_users' ); + $sitename = $mainframe->getCfg( 'sitename' ); + $useractivation = $usersConfig->get( 'useractivation' ); + $mailfrom = $mainframe->getCfg( 'mailfrom' ); + $fromname = $mainframe->getCfg( 'fromname' ); + $siteURL = JURI::base(); + + $subject = sprintf ( JText::_( 'Account details for' ), $name, $sitename); + $subject = html_entity_decode($subject, ENT_QUOTES); + + if ( $useractivation == 1 ){ + $message = sprintf ( JText::_( 'SEND_MSG_ACTIVATE' ), $name, $sitename, $siteURL."index.php?option=com_user&task=activate&activation=".$user->get('activation'), $siteURL, $username, $password); + } else { + $message = sprintf ( JText::_( 'SEND_MSG' ), $name, $sitename, $siteURL); + } + + $message = html_entity_decode($message, ENT_QUOTES); + + //get all super administrator + $query = 'SELECT name, email, sendEmail' . + ' FROM #__users' . + ' WHERE LOWER( usertype ) = "super administrator"'; + $db->setQuery( $query ); + $rows = $db->loadObjectList(); + + // Send email to user + if ( ! $mailfrom || ! $fromname ) { + $fromname = $rows[0]->name; + $mailfrom = $rows[0]->email; + } + + JUtility::sendMail($mailfrom, $fromname, $email, $subject, $message); + + // Send notification to all administrators + $subject2 = sprintf ( JText::_( 'Account details for' ), $name, $sitename); + $subject2 = html_entity_decode($subject2, ENT_QUOTES); + + // get superadministrators id + foreach ( $rows as $row ) + { + if ($row->sendEmail) + { + $message2 = sprintf ( JText::_( 'SEND_MSG_ADMIN' ), $row->name, $sitename, $name, $email, $username); + $message2 = html_entity_decode($message2, ENT_QUOTES); + JUtility::sendMail($mailfrom, $fromname, $row->email, $subject2, $message2); + } + } + } +} +?> diff --git a/oss/joomla/trunk/components/com_user/index.html b/oss/joomla/trunk/components/com_user/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/models/index.html b/oss/joomla/trunk/components/com_user/models/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/models/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/models/remind.php b/oss/joomla/trunk/components/com_user/models/remind.php new file mode 100644 index 00000000..6691eaff --- /dev/null +++ b/oss/joomla/trunk/components/com_user/models/remind.php @@ -0,0 +1,109 @@ +setError(JText::_('INVALID_EMAIL_ADDRESS')); + return false; + } + + $db = &JFactory::getDBO(); + $db->setQuery('SELECT username FROM #__users WHERE email = '.$db->Quote($email), 0, 1); + + // Get the username + if (!($username = $db->loadResult())) + { + $this->setError(JText::_('COULD_NOT_FIND_EMAIL')); + return false; + } + + // Push the email address into the session + $mainframe->setUserState($this->_namespace.'email', $email); + + // Send the reminder email + if (!$this->_sendReminderMail($email, $username)) + { + return false; + } + + return true; + } + + /** + * Sends a username reminder to the e-mail address + * specified containing the specified username. + * + * @since 1.5 + * @param string A user's e-mail address + * @param string A user's username + * @return bool True on success/false on failure + */ + function _sendReminderMail($email, $username) + { + $config = &JFactory::getConfig(); + $uri = &JFactory::getURI(); + $url = $uri->toString( array('scheme', 'host', 'port')).JRoute::_('index.php?option=com_user&view=login', false); + + $from = $config->getValue('mailfrom'); + $fromname = $config->getValue('fromname'); + $subject = JText::sprintf('USERNAME_REMINDER_EMAIL_TITLE', $config->getValue('sitename')); + $body = JText::sprintf('USERNAME_REMINDER_EMAIL_TEXT', $config->getValue('sitename'), $username, $url); + + if (!JUtility::sendMail($from, $fromname, $email, $subject, $body)) + { + $this->setError('ERROR_SENDING_REMINDER_EMAIL'); + return false; + } + + return true; + } +} \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/models/reset.php b/oss/joomla/trunk/components/com_user/models/reset.php new file mode 100644 index 00000000..38831f8d --- /dev/null +++ b/oss/joomla/trunk/components/com_user/models/reset.php @@ -0,0 +1,245 @@ +setError(JText::_('INVALID_EMAIL_ADDRESS')); + return false; + } + + // Build a query to find the user + $query = 'SELECT id FROM #__users' + . ' WHERE email = '.$db->Quote($email) + . ' AND block = 0'; + + $db->setQuery($query); + + // Check the results + if (!($id = $db->loadResult())) + { + $this->setError(JText::_('COULD_NOT_FIND_USER')); + return false; + } + + // Generate a new token + $token = JUtility::getHash(JUserHelper::genRandomPassword()); + + $query = 'UPDATE #__users' + . ' SET activation = '.$db->Quote($token) + . ' WHERE id = '.(int) $id + . ' AND block = 0'; + + $db->setQuery($query); + + // Save the token + if (!$db->query()) + { + $this->setError(JText::_('DATABASE_ERROR')); + return false; + } + + // Send the token to the user via e-mail + if (!$this->_sendConfirmationMail($email, $token)) + { + return false; + } + + return true; + } + + /** + * Checks a user supplied token for validity + * If the token is valid, it pushes the token + * and user id into the session for security checks. + * + * @since 1.5 + * @param token An md5 hashed randomly generated string + * @return bool True on success/false on failure + */ + function confirmReset($token) + { + global $mainframe; + + if(strlen($token) != 32) { + $this->setError(JText::_('INVALID_TOKEN')); + return false; + } + + $db = &JFactory::getDBO(); + $db->setQuery('SELECT id FROM #__users WHERE block = 0 AND activation = '.$db->Quote($token)); + + // Verify the token + if (!($id = $db->loadResult())) + { + $this->setError(JText::_('INVALID_TOKEN')); + return false; + } + + // Push the token and user id into the session + $mainframe->setUserState($this->_namespace.'token', $token); + $mainframe->setUserState($this->_namespace.'id', $id); + + return true; + } + + /** + * Takes the new password and saves it to the database. + * It will only save the password if the user has the + * correct user id and token stored in her session. + * + * @since 1.5 + * @param string New Password + * @param string New Password + * @return bool True on success/false on failure + */ + function completeReset($password1, $password2) + { + jimport('joomla.user.helper'); + + global $mainframe; + + // Make sure that we have a pasword + if ( ! $password1 ) + { + $this->setError(JText::_('MUST_SUPPLY_PASSWORD')); + return false; + } + + // Verify that the passwords match + if ($password1 != $password2) + { + $this->setError(JText::_('PASSWORDS_DO_NOT_MATCH_LOW')); + return false; + } + + // Get the necessary variables + $db = &JFactory::getDBO(); + $id = $mainframe->getUserState($this->_namespace.'id'); + $token = $mainframe->getUserState($this->_namespace.'token'); + $salt = JUserHelper::genRandomPassword(32); + $crypt = JUserHelper::getCryptedPassword($password1, $salt); + $password = $crypt.':'.$salt; + + // Get the user object + $user = new JUser($id); + + // Fire the onBeforeStoreUser trigger + JPluginHelper::importPlugin('user'); + $dispatcher =& JDispatcher::getInstance(); + $dispatcher->trigger('onBeforeStoreUser', array($user->getProperties(), false)); + + // Build the query + $query = 'UPDATE #__users' + . ' SET password = '.$db->Quote($password) + . ' , activation = ""' + . ' WHERE id = '.(int) $id + . ' AND activation = '.$db->Quote($token) + . ' AND block = 0'; + + $db->setQuery($query); + + // Save the password + if (!$result = $db->query()) + { + $this->setError(JText::_('DATABASE_ERROR')); + return false; + } + + // Update the user object with the new values. + $user->password = $password; + $user->activation = ''; + $user->password_clear = $password1; + + // Fire the onAfterStoreUser trigger + $dispatcher->trigger('onAfterStoreUser', array($user->getProperties(), false, $result, $this->getError())); + + // Flush the variables from the session + $mainframe->setUserState($this->_namespace.'id', null); + $mainframe->setUserState($this->_namespace.'token', null); + + return true; + } + + /** + * Sends a password reset request confirmation to the + * specified e-mail address with the specified token. + * + * @since 1.5 + * @param string An e-mail address + * @param string An md5 hashed randomly generated string + * @return bool True on success/false on failure + */ + function _sendConfirmationMail($email, $token) + { + $config = &JFactory::getConfig(); + $uri = &JFactory::getURI(); + $url = JURI::base().'index.php?option=com_user&view=reset&layout=confirm'; + $sitename = $config->getValue('sitename'); + + // Set the e-mail parameters + $from = $config->getValue('mailfrom'); + $fromname = $config->getValue('fromname'); + $subject = JText::sprintf('PASSWORD_RESET_CONFIRMATION_EMAIL_TITLE', $sitename); + $body = JText::sprintf('PASSWORD_RESET_CONFIRMATION_EMAIL_TEXT', $sitename, $token, $url); + + // Send the e-mail + if (!JUtility::sendMail($from, $fromname, $email, $subject, $body)) + { + $this->setError('ERROR_SENDING_CONFIRMATION_EMAIL'); + return false; + } + + return true; + } +} diff --git a/oss/joomla/trunk/components/com_user/models/user.php b/oss/joomla/trunk/components/com_user/models/user.php new file mode 100644 index 00000000..06a66213 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/models/user.php @@ -0,0 +1,142 @@ +setId($id); + } + + /** + * Method to set the weblink identifier + * + * @access public + * @param int Weblink identifier + */ + function setId($id) + { + // Set weblink id and wipe data + $this->_id = $id; + $this->_data = null; + } + + /** + * Method to get a user + * + * @since 1.5 + */ + function &getData() + { + // Load the weblink data + if ($this->_loadData()) { + //do nothing + } + + return $this->_data; + } + + /** + * Method to store the user data + * + * @access public + * @return boolean True on success + * @since 1.5 + */ + function store($data) + { + $user = JFactory::getUser(); + $username = $user->get('username'); + + // Bind the form fields to the user table + if (!$user->bind($data)) { + $this->setError($this->_db->getErrorMsg()); + return false; + } + + // Store the web link table to the database + if (!$user->save()) { + $this->setError( $user->getError() ); + return false; + } + + $session =& JFactory::getSession(); + $session->set('user', $user); + + // check if username has been changed + if ( $username != $user->get('username') ) + { + $table = $this->getTable('session', 'JTable'); + $table->load($session->getId()); + $table->username = $user->get('username'); + $table->store(); + + } + + return true; + } + + /** + * Method to load user data + * + * @access private + * @return boolean True on success + * @since 1.5 + */ + function _loadData() + { + // Lets load the content if it doesn't already exist + if (empty($this->_data)) + { + $this->_data =& JFactory::getUser(); + return (boolean) $this->_data; + } + return true; + } +} +?> diff --git a/oss/joomla/trunk/components/com_user/router.php b/oss/joomla/trunk/components/com_user/router.php new file mode 100644 index 00000000..ac653480 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/router.php @@ -0,0 +1,48 @@ +getItem( $query['Itemid'] ); + if(!isset($menuItem->query['view']) || $menuItem->query['view'] != $query['view']) { + $segments[] = $query['view']; + } + } + unset($query['view']); + } + return $segments; +} + +function UserParseRoute($segments) +{ + $vars = array(); + + $count = count($segments); + if(!empty($count)) { + $vars['view'] = $segments[0]; + } + + if($count > 1) { + $vars['id'] = $segments[$count - 1]; + } + + return $vars; +} diff --git a/oss/joomla/trunk/components/com_user/user.php b/oss/joomla/trunk/components/com_user/user.php new file mode 100644 index 00000000..f20e1e65 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/user.php @@ -0,0 +1,28 @@ +execute( JRequest::getCmd('task')); + +// Redirect if set by the controller +$controller->redirect(); diff --git a/oss/joomla/trunk/components/com_user/user.xml b/oss/joomla/trunk/components/com_user/user.xml new file mode 100644 index 00000000..79971708 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/user.xml @@ -0,0 +1,12 @@ + + + User + Joomla! Project + 2006 + Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + admin@joomla.org + www.joomla.org + 1.5.0 + User Self-Management + diff --git a/oss/joomla/trunk/components/com_user/views/index.html b/oss/joomla/trunk/components/com_user/views/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/login/index.html b/oss/joomla/trunk/components/com_user/views/login/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/login/metadata.xml b/oss/joomla/trunk/components/com_user/views/login/metadata.xml new file mode 100644 index 00000000..c28e9a8b --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/metadata.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/login/tmpl/default.php b/oss/joomla/trunk/components/com_user/views/login/tmpl/default.php new file mode 100644 index 00000000..e98d8075 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/tmpl/default.php @@ -0,0 +1,8 @@ + +params->get( 'show_page_title', 1)) : ?> +
+ escape($this->params->get('page_title')); ?> +
+ +loadTemplate($this->type); ?> + diff --git a/oss/joomla/trunk/components/com_user/views/login/tmpl/default.xml b/oss/joomla/trunk/components/com_user/views/login/tmpl/default.xml new file mode 100644 index 00000000..4fe5dbb4 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/tmpl/default.xml @@ -0,0 +1,55 @@ + + + + + + + + + Default Login Layout + DEFAULT LOGIN LAYOUT DESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/login/tmpl/default_login.php b/oss/joomla/trunk/components/com_user/views/login/tmpl/default_login.php new file mode 100644 index 00000000..443d8106 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/tmpl/default_login.php @@ -0,0 +1,74 @@ + +load( 'plg_authentication_openid', JPATH_ADMINISTRATOR ); + $langScript = 'var JLanguage = {};'. + ' JLanguage.WHAT_IS_OPENID = \''.JText::_( 'WHAT_IS_OPENID' ).'\';'. + ' JLanguage.LOGIN_WITH_OPENID = \''.JText::_( 'LOGIN_WITH_OPENID' ).'\';'. + ' JLanguage.NORMAL_LOGIN = \''.JText::_( 'NORMAL_LOGIN' ).'\';'. + ' var comlogin = 1;'; + $document = &JFactory::getDocument(); + $document->addScriptDeclaration( $langScript ); + JHTML::_('script', 'openid.js'); +endif; ?> +
+ + + + + +
+ params->get( 'show_login_title' ) ) : ?> +
+ params->get( 'header_login' ); ?> +
+ +
+ image; ?> + params->get( 'description_login' ) ) : ?> + params->get( 'description_login_text' ); ?> +

+ +
+
+
+

+
+ +

+

+
+ +

+ +

+ + +

+ + +
+ + + + + + +
diff --git a/oss/joomla/trunk/components/com_user/views/login/tmpl/default_logout.php b/oss/joomla/trunk/components/com_user/views/login/tmpl/default_logout.php new file mode 100644 index 00000000..7932b94d --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/tmpl/default_logout.php @@ -0,0 +1,36 @@ + + +
+params->get( 'show_logout_title' ) ) : ?> +
+ escape($this->params->get( 'header_logout' )); ?> +
+ + + + + + + + +
+
+ image; ?> + params->get('description_logout')) : + echo $this->escape($this->params->get('description_logout_text')); + endif; + ?> +
+
+
+ +
+
+ +

+ + + + +
diff --git a/oss/joomla/trunk/components/com_user/views/login/tmpl/index.html b/oss/joomla/trunk/components/com_user/views/login/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/login/tmpl/metadata.xml b/oss/joomla/trunk/components/com_user/views/login/tmpl/metadata.xml new file mode 100644 index 00000000..570017c9 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/tmpl/metadata.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/login/view.html.php b/oss/joomla/trunk/components/com_user/views/login/view.html.php new file mode 100644 index 00000000..3f7c1dec --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/login/view.html.php @@ -0,0 +1,116 @@ +getPathway(); + $image = ''; + + $menu =& JSite::getMenu(); + $item = $menu->getActive(); + if($item) + $params =& $menu->getParams($item->id); + else + $params =& $menu->getParams(null); + + + $type = (!$user->get('guest')) ? 'logout' : 'login'; + + // Set some default page parameters if not set + $params->def( 'show_page_title', 1 ); + if (!$params->get( 'page_title')) { + $params->set('page_title', JText::_( 'Login' )); + } + if(!$item) + { + $params->def( 'header_login', '' ); + $params->def( 'header_logout', '' ); + } + + $params->def( 'pageclass_sfx', '' ); + $params->def( 'login', 'index.php' ); + $params->def( 'logout', 'index.php' ); + $params->def( 'description_login', 1 ); + $params->def( 'description_logout', 1 ); + $params->def( 'description_login_text', JText::_( 'LOGIN_DESCRIPTION' ) ); + $params->def( 'description_logout_text', JText::_( 'LOGOUT_DESCRIPTION' ) ); + $params->def( 'image_login', 'key.jpg' ); + $params->def( 'image_logout', 'key.jpg' ); + $params->def( 'image_login_align', 'right' ); + $params->def( 'image_logout_align', 'right' ); + $usersConfig = &JComponentHelper::getParams( 'com_users' ); + $params->def( 'registration', $usersConfig->get( 'allowUserRegistration' ) ); + + if ( !$user->get('guest') ) + { + $title = JText::_( 'Logout'); + + // pathway item + $pathway->addItem($title, '' ); + // Set page title + $document->setTitle( $title ); + } + else + { + $title = JText::_( 'Login'); + + // pathway item + $pathway->addItem($title, '' ); + // Set page title + $document->setTitle( $title ); + } + + // Build login image if enabled + if ( $params->get( 'image_'.$type ) != -1 ) { + $image = 'images/stories/'.$params->get( 'image_'.$type ); + $image = ''; + } + + // Get the return URL + if (!$url = JRequest::getVar('return', '', 'method', 'base64')) { + $url = base64_encode($params->get($type)); + } + + $errors =& JError::getErrors(); + + $this->assign('image' , $image); + $this->assign('type' , $type); + $this->assign('return', $url); + + $this->assignRef('params', $params); + + + parent::display($tpl); + } +} + diff --git a/oss/joomla/trunk/components/com_user/views/register/index.html b/oss/joomla/trunk/components/com_user/views/register/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/register/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/register/metadata.xml b/oss/joomla/trunk/components/com_user/views/register/metadata.xml new file mode 100644 index 00000000..85c4aa9d --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/register/metadata.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/register/tmpl/default.php b/oss/joomla/trunk/components/com_user/views/register/tmpl/default.php new file mode 100644 index 00000000..db806158 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/register/tmpl/default.php @@ -0,0 +1,85 @@ + + + +message)){ + $this->display('message'); + } +?> + +
+ +params->def( 'show_page_title', 1 ) ) : ?> +
escape($this->params->get('page_title')); ?>
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + * +
+ + + * +
+ + + * +
+ + + * +
+ + + * +
+ +
+ + + + + +
diff --git a/oss/joomla/trunk/components/com_user/views/register/tmpl/default.xml b/oss/joomla/trunk/components/com_user/views/register/tmpl/default.xml new file mode 100644 index 00000000..db3e4d4f --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/register/tmpl/default.xml @@ -0,0 +1,12 @@ + + + + + + + + + DEFAULT REGISTER LAYOUT + DEFAULT REGISTER LAYOUT DESC + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/register/tmpl/default_message.php b/oss/joomla/trunk/components/com_user/views/register/tmpl/default_message.php new file mode 100644 index 00000000..81003870 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/register/tmpl/default_message.php @@ -0,0 +1,9 @@ + +
+ escape($this->message->title) ; ?> +
+ +
+ escape($this->message->text) ; ?> +
diff --git a/oss/joomla/trunk/components/com_user/views/register/tmpl/index.html b/oss/joomla/trunk/components/com_user/views/register/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/register/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/register/view.html.php b/oss/joomla/trunk/components/com_user/views/register/view.html.php new file mode 100644 index 00000000..cabf32b3 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/register/view.html.php @@ -0,0 +1,70 @@ +get( 'allowUserRegistration' )) { + JError::raiseError( 403, JText::_( 'Access Forbidden' )); + return; + } + + $pathway =& $mainframe->getPathway(); + $document =& JFactory::getDocument(); + $params = &$mainframe->getParams(); + + // Page Title + $menus = &JSite::getMenu(); + $menu = $menus->getActive(); + + // because the application sets a default page title, we need to get it + // right from the menu item itself + if (is_object( $menu )) { + $menu_params = new JParameter( $menu->params ); + if (!$menu_params->get( 'page_title')) { + $params->set('page_title', JText::_( 'Registration' )); + } + } else { + $params->set('page_title', JText::_( 'Registration' )); + } + $document->setTitle( $params->get( 'page_title' ) ); + + $pathway->addItem( JText::_( 'New' )); + + // Load the form validation behavior + JHTML::_('behavior.formvalidation'); + + $user =& JFactory::getUser(); + $this->assignRef('user', $user); + $this->assignRef('params', $params); + parent::display($tpl); + } +} diff --git a/oss/joomla/trunk/components/com_user/views/remind/index.html b/oss/joomla/trunk/components/com_user/views/remind/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/remind/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/remind/metadata.xml b/oss/joomla/trunk/components/com_user/views/remind/metadata.xml new file mode 100644 index 00000000..1e195adc --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/remind/metadata.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/remind/tmpl/default.php b/oss/joomla/trunk/components/com_user/views/remind/tmpl/default.php new file mode 100644 index 00000000..190ff923 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/remind/tmpl/default.php @@ -0,0 +1,28 @@ + + +params->def( 'show_page_title', 1 ) ) : ?> +
+ escape($this->params->get('page_title')); ?> +
+ + +
+ + + + + + + + +
+

+
+ + + +
+ + + +
diff --git a/oss/joomla/trunk/components/com_user/views/remind/tmpl/default.xml b/oss/joomla/trunk/components/com_user/views/remind/tmpl/default.xml new file mode 100644 index 00000000..5b7f7c89 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/remind/tmpl/default.xml @@ -0,0 +1,12 @@ + + + + + + + + + DEFAULT REMIND LAYOUT + DEFAULT REMIND LAYOUT DESC + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/remind/tmpl/index.html b/oss/joomla/trunk/components/com_user/views/remind/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/remind/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/remind/view.html.php b/oss/joomla/trunk/components/com_user/views/remind/view.html.php new file mode 100644 index 00000000..e388d418 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/remind/view.html.php @@ -0,0 +1,76 @@ +getParams(); + + $menus = &JSite::getMenu(); + $menu = $menus->getActive(); + + // because the application sets a default page title, we need to get it + // right from the menu item itself + if (is_object( $menu )) { + $menu_params = new JParameter( $menu->params ); + if (!$menu_params->get( 'page_title')) { + $params->set('page_title', JText::_( 'FORGOT_YOUR_USERNAME' )); + } + } else { + $params->set('page_title', JText::_( 'FORGOT_YOUR_USERNAME' )); + } + $document = &JFactory::getDocument(); + $document->setTitle( $params->get( 'page_title' ) ); + + + // Load the form validation behavior + JHTML::_('behavior.formvalidation'); + + // Add the tooltip behavior + JHTML::_('behavior.tooltip'); + + $this->assignRef('params', $params); + + parent::display($tpl); + } +} diff --git a/oss/joomla/trunk/components/com_user/views/reset/index.html b/oss/joomla/trunk/components/com_user/views/reset/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/reset/metadata.xml b/oss/joomla/trunk/components/com_user/views/reset/metadata.xml new file mode 100644 index 00000000..34a9a13b --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/metadata.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.php b/oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.php new file mode 100644 index 00000000..56376482 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.php @@ -0,0 +1,34 @@ + + +
+ +
+ +
+ + + + + + + + + + + + +
+

+
+ + + +
+ + + +
+ + + +
\ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.xml b/oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.xml new file mode 100644 index 00000000..f82ee20d --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/tmpl/complete.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.php b/oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.php new file mode 100644 index 00000000..9605e665 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.php @@ -0,0 +1,26 @@ + + +
+ +
+ +
+ + + + + + + + +
+

+
+ + + +
+ + + +
diff --git a/oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.xml b/oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.xml new file mode 100644 index 00000000..f82ee20d --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/tmpl/confirm.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/reset/tmpl/default.php b/oss/joomla/trunk/components/com_user/views/reset/tmpl/default.php new file mode 100644 index 00000000..a3e2839f --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/tmpl/default.php @@ -0,0 +1,28 @@ + + +params->def( 'show_page_title', 1 ) ) : ?> +
+ escape($this->params->get('page_title')); ?> +
+ + +
+ + + + + + + + +
+

+
+ + + +
+ + + +
diff --git a/oss/joomla/trunk/components/com_user/views/reset/tmpl/default.xml b/oss/joomla/trunk/components/com_user/views/reset/tmpl/default.xml new file mode 100644 index 00000000..045be3e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/tmpl/default.xml @@ -0,0 +1,12 @@ + + + + + + + + + DEFAULT RESET LAYOUT + DEFAULT RESET LAYOUT DESC + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/reset/tmpl/index.html b/oss/joomla/trunk/components/com_user/views/reset/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/reset/view.html.php b/oss/joomla/trunk/components/com_user/views/reset/view.html.php new file mode 100644 index 00000000..ae34f37e --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/reset/view.html.php @@ -0,0 +1,90 @@ +getLayout(); + + if ($layout == 'complete') + { + $id = $mainframe->getUserState($this->_namespace.'id'); + $token = $mainframe->getUserState($this->_namespace.'token'); + + if (is_null($id) || is_null($token)) + { + $mainframe->redirect('index.php?option=com_user&view=reset'); + } + } + + // Get the page/component configuration + $params = &$mainframe->getParams(); + + $menus = &JSite::getMenu(); + $menu = $menus->getActive(); + + // because the application sets a default page title, we need to get it + // right from the menu item itself + if (is_object( $menu )) { + $menu_params = new JParameter( $menu->params ); + if (!$menu_params->get( 'page_title')) { + $params->set('page_title', JText::_( 'FORGOT_YOUR_PASSWORD' )); + } + } else { + $params->set('page_title', JText::_( 'FORGOT_YOUR_PASSWORD' )); + } + $document = &JFactory::getDocument(); + $document->setTitle( $params->get( 'page_title' ) ); + + $this->assignRef('params', $params); + + parent::display($tpl); + } +} diff --git a/oss/joomla/trunk/components/com_user/views/user/index.html b/oss/joomla/trunk/components/com_user/views/user/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/user/metadata.xml b/oss/joomla/trunk/components/com_user/views/user/metadata.xml new file mode 100644 index 00000000..482d5add --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/metadata.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/user/tmpl/default.php b/oss/joomla/trunk/components/com_user/views/user/tmpl/default.php new file mode 100644 index 00000000..f95f5f60 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/tmpl/default.php @@ -0,0 +1,15 @@ + +params->def( 'show_page_title', 1 ) ) : ?> +
+ escape($this->params->get('page_title')); ?> +
+ + + + + + +
+ escape($this->params->get('welcome_desc', JText::_( 'WELCOME_DESC' )))); ?> +
diff --git a/oss/joomla/trunk/components/com_user/views/user/tmpl/default.xml b/oss/joomla/trunk/components/com_user/views/user/tmpl/default.xml new file mode 100644 index 00000000..5be27ebb --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/tmpl/default.xml @@ -0,0 +1,15 @@ + + + + + + + + + DEFAULT USER LAYOUT + DEFAULT USER LAYOUT DESC + + + + + diff --git a/oss/joomla/trunk/components/com_user/views/user/tmpl/form.php b/oss/joomla/trunk/components/com_user/views/user/tmpl/form.php new file mode 100644 index 00000000..1fd43df0 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/tmpl/form.php @@ -0,0 +1,81 @@ + + + + +
+params->def( 'show_page_title', 1 ) ) : ?> +
+ escape($this->params->get('page_title')); ?> +
+ + + + + + + + + + + + + + +user->get('password')) : ?> + + + + + + + + + +
+ + + user->get('username');?> +
+ + + +
+ + + +
+ + + +
+ + + +
+params)) : echo $this->params->render( 'params' ); endif; ?> + + + + + + + + +
diff --git a/oss/joomla/trunk/components/com_user/views/user/tmpl/form.xml b/oss/joomla/trunk/components/com_user/views/user/tmpl/form.xml new file mode 100644 index 00000000..07ec0887 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/tmpl/form.xml @@ -0,0 +1,12 @@ + + + + + + + + + USER FORM LAYOUT + USER FORM LAYOUT DESC + + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/user/tmpl/index.html b/oss/joomla/trunk/components/com_user/views/user/tmpl/index.html new file mode 100644 index 00000000..fa6d84e8 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/oss/joomla/trunk/components/com_user/views/user/view.html.php b/oss/joomla/trunk/components/com_user/views/user/view.html.php new file mode 100644 index 00000000..a605c316 --- /dev/null +++ b/oss/joomla/trunk/components/com_user/views/user/view.html.php @@ -0,0 +1,115 @@ +getLayout(); + if( $layout == 'form') { + $this->_displayForm($tpl); + return; + } + + if ( $layout == 'login' ) { + parent::display($tpl); + return; + } + + $user =& JFactory::getUser(); + + // Get the page/component configuration + $params = &$mainframe->getParams(); + + $menus = &JSite::getMenu(); + $menu = $menus->getActive(); + + // because the application sets a default page title, we need to get it + // right from the menu item itself + if (is_object( $menu )) { + $menu_params = new JParameter( $menu->params ); + if (!$menu_params->get( 'page_title')) { + $params->set('page_title', JText::_( 'Registered Area' )); + } + } else { + $params->set('page_title', JText::_( 'Registered Area' )); + } + $document = &JFactory::getDocument(); + $document->setTitle( $params->get( 'page_title' ) ); + + // Set pathway information + $this->assignRef('user' , $user); + $this->assignRef('params', $params); + + parent::display($tpl); + } + + function _displayForm($tpl = null) + { + global $mainframe; + + // Load the form validation behavior + JHTML::_('behavior.formvalidation'); + + $user =& JFactory::getUser(); + $params = &$mainframe->getParams(); + + // check to see if Frontend User Params have been enabled + $usersConfig = &JComponentHelper::getParams( 'com_users' ); + $check = $usersConfig->get('frontend_userparams'); + + if ($check == '1' || $check == 1 || $check == NULL) + { + if($user->authorize( 'com_user', 'edit' )) { + $params = $user->getParameters(true); + } + } + $params->merge( $params ); + $menus = &JSite::getMenu(); + $menu = $menus->getActive(); + + // because the application sets a default page title, we need to get it + // right from the menu item itself + if (is_object( $menu )) { + $menu_params = new JParameter( $menu->params ); + if (!$menu_params->get( 'page_title')) { + $params->set('page_title', JText::_( 'Edit Your Details' )); + } + } else { + $params->set('page_title', JText::_( 'Edit Your Details' )); + } + $document = &JFactory::getDocument(); + $document->setTitle( $params->get( 'page_title' ) ); + + $this->assignRef('user' , $user); + $this->assignRef('params', $params); + + parent::display($tpl); + } +}