Created
May 5, 2017 01:57
-
-
Save sakicnet/f2b8e2486011093d08e544423d8e5124 to your computer and use it in GitHub Desktop.
403 error fix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @package Joomla.Plugin | |
* @subpackage System.remember | |
* | |
* @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. | |
* @license GNU General Public License version 2 or later; see LICENSE.txt | |
*/ | |
defined('_JEXEC') or die; | |
/** | |
* Joomla! System Remember Me Plugin | |
* | |
* @since 1.5 | |
*/ | |
class PlgSystemRemember extends JPlugin | |
{ | |
/** | |
* Application object. | |
* | |
* @var JApplicationCms | |
* @since 3.2 | |
*/ | |
protected $app; | |
/** | |
* Remember me method to run onAfterInitialise | |
* Only purpose is to initialise the login authentication process if a cookie is present | |
* | |
* @return void | |
* | |
* @since 1.5 | |
* @throws InvalidArgumentException | |
*/ | |
public function onAfterInitialise() | |
{ | |
// Get the application if not done by JPlugin. This may happen during upgrades from Joomla 2.5. | |
if (!$this->app) | |
{ | |
$this->app = JFactory::getApplication(); | |
} | |
// No remember me for admin. | |
if ($this->app->isClient('administrator')) | |
{ | |
return; | |
} | |
// Check for a cookie if user is not logged in | |
if (JFactory::getUser()->get('guest')) | |
{ | |
$cookieName = 'joomla_remember_me_' . JUserHelper::getShortHashedUserAgent(); | |
// Try with old cookieName (pre 3.6.0) if not found | |
if (!$this->app->input->cookie->get($cookieName)) | |
{ | |
$cookieName = JUserHelper::getShortHashedUserAgent(); | |
} | |
// Check for the cookie | |
if ($this->app->input->cookie->get($cookieName)) | |
{ | |
$this->app->login(array('username' => ''), array('silent' => true)); | |
$this->app->getMenu()->__construct(); | |
} | |
} | |
} | |
/** | |
* Imports the authentication plugin on user logout to make sure that the cookie is destroyed. | |
* | |
* @param array $user Holds the user data. | |
* @param array $options Array holding options (remember, autoregister, group). | |
* | |
* @return boolean | |
*/ | |
public function onUserLogout($user, $options) | |
{ | |
// No remember me for admin | |
if ($this->app->isClient('administrator')) | |
{ | |
return true; | |
} | |
$cookieName = 'joomla_remember_me_' . JUserHelper::getShortHashedUserAgent(); | |
// Check for the cookie | |
if ($this->app->input->cookie->get($cookieName)) | |
{ | |
// Make sure authentication group is loaded to process onUserAfterLogout event | |
JPluginHelper::importPlugin('authentication'); | |
} | |
return true; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment