From bc48a7efa5a8ba7ce52f5fcd109dc53bc4e5fbf5 Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 21 May 2015 19:19:36 -0700 Subject: [PATCH] Unusual default user_class behavior. Extra checks added. --- e107_handlers/user_handler.php | 54 +++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/e107_handlers/user_handler.php b/e107_handlers/user_handler.php index e4010f871..c8100ceac 100644 --- a/e107_handlers/user_handler.php +++ b/e107_handlers/user_handler.php @@ -537,7 +537,7 @@ class UserHandler { if ($incInherited) { - $classList = e107::getUserClass()->get_all_user_classes($var['user_class']); + $classList = e107::getUserClass()->get_all_user_classes($userData['user_class']); } else { @@ -760,51 +760,57 @@ Following fields auto-filled in code as required: $tp = e107::getParser(); $initClasses = array(); - $doClasses = FALSE; - $doProbation = FALSE; - $ret = FALSE; + $doClasses = false; + $doProbation = false; + $ret = false; - switch ($event) + switch($event) { case 'userall': - $doClasses = TRUE; - $doProbation = TRUE; + $doClasses = true; + $doProbation = true; break; - case 'userfull': - if (!$pref['user_reg_veri'] || ($pref['init_class_stage'] == '2')) + case 'userfull': + if(!$pref['user_reg_veri'] || (intval($pref['init_class_stage']) == 2)) { - $doClasses = TRUE; + $doClasses = true; } - $doProbation = TRUE; + $doProbation = true; break; case 'userpartial' : - if ($pref['init_class_stage'] == '1') - { + if(intval($pref['init_class_stage']) === 1) + { // Set initial classes if to be done on partial signup, or if selected to add them now - $doClasses = TRUE; + $doClasses = true; } - $doProbation = TRUE; + $doProbation = true; break; } + if($doClasses) { - if (isset($pref['initial_user_classes'])) { $initClasses = explode(',',$pref['initial_user_classes']); } // Any initial user classes to be set at some stage - if ($doProbation && (varset($pref['user_new_period'], 0) > 0)) + if(isset($pref['initial_user_classes'])) // Any initial user classes to be set at some stage { - $initClasses[] = e_UC_NEWUSER; // Probationary user class + $initClasses = explode(',', $pref['initial_user_classes']); } - - if (count($initClasses)) - { // Update the user classes - if ($user['user_class']) + + if($doProbation && (varset($pref['user_new_period'], 0) > 0)) + { + $initClasses[] = e_UC_NEWUSER; // Probationary user class + } + + if(count($initClasses)) + { // Update the user classes + if($user['user_class']) { - $initClasses = array_unique(array_merge($initClasses, explode(',',$user['user_class']))); + $initClasses = array_unique(array_merge($initClasses, explode(',', $user['user_class']))); } - $user['user_class'] = $tp->toDB(implode(',',$initClasses)); + $user['user_class'] = $tp->toDB(implode(',', $initClasses)); //$ret = TRUE; $ret = $user['user_class']; } } + return $ret; }