Index: branches/5.2.x/core/units/helpers/user_helper.php =================================================================== diff -u -N -r15664 -r15777 --- branches/5.2.x/core/units/helpers/user_helper.php (.../user_helper.php) (revision 15664) +++ branches/5.2.x/core/units/helpers/user_helper.php (.../user_helper.php) (revision 15777) @@ -1,6 +1,6 @@ event->getRedirectParams()); + $vars = array_merge($vars, $this->getRedirectParams($vars['pass'], 'pass')); $template = $vars['t']; unset($vars['is_virtual'], $vars['t']); @@ -491,6 +490,29 @@ } /** + * Returns current event redirect params with given $prefixes injected into 'pass'. + * + * @param array $prefixes List of prefixes to inject. + * @param string $pass_name Name of array key in redirect params, containing comma-separated prefixes list. + * + * @return string + * @access protected + */ + protected function getRedirectParams($prefixes, $pass_name = 'passed') + { + $redirect_params = $this->event->getRedirectParams(); + + if ( isset($redirect_params[$pass_name]) ) { + $redirect_prefixes = explode(',', $redirect_params[$pass_name]); + $prefixes = array_unique(array_merge($prefixes, $redirect_prefixes)); + } + + $redirect_params[$pass_name] = implode(',', $prefixes); + + return $redirect_params; + } + + /** * Checks that user is allowed to use super admin mode * * @return bool