Файловый менеджер - Редактировать - /home/digilove/public_html/41423/com_users.tar
Назад
controllers/index.html 0000644 00000000037 15232574465 0011124 0 ustar 00 <!DOCTYPE html><title></title> controllers/profile.php 0000644 00000013641 15232574465 0011305 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('UsersController', JPATH_COMPONENT . '/controller.php'); /** * Profile controller class for Users. * * @since 1.6 */ class UsersControllerProfile extends UsersController { /** * Method to check out a user for editing and redirect to the edit form. * * @return boolean * * @since 1.6 */ public function edit() { $app = JFactory::getApplication(); $user = JFactory::getUser(); $loginUserId = (int) $user->get('id'); // Get the previous user id (if any) and the current user id. $previousId = (int) $app->getUserState('com_users.edit.profile.id'); $userId = $this->input->getInt('user_id'); // Check if the user is trying to edit another users profile. if ($userId != $loginUserId) { $app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->setHeader('status', 403, true); return false; } $cookieLogin = $user->get('cookieLogin'); // Check if the user logged in with a cookie if (!empty($cookieLogin)) { // If so, the user must login to edit the password and other data. $app->enqueueMessage(JText::_('JGLOBAL_REMEMBER_MUST_LOGIN'), 'message'); $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); return false; } // Set the user id for the user to edit in the session. $app->setUserState('com_users.edit.profile.id', $userId); // Get the model. $model = $this->getModel('Profile', 'UsersModel'); // Check out the user. if ($userId) { $model->checkout($userId); } // Check in the previous user. if ($previousId) { $model->checkin($previousId); } // Redirect to the edit screen. $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit', false)); return true; } /** * Method to save a user's profile data. * * @return void * * @since 1.6 */ public function save() { // Check for request forgeries. $this->checkToken(); $app = JFactory::getApplication(); $model = $this->getModel('Profile', 'UsersModel'); $user = JFactory::getUser(); $userId = (int) $user->get('id'); // Get the user data. $requestData = $app->input->post->get('jform', array(), 'array'); // Force the ID to this user. $requestData['id'] = $userId; // Validate the posted data. $form = $model->getForm(); if (!$form) { JError::raiseError(500, $model->getError()); return false; } // Send an object which can be modified through the plugin event $objData = (object) $requestData; $app->triggerEvent( 'onContentNormaliseRequestData', array('com_users.user', $objData, $form) ); $requestData = (array) $objData; // Validate the posted data. $data = $model->validate($form, $requestData); // Check for errors. if ($data === false) { // Get the validation messages. $errors = $model->getErrors(); // Push up to three validation messages out to the user. for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++) { if ($errors[$i] instanceof Exception) { $app->enqueueMessage($errors[$i]->getMessage(), 'warning'); } else { $app->enqueueMessage($errors[$i], 'warning'); } } // Unset the passwords. unset($requestData['password1'], $requestData['password2']); // Save the data in the session. $app->setUserState('com_users.edit.profile.data', $requestData); // Redirect back to the edit screen. $userId = (int) $app->getUserState('com_users.edit.profile.id'); $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&user_id=' . $userId, false)); return false; } // Attempt to save the data. $return = $model->save($data); // Check for errors. if ($return === false) { // Save the data in the session. $app->setUserState('com_users.edit.profile.data', $data); // Redirect back to the edit screen. $userId = (int) $app->getUserState('com_users.edit.profile.id'); $this->setMessage(JText::sprintf('COM_USERS_PROFILE_SAVE_FAILED', $model->getError()), 'warning'); $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&user_id=' . $userId, false)); return false; } // Redirect the user and adjust session state based on the chosen task. switch ($this->getTask()) { case 'apply': // Check out the profile. $app->setUserState('com_users.edit.profile.id', $return); $model->checkout($return); // Redirect back to the edit screen. $this->setMessage(JText::_('COM_USERS_PROFILE_SAVE_SUCCESS')); $redirect = $app->getUserState('com_users.edit.profile.redirect'); // Don't redirect to an external URL. if (!JUri::isInternal($redirect)) { $redirect = null; } if (!$redirect) { $redirect = 'index.php?option=com_users&view=profile&layout=edit&hidemainmenu=1'; } $this->setRedirect(JRoute::_($redirect, false)); break; default: // Check in the profile. $userId = (int) $app->getUserState('com_users.edit.profile.id'); if ($userId) { $model->checkin($userId); } // Clear the profile id from the session. $app->setUserState('com_users.edit.profile.id', null); $redirect = $app->getUserState('com_users.edit.profile.redirect'); // Don't redirect to an external URL. if (!JUri::isInternal($redirect)) { $redirect = null; } if (!$redirect) { $redirect = 'index.php?option=com_users&view=profile&user_id=' . $return; } // Redirect to the list screen. $this->setMessage(JText::_('COM_USERS_PROFILE_SAVE_SUCCESS')); $this->setRedirect(JRoute::_($redirect, false)); break; } // Flush the data from the session. $app->setUserState('com_users.edit.profile.data', null); } } controllers/registration.php 0000644 00000015420 15232574465 0012354 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('UsersController', JPATH_COMPONENT . '/controller.php'); /** * Registration controller class for Users. * * @since 1.6 */ class UsersControllerRegistration extends UsersController { /** * Method to activate a user. * * @return boolean True on success, false on failure. * * @since 1.6 */ public function activate() { $user = JFactory::getUser(); $input = JFactory::getApplication()->input; $uParams = JComponentHelper::getParams('com_users'); // Check for admin activation. Don't allow non-super-admin to delete a super admin if ($uParams->get('useractivation') != 2 && $user->get('id')) { $this->setRedirect('index.php'); return true; } // If user registration or account activation is disabled, throw a 403. if ($uParams->get('useractivation') == 0 || $uParams->get('allowUserRegistration') == 0) { JError::raiseError(403, JText::_('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN')); return false; } $model = $this->getModel('Registration', 'UsersModel'); $token = $input->getAlnum('token'); // Check that the token is in a valid format. if ($token === null || strlen($token) !== 32) { JError::raiseError(403, JText::_('JINVALID_TOKEN')); return false; } // Get the User ID $userIdToActivate = $model->getUserIdFromToken($token); if (!$userIdToActivate) { $this->setMessage(JText::_('COM_USERS_ACTIVATION_TOKEN_NOT_FOUND')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); return false; } // Get the user we want to activate $userToActivate = JFactory::getUser($userIdToActivate); // Admin activation is on and admin is activating the account if (($uParams->get('useractivation') == 2) && $userToActivate->getParam('activate', 0)) { // If a user admin is not logged in, redirect them to the login page with an error message if (!$user->authorise('core.create', 'com_users') || !$user->authorise('core.manage', 'com_users')) { $activationUrl = 'index.php?option=com_users&task=registration.activate&token=' . $token; $loginUrl = 'index.php?option=com_users&view=login&return=' . base64_encode($activationUrl); // In case we still run into this in the second step the user does not have the right permissions $message = JText::_('COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION_PERMISSIONS'); // When we are not logged in we should login if ($user->guest) { $message = JText::_('COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION'); } $this->setMessage($message); $this->setRedirect(JRoute::_($loginUrl, false)); return false; } } // Attempt to activate the user. $return = $model->activate($token); // Check for errors. if ($return === false) { // Redirect back to the home page. $this->setMessage(JText::sprintf('COM_USERS_REGISTRATION_SAVE_FAILED', $model->getError()), 'error'); $this->setRedirect('index.php'); return false; } $useractivation = $uParams->get('useractivation'); // Redirect to the login screen. if ($useractivation == 0) { $this->setMessage(JText::_('COM_USERS_REGISTRATION_SAVE_SUCCESS')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); } elseif ($useractivation == 1) { $this->setMessage(JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); } elseif ($return->getParam('activate')) { $this->setMessage(JText::_('COM_USERS_REGISTRATION_VERIFY_SUCCESS')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false)); } else { $this->setMessage(JText::_('COM_USERS_REGISTRATION_ADMINACTIVATE_SUCCESS')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false)); } return true; } /** * Method to register a user. * * @return boolean True on success, false on failure. * * @since 1.6 */ public function register() { // Check for request forgeries. $this->checkToken(); // If registration is disabled - Redirect to login page. if (JComponentHelper::getParams('com_users')->get('allowUserRegistration') == 0) { $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); return false; } $app = JFactory::getApplication(); $model = $this->getModel('Registration', 'UsersModel'); // Get the user data. $requestData = $this->input->post->get('jform', array(), 'array'); // Validate the posted data. $form = $model->getForm(); if (!$form) { JError::raiseError(500, $model->getError()); return false; } $data = $model->validate($form, $requestData); // Check for validation errors. if ($data === false) { // Get the validation messages. $errors = $model->getErrors(); // Push up to three validation messages out to the user. for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++) { if ($errors[$i] instanceof Exception) { $app->enqueueMessage($errors[$i]->getMessage(), 'error'); } else { $app->enqueueMessage($errors[$i], 'error'); } } // Save the data in the session. $app->setUserState('com_users.registration.data', $requestData); // Redirect back to the registration screen. $this->setRedirect(JRoute::_('index.php?option=com_users&view=registration', false)); return false; } // Attempt to save the data. $return = $model->register($data); // Check for errors. if ($return === false) { // Save the data in the session. $app->setUserState('com_users.registration.data', $data); // Redirect back to the edit screen. $this->setMessage($model->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=com_users&view=registration', false)); return false; } // Flush the data from the session. $app->setUserState('com_users.registration.data', null); // Redirect to the profile screen. if ($return === 'adminactivate') { $this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_VERIFY')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false)); } elseif ($return === 'useractivate') { $this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_ACTIVATE')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false)); } else { $this->setMessage(JText::_('COM_USERS_REGISTRATION_SAVE_SUCCESS')); $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); } return true; } } controllers/remind.php 0000644 00000002621 15232574465 0011117 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('UsersController', JPATH_COMPONENT . '/controller.php'); /** * Reset controller class for Users. * * @since 1.6 */ class UsersControllerRemind extends UsersController { /** * Method to request a username reminder. * * @return boolean * * @since 1.6 */ public function remind() { // Check the request token. $this->checkToken('post'); $model = $this->getModel('Remind', 'UsersModel'); $data = $this->input->post->get('jform', array(), 'array'); // Submit the password reset request. $return = $model->processRemindRequest($data); // Check for a hard error. if ($return == false && JDEBUG) { // The request failed. // Go back to the request form. $message = JText::sprintf('COM_USERS_REMIND_REQUEST_FAILED', $model->getError()); $this->setRedirect(JRoute::_('index.php?option=com_users&view=remind', false), $message, 'notice'); return false; } // To not expose if the user exists or not we send a generic message. $message = JText::_('COM_USERS_REMIND_REQUEST'); $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false), $message, 'notice'); return true; } } controllers/reset.php 0000644 00000011203 15232574465 0010757 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('UsersController', JPATH_COMPONENT . '/controller.php'); /** * Reset controller class for Users. * * @since 1.6 */ class UsersControllerReset extends UsersController { /** * Method to request a password reset. * * @return boolean * * @since 1.6 */ public function request() { // Check the request token. $this->checkToken('post'); $app = JFactory::getApplication(); $model = $this->getModel('Reset', 'UsersModel'); $data = $this->input->post->get('jform', array(), 'array'); // Submit the password reset request. $return = $model->processResetRequest($data); // Check for a hard error. if ($return instanceof Exception && JDEBUG) { // Get the error message to display. if ($app->get('error_reporting')) { $message = $return->getMessage(); } else { $message = JText::_('COM_USERS_RESET_REQUEST_ERROR'); } // Go back to the request form. $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset', false), $message, 'error'); return false; } elseif ($return === false && JDEBUG) { // The request failed. // Go back to the request form. $message = JText::sprintf('COM_USERS_RESET_REQUEST_FAILED', $model->getError()); $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset', false), $message, 'notice'); return false; } // To not expose if the user exists or not we send a generic message. $message = JText::_('COM_USERS_RESET_REQUEST'); $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm', false), $message, 'notice'); return true; } /** * Method to confirm the password request. * * @return boolean * * @access public * @since 1.6 */ public function confirm() { // Check the request token. $this->checkToken('request'); $app = JFactory::getApplication(); $model = $this->getModel('Reset', 'UsersModel'); $data = $this->input->get('jform', array(), 'array'); // Confirm the password reset request. $return = $model->processResetConfirm($data); // Check for a hard error. if ($return instanceof Exception) { // Get the error message to display. if ($app->get('error_reporting')) { $message = $return->getMessage(); } else { $message = JText::_('COM_USERS_RESET_CONFIRM_ERROR'); } // Go back to the confirm form. $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm', false), $message, 'error'); return false; } elseif ($return === false) { // Confirm failed. // Go back to the confirm form. $message = JText::sprintf('COM_USERS_RESET_CONFIRM_FAILED', $model->getError()); $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm', false), $message, 'notice'); return false; } else { // Confirm succeeded. // Proceed to step three. $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete', false)); return true; } } /** * Method to complete the password reset process. * * @return boolean * * @since 1.6 */ public function complete() { // Check for request forgeries $this->checkToken('post'); $app = JFactory::getApplication(); $model = $this->getModel('Reset', 'UsersModel'); $data = $this->input->post->get('jform', array(), 'array'); // Complete the password reset request. $return = $model->processResetComplete($data); // Check for a hard error. if ($return instanceof Exception) { // Get the error message to display. if ($app->get('error_reporting')) { $message = $return->getMessage(); } else { $message = JText::_('COM_USERS_RESET_COMPLETE_ERROR'); } // Go back to the complete form. $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete', false), $message, 'error'); return false; } elseif ($return === false) { // Complete failed. // Go back to the complete form. $message = JText::sprintf('COM_USERS_RESET_COMPLETE_FAILED', $model->getError()); $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete', false), $message, 'notice'); return false; } else { // Complete succeeded. // Proceed to the login form. $message = JText::_('COM_USERS_RESET_COMPLETE_SUCCESS'); $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false), $message); return true; } } } controllers/user.php 0000644 00000020634 15232574465 0010623 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('UsersController', JPATH_COMPONENT . '/controller.php'); /** * Registration controller class for Users. * * @since 1.6 */ class UsersControllerUser extends UsersController { /** * Method to log in a user. * * @return void * * @since 1.6 */ public function login() { $this->checkToken('post'); $app = JFactory::getApplication(); $input = $app->input->getInputForRequestMethod(); // Populate the data array: $data = array(); $data['return'] = base64_decode($input->get('return', '', 'BASE64')); $data['username'] = $input->get('username', '', 'USERNAME'); $data['password'] = $input->get('password', '', 'RAW'); $data['secretkey'] = $input->get('secretkey', '', 'RAW'); // Check for a simple menu item id if (is_numeric($data['return'])) { if (JLanguageMultilang::isEnabled()) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select('language') ->from($db->quoteName('#__menu')) ->where('client_id = 0') ->where('id =' . $data['return']); $db->setQuery($query); try { $language = $db->loadResult(); } catch (RuntimeException $e) { return; } if ($language !== '*') { $lang = '&lang=' . $language; } else { $lang = ''; } } else { $lang = ''; } $data['return'] = 'index.php?Itemid=' . $data['return'] . $lang; } else { // Don't redirect to an external URL. if (!JUri::isInternal($data['return'])) { $data['return'] = ''; } } // Set the return URL if empty. if (empty($data['return'])) { $data['return'] = 'index.php?option=com_users&view=profile'; } // Set the return URL in the user state to allow modification by plugins $app->setUserState('users.login.form.return', $data['return']); // Get the log in options. $options = array(); $options['remember'] = $this->input->getBool('remember', false); $options['return'] = $data['return']; // Get the log in credentials. $credentials = array(); $credentials['username'] = $data['username']; $credentials['password'] = $data['password']; $credentials['secretkey'] = $data['secretkey']; // Perform the log in. if (true !== $app->login($credentials, $options)) { // Login failed ! // Clear user name, password and secret key before sending the login form back to the user. $data['remember'] = (int) $options['remember']; $data['username'] = ''; $data['password'] = ''; $data['secretkey'] = ''; $app->setUserState('users.login.form.data', $data); $app->redirect(JRoute::_('index.php?option=com_users&view=login', false)); } // Success if ($options['remember'] == true) { $app->setUserState('rememberLogin', true); } $app->setUserState('users.login.form.data', array()); $app->redirect(JRoute::_($app->getUserState('users.login.form.return'), false)); } /** * Method to log out a user. * * @return void * * @since 1.6 */ public function logout() { $this->checkToken('request'); $app = JFactory::getApplication(); // Prepare the logout options. $options = array( 'clientid' => $app->get('shared_session', '0') ? null : 0, ); // Perform the log out. $error = $app->logout(null, $options); $input = $app->input->getInputForRequestMethod(); // Check if the log out succeeded. if ($error instanceof Exception) { $app->redirect(JRoute::_('index.php?option=com_users&view=login', false)); } // Get the return URL from the request and validate that it is internal. $return = $input->get('return', '', 'BASE64'); $return = base64_decode($return); // Check for a simple menu item id if (is_numeric($return)) { if (JLanguageMultilang::isEnabled()) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select('language') ->from($db->quoteName('#__menu')) ->where('client_id = 0') ->where('id =' . $return); $db->setQuery($query); try { $language = $db->loadResult(); } catch (RuntimeException $e) { return; } if ($language !== '*') { $lang = '&lang=' . $language; } else { $lang = ''; } } else { $lang = ''; } $return = 'index.php?Itemid=' . $return . $lang; } else { // Don't redirect to an external URL. if (!JUri::isInternal($return)) { $return = ''; } } // In case redirect url is not set, redirect user to homepage if (empty($return)) { $return = JUri::root(); } // Redirect the user. $app->redirect(JRoute::_($return, false)); } /** * Method to logout directly and redirect to page. * * @return void * * @since 3.5 */ public function menulogout() { // Get the ItemID of the page to redirect after logout $app = JFactory::getApplication(); $active = $app->getMenu()->getActive(); $itemid = $active ? $active->getParams()->get('logout') : 0; // Get the language of the page when multilang is on if (JLanguageMultilang::isEnabled()) { if ($itemid) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select('language') ->from($db->quoteName('#__menu')) ->where('client_id = 0') ->where('id =' . $itemid); $db->setQuery($query); try { $language = $db->loadResult(); } catch (RuntimeException $e) { return; } if ($language !== '*') { $lang = '&lang=' . $language; } else { $lang = ''; } // URL to redirect after logout $url = 'index.php?Itemid=' . $itemid . $lang; } else { // Logout is set to default. Get the home page ItemID $lang_code = $app->input->cookie->getString(JApplicationHelper::getHash('language')); $item = $app->getMenu()->getDefault($lang_code); $itemid = $item->id; // Redirect to Home page after logout $url = 'index.php?Itemid=' . $itemid; } } else { // URL to redirect after logout, default page if no ItemID is set $url = $itemid ? 'index.php?Itemid=' . $itemid : JUri::root(); } // Logout and redirect $this->setRedirect('index.php?option=com_users&task=user.logout&' . JSession::getFormToken() . '=1&return=' . base64_encode($url)); } /** * Method to request a username reminder. * * @return boolean * * @since 1.6 */ public function remind() { // Check the request token. $this->checkToken('post'); $app = JFactory::getApplication(); $model = $this->getModel('User', 'UsersModel'); $data = $this->input->post->get('jform', array(), 'array'); // Submit the username remind request. $return = $model->processRemindRequest($data); // Check for a hard error. if ($return instanceof Exception) { // Get the error message to display. $message = $app->get('error_reporting') ? $return->getMessage() : JText::_('COM_USERS_REMIND_REQUEST_ERROR'); // Get the route to the next page. $itemid = UsersHelperRoute::getRemindRoute(); $itemid = $itemid !== null ? '&Itemid=' . $itemid : ''; $route = 'index.php?option=com_users&view=remind' . $itemid; // Go back to the complete form. $this->setRedirect(JRoute::_($route, false), $message, 'error'); return false; } if ($return === false) { // Complete failed. // Get the route to the next page. $itemid = UsersHelperRoute::getRemindRoute(); $itemid = $itemid !== null ? '&Itemid=' . $itemid : ''; $route = 'index.php?option=com_users&view=remind' . $itemid; // Go back to the complete form. $message = JText::sprintf('COM_USERS_REMIND_REQUEST_FAILED', $model->getError()); $this->setRedirect(JRoute::_($route, false), $message, 'notice'); return false; } // Complete succeeded. // Get the route to the next page. $itemid = UsersHelperRoute::getLoginRoute(); $itemid = $itemid !== null ? '&Itemid=' . $itemid : ''; $route = 'index.php?option=com_users&view=login' . $itemid; // Proceed to the login form. $message = JText::_('COM_USERS_REMIND_REQUEST_SUCCESS'); $this->setRedirect(JRoute::_($route, false), $message); return true; } /** * Method to resend a user. * * @return void * * @since 1.6 */ public function resend() { // Check for request forgeries // $this->checkToken('post'); } } helpers/html/index.html 0000644 00000000037 15232574465 0011164 0 ustar 00 <!DOCTYPE html><title></title> helpers/html/users.php 0000644 00000010607 15232574465 0011045 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Users Html Helper * * @since 1.6 */ abstract class JHtmlUsers { /** * Get the sanitized value * * @param mixed $value Value of the field * * @return mixed String/void * * @since 1.6 */ public static function value($value) { if (is_string($value)) { $value = trim($value); } if (empty($value)) { return JText::_('COM_USERS_PROFILE_VALUE_NOT_FOUND'); } elseif (!is_array($value)) { return htmlspecialchars($value, ENT_COMPAT, 'UTF-8'); } } /** * Get the space symbol * * @param mixed $value Value of the field * * @return string * * @since 1.6 */ public static function spacer($value) { return ''; } /** * Get the sanitized helpsite link * * @param mixed $value Value of the field * * @return mixed String/void * * @since 1.6 */ public static function helpsite($value) { if (empty($value)) { return static::value($value); } $text = $value; if ($xml = simplexml_load_file(JPATH_ADMINISTRATOR . '/help/helpsites.xml')) { foreach ($xml->sites->site as $site) { if ((string) $site->attributes()->url == $value) { $text = (string) $site; break; } } } $value = htmlspecialchars($value, ENT_COMPAT, 'UTF-8'); if (strpos($value, 'http') === 0) { return '<a href="' . $value . '">' . $text . '</a>'; } return '<a href="http://' . $value . '">' . $text . '</a>'; } /** * Get the sanitized template style * * @param mixed $value Value of the field * * @return mixed String/void * * @since 1.6 */ public static function templatestyle($value) { if (empty($value)) { return static::value($value); } else { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select('title') ->from('#__template_styles') ->where('id = ' . $db->quote($value)); $db->setQuery($query); $title = $db->loadResult(); if ($title) { return htmlspecialchars($title, ENT_COMPAT, 'UTF-8'); } else { return static::value(''); } } } /** * Get the sanitized language * * @param mixed $value Value of the field * * @return mixed String/void * * @since 1.6 */ public static function admin_language($value) { if (empty($value)) { return static::value($value); } else { $file = JLanguageHelper::getLanguagePath(JPATH_ADMINISTRATOR, $value) . '/' . $value . '.xml'; $result = null; if (is_file($file)) { $result = JLanguageHelper::parseXMLLanguageFile($file); } if ($result) { return htmlspecialchars($result['name'], ENT_COMPAT, 'UTF-8'); } else { return static::value(''); } } } /** * Get the sanitized language * * @param mixed $value Value of the field * * @return mixed String/void * * @since 1.6 */ public static function language($value) { if (empty($value)) { return static::value($value); } else { $file = JLanguageHelper::getLanguagePath(JPATH_SITE, $value) . '/' . $value . '.xml'; $result = null; if (is_file($file)) { $result = JLanguageHelper::parseXMLLanguageFile($file); } if ($result) { return htmlspecialchars($result['name'], ENT_COMPAT, 'UTF-8'); } else { return static::value(''); } } } /** * Get the sanitized editor name * * @param mixed $value Value of the field * * @return mixed String/void * * @since 1.6 */ public static function editor($value) { if (empty($value)) { return static::value($value); } else { $db = JFactory::getDbo(); $lang = JFactory::getLanguage(); $query = $db->getQuery(true) ->select('name') ->from('#__extensions') ->where('element = ' . $db->quote($value)) ->where('folder = ' . $db->quote('editors')); $db->setQuery($query); $title = $db->loadResult(); if ($title) { $lang->load("plg_editors_$value.sys", JPATH_ADMINISTRATOR, null, false, true) || $lang->load("plg_editors_$value.sys", JPATH_PLUGINS . '/editors/' . $value, null, false, true); $lang->load($title . '.sys'); return JText::_($title); } else { return static::value(''); } } } } helpers/index.html 0000644 00000000037 15232574465 0010220 0 ustar 00 <!DOCTYPE html><title></title> helpers/legacyrouter.php 0000644 00000013673 15232574465 0011453 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Legacy routing rules class from com_users * * @since 3.6 * @deprecated 4.0 */ class UsersRouterRulesLegacy implements JComponentRouterRulesInterface { /** * Constructor for this legacy router * * @param JComponentRouterAdvanced $router The router this rule belongs to * * @since 3.6 * @deprecated 4.0 */ public function __construct($router) { $this->router = $router; } /** * Preprocess the route for the com_users component * * @param array &$query An array of URL arguments * * @return void * * @since 3.6 * @deprecated 4.0 */ public function preprocess(&$query) { } /** * Build the route for the com_users component * * @param array &$query An array of URL arguments * @param array &$segments The URL arguments to use to assemble the subsequent URL. * * @return void * * @since 3.6 * @deprecated 4.0 */ public function build(&$query, &$segments) { // Declare static variables. static $items; static $default; static $registration; static $profile; static $login; static $remind; static $resend; static $reset; // Get the relevant menu items if not loaded. if (empty($items)) { // Get all relevant menu items. $items = $this->router->menu->getItems('component', 'com_users'); // Build an array of serialized query strings to menu item id mappings. foreach ($items as $item) { if (empty($item->query['view'])) { continue; } // Check to see if we have found the resend menu item. if (empty($resend) && $item->query['view'] === 'resend') { $resend = $item->id; continue; } // Check to see if we have found the reset menu item. if (empty($reset) && $item->query['view'] === 'reset') { $reset = $item->id; continue; } // Check to see if we have found the remind menu item. if (empty($remind) && $item->query['view'] === 'remind') { $remind = $item->id; continue; } // Check to see if we have found the login menu item. if (empty($login) && $item->query['view'] === 'login' && (empty($item->query['layout']) || $item->query['layout'] === 'default')) { $login = $item->id; continue; } // Check to see if we have found the registration menu item. if (empty($registration) && $item->query['view'] === 'registration') { $registration = $item->id; continue; } // Check to see if we have found the profile menu item. if (empty($profile) && $item->query['view'] === 'profile') { $profile = $item->id; } } // Set the default menu item to use for com_users if possible. if ($profile) { $default = $profile; } elseif ($registration) { $default = $registration; } elseif ($login) { $default = $login; } } if (!empty($query['view'])) { switch ($query['view']) { case 'reset': if ($query['Itemid'] = $reset) { unset($query['view']); } else { $query['Itemid'] = $default; } break; case 'resend': if ($query['Itemid'] = $resend) { unset($query['view']); } else { $query['Itemid'] = $default; } break; case 'remind': if ($query['Itemid'] = $remind) { unset($query['view']); } else { $query['Itemid'] = $default; } break; case 'login': if ($query['Itemid'] = $login) { unset($query['view']); } else { $query['Itemid'] = $default; } break; case 'registration': if ($query['Itemid'] = $registration) { unset($query['view']); } else { $query['Itemid'] = $default; } break; default: case 'profile': if (!empty($query['view'])) { $segments[] = $query['view']; } unset($query['view']); if ($query['Itemid'] = $profile) { unset($query['view']); } else { $query['Itemid'] = $default; } // Only append the user id if not "me". $user = JFactory::getUser(); if (!empty($query['user_id']) && ($query['user_id'] != $user->id)) { $segments[] = $query['user_id']; } unset($query['user_id']); break; } } $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = str_replace(':', '-', $segments[$i]); } } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * @param array &$vars The URL attributes to be used by the application. * * @return void * * @since 3.6 * @deprecated 4.0 */ public function parse(&$segments, &$vars) { $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = preg_replace('/-/', ':', $segments[$i], 1); } // Only run routine if there are segments to parse. if (count($segments) < 1) { return; } // Get the package from the route segments. $userId = array_pop($segments); if (!is_numeric($userId)) { $vars['view'] = 'profile'; return; } if (is_numeric($userId)) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where($db->quoteName('id') . ' = ' . (int) $userId); $db->setQuery($query); $userId = $db->loadResult(); } // Set the package id if present. if ($userId) { // Set the package id. $vars['user_id'] = (int) $userId; // Set the view to package if not already set. if (empty($vars['view'])) { $vars['view'] = 'profile'; } } else { JError::raiseError(404, JText::_('JGLOBAL_RESOURCE_NOT_FOUND')); } } } helpers/route.php 0000644 00000007531 15232574465 0010100 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_users * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Users Route Helper * * @since 1.6 * @deprecated 4.0 */ class UsersHelperRoute { /** * Method to get the menu items for the component. * * @return array An array of menu items. * * @since 1.6 * @deprecated 4.0 */ public static function &getItems() { static $items; // Get the menu items for this component. if (!isset($items)) { $component = JComponentHelper::getComponent('com_users'); $items = JFactory::getApplication()->getMenu()->getItems('component_id', $component->id); // If no items found, set to empty array. if (!$items) { $items = array(); } } return $items; } /** * Method to get a route configuration for the login view. * * @return mixed Integer menu id on success, null on failure. * * @since 1.6 * @deprecated 4.0 */ public static function getLoginRoute() { // Get the items. $items = self::getItems(); // Search for a suitable menu id. foreach ($items as $item) { if (isset($item->query['view']) && $item->query['view'] === 'login' && (empty($item->query['layout']) || $item->query['layout'] === 'default')) { return $item->id; } } return null; } /** * Method to get a route configuration for the profile view. * * @return mixed Integer menu id on success, null on failure. * * @since 1.6 * @deprecated 4.0 */ public static function getProfileRoute() { // Get the items. $items = self::getItems(); // Search for a suitable menu id. // Menu link can only go to users own profile. foreach ($items as $item) { if (isset($item->query['view']) && $item->query['view'] === 'profile') { return $item->id; } } return null; } /** * Method to get a route configuration for the registration view. * * @return mixed Integer menu id on success, null on failure. * * @since 1.6 * @deprecated 4.0 */ public static function getRegistrationRoute() { // Get the items. $items = self::getItems(); // Search for a suitable menu id. foreach ($items as $item) { if (isset($item->query['view']) && $item->query['view'] === 'registration') { return $item->id; } } return null; } /** * Method to get a route configuration for the remind view. * * @return mixed Integer menu id on success, null on failure. * * @since 1.6 * @deprecated 4.0 */ public static function getRemindRoute() { // Get the items. $items = self::getItems(); // Search for a suitable menu id. foreach ($items as $item) { if (isset($item->query['view']) && $item->query['view'] === 'remind') { return $item->id; } } return null; } /** * Method to get a route configuration for the resend view. * * @return mixed Integer menu id on success, null on failure. * * @since 1.6 * @deprecated 4.0 */ public static function getResendRoute() { // Get the items. $items = self::getItems(); // Search for a suitable menu id. foreach ($items as $item) { if (isset($item->query['view']) && $item->query['view'] === 'resend') { return $item->id; } } return null; } /** * Method to get a route configuration for the reset view. * * @return mixed Integer menu id on success, null on failure. * * @since 1.6 * @deprecated 4.0 */ public static function getResetRoute() { // Get the items. $items = self::getItems(); // Search for a suitable menu id. foreach ($items as $item) { if (isset($item->query['view']) && $item->query['view'] === 'reset') { return $item->id; } } return null; } } layouts/joomla/form/renderfield.php 0000644 00000003530 15232574465 0013502 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage Layout * * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; extract($displayData); /** * Layout variables * --------------------- * $options : (array) Optional parameters * $label : (string) The html code for the label (not required if $options['hiddenLabel'] is true) * $input : (string) The input field html code */ if (!empty($options['showonEnabled'])) { JHtml::_('jquery.framework'); JHtml::_('script', 'jui/cms.js', array('version' => 'auto', 'relative' => true)); } $class = empty($options['class']) ? '' : ' ' . $options['class']; $rel = empty($options['rel']) ? '' : ' ' . $options['rel']; /** * @TODO: * * As mentioned in #8473 (https://github.com/joomla/joomla-cms/pull/8473), ... * as long as we cannot access the field properties properly, this seems to * be the way to go for now. * * On a side note: Parsing html is seldom a good idea. * https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 */ preg_match('/class=\"([^\"]+)\"/i', $input, $match); $required = (strpos($input, 'aria-required="true"') !== false || (!empty($match[1]) && strpos($match[1], 'required') !== false)); $typeOfSpacer = (strpos($label, 'spacer-lbl') !== false); ?> <div class="control-group<?php echo $class; ?>"<?php echo $rel; ?>> <?php if (empty($options['hiddenLabel'])): ?> <div class="control-label"> <?php echo $label; ?> <?php if (!$required && !$typeOfSpacer) : ?> <span class="optional"><?php echo JText::_('COM_USERS_OPTIONAL'); ?></span> <?php endif; ?> </div> <?php endif; ?> <div class="controls"> <?php echo $input; ?> </div> </div> models/forms/frontend.xml 0000644 00000001700 15232574465 0011531 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <!-- Basic user account settings. --> <fieldset name="params" label="COM_USERS_SETTINGS_FIELDSET_LABEL"> <field name="editor" type="plugins" label="COM_USERS_USER_FIELD_EDITOR_LABEL" description="COM_USERS_USER_FIELD_EDITOR_DESC" folder="editors" useaccess="true" > <option value="">JOPTION_USE_DEFAULT</option> </field> <field name="timezone" type="timezone" label="COM_USERS_USER_FIELD_TIMEZONE_LABEL" description="COM_USERS_USER_FIELD_TIMEZONE_DESC" > <option value="">JOPTION_USE_DEFAULT</option> </field> <field name="language" type="language" label="COM_USERS_USER_FIELD_FRONTEND_LANGUAGE_LABEL" description="COM_USERS_USER_FIELD_FRONTEND_LANGUAGE_DESC" client="site" filter="cmd" > <option value="">JOPTION_USE_DEFAULT</option> </field> </fieldset> </fields> </form> models/forms/frontend_admin.xml 0000644 00000001426 15232574465 0012706 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <!-- Backend user account settings. --> <fieldset name="params" label="COM_USERS_SETTINGS_FIELDSET_LABEL"> <field name="admin_style" type="templatestyle" label="COM_USERS_USER_FIELD_BACKEND_TEMPLATE_LABEL" description="COM_USERS_USER_FIELD_BACKEND_TEMPLATE_DESC" client="administrator" filter="uint" > <option value="">JOPTION_USE_DEFAULT</option> </field> <field name="admin_language" type="language" label="COM_USERS_USER_FIELD_BACKEND_LANGUAGE_LABEL" description="COM_USERS_USER_FIELD_BACKEND_LANGUAGE_DESC" client="administrator" filter="cmd" > <option value="">JOPTION_USE_DEFAULT</option> </field> </fieldset> </fields> </form> models/forms/index.html 0000644 00000000037 15232574465 0011167 0 ustar 00 <!DOCTYPE html><title></title> models/forms/login.xml 0000644 00000001337 15232574465 0011030 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fieldset name="credentials" label="COM_USERS_LOGIN_DEFAULT_LABEL"> <field name="username" type="text" label="COM_USERS_LOGIN_USERNAME_LABEL" class="validate-username" filter="username" size="25" required="true" validate="username" autofocus="true" /> <field name="password" type="password" label="JGLOBAL_PASSWORD" class="validate-password" required="true" filter="raw" size="25" /> </fieldset> <field name="secretkey" type="text" label="JGLOBAL_SECRETKEY" autocomplete="one-time-code" class="" filter="int" size="25" /> <fieldset> <field name="return" type="hidden" /> </fieldset> </form> models/forms/profile.xml 0000644 00000003561 15232574465 0011361 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fieldset name="core" label="COM_USERS_PROFILE_DEFAULT_LABEL"> <field name="id" type="hidden" filter="integer" /> <field name="name" type="text" label="COM_USERS_PROFILE_NAME_LABEL" description="COM_USERS_PROFILE_NAME_DESC" filter="string" required="true" size="30" /> <field name="username" type="text" label="COM_USERS_PROFILE_USERNAME_LABEL" description="COM_USERS_DESIRED_USERNAME" class="validate-username" filter="username" message="COM_USERS_PROFILE_USERNAME_MESSAGE" required="true" size="30" validate="username" /> <field name="password1" type="password" label="COM_USERS_PROFILE_PASSWORD1_LABEL" description="COM_USERS_DESIRED_PASSWORD" autocomplete="off" class="validate-password" filter="raw" size="30" validate="password" /> <field name="password2" type="password" label="COM_USERS_PROFILE_PASSWORD2_LABEL" description="COM_USERS_PROFILE_PASSWORD2_DESC" autocomplete="off" class="validate-password" field="password1" filter="raw" message="COM_USERS_PROFILE_PASSWORD1_MESSAGE" size="30" validate="equals" /> <field name="email1" type="email" label="COM_USERS_PROFILE_EMAIL1_LABEL" description="COM_USERS_PROFILE_EMAIL1_DESC" filter="string" required="true" size="30" unique="true" validate="email" validDomains="com_users.domains" autocomplete="email" /> <field name="email2" type="email" label="COM_USERS_PROFILE_EMAIL2_LABEL" description="COM_USERS_PROFILE_EMAIL2_DESC" field="email1" filter="string" message="COM_USERS_PROFILE_EMAIL2_MESSAGE" required="true" size="30" validate="equals" /> </fieldset> <!-- Used to get the two factor authentication configuration --> <field name="twofactor" type="hidden" /> </form> models/forms/registration.xml 0000644 00000004024 15232574465 0012426 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fieldset name="default" label="COM_USERS_REGISTRATION_DEFAULT_LABEL"> <field name="spacer" type="spacer" label="COM_USERS_REGISTER_REQUIRED" class="text" /> <field name="name" type="text" label="COM_USERS_REGISTER_NAME_LABEL" description="COM_USERS_REGISTER_NAME_DESC" filter="string" required="true" size="30" /> <field name="username" type="text" label="COM_USERS_REGISTER_USERNAME_LABEL" description="COM_USERS_DESIRED_USERNAME" class="validate-username" filter="username" message="COM_USERS_REGISTER_USERNAME_MESSAGE" required="true" size="30" validate="username" /> <field name="password1" type="password" label="COM_USERS_PROFILE_PASSWORD1_LABEL" description="COM_USERS_DESIRED_PASSWORD" autocomplete="off" class="validate-password" field="password1" filter="raw" size="30" validate="password" required="true" /> <field name="password2" type="password" label="COM_USERS_PROFILE_PASSWORD2_LABEL" description="COM_USERS_PROFILE_PASSWORD2_DESC" autocomplete="off" class="validate-password" field="password1" filter="raw" message="COM_USERS_PROFILE_PASSWORD1_MESSAGE" size="30" validate="equals" required="true" /> <field name="email1" type="email" label="COM_USERS_REGISTER_EMAIL1_LABEL" description="COM_USERS_REGISTER_EMAIL1_DESC" field="id" filter="string" required="true" size="30" unique="true" validate="email" validDomains="com_users.domains" autocomplete="email" /> <field name="email2" type="email" label="COM_USERS_REGISTER_EMAIL2_LABEL" description="COM_USERS_REGISTER_EMAIL2_DESC" field="email1" filter="string" message="COM_USERS_REGISTER_EMAIL2_MESSAGE" required="true" size="30" validate="equals" /> <field name="captcha" type="captcha" label="COM_USERS_CAPTCHA_LABEL" description="COM_USERS_CAPTCHA_DESC" validate="captcha" /> </fieldset> </form> models/forms/remind.xml 0000644 00000000765 15232574465 0011202 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fieldset name="default" label="COM_USERS_REMIND_DEFAULT_LABEL"> <field name="email" type="email" label="COM_USERS_FIELD_REMIND_EMAIL_LABEL" description="COM_USERS_FIELD_REMIND_EMAIL_DESC" required="true" size="30" validate="email" autocomplete="email" /> <field name="captcha" type="captcha" label="COM_USERS_CAPTCHA_LABEL" description="COM_USERS_CAPTCHA_DESC" validate="captcha" /> </fieldset> </form>