Index: branches/RC/core/units/users/users_event_handler.php =================================================================== diff -u -N -r10442 -r10517 --- branches/RC/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 10442) +++ branches/RC/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 10517) @@ -496,7 +496,20 @@ $group_id = $this->Application->GetVar('user_group'); } else { - $group_id = $this->Application->ConfigValue('User_NewGroup'); + $group_id = $object->GetDBField('UserGroup'); + + if ($group_id) { + // check, that group is allowed for Front-End + $sql = 'SELECT GroupId + FROM ' . TABLE_PREFIX . 'PortalGroup + WHERE GroupId = ' . (int)$group_id . ' AND FrontRegistration = 1'; + $group_id = $this->Conn->GetOne($sql); + } + + if (!$group_id) { + // when group not selected -> use default group + $group_id = $this->Application->ConfigValue('User_NewGroup'); + } } $sql = 'REPLACE INTO '.$ug_table.'(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)'; @@ -1472,6 +1485,7 @@ { parent::OnAfterConfigRead($event); + // 1. arrange user registration countries $first_country = $this->Application->ConfigValue('User_Default_Registration_Country'); if ($first_country) { // update user country dropdown sql @@ -1480,6 +1494,12 @@ $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); } + // 2. set default user registration group + $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); + $virtual_fields['UserGroup']['default'] = $this->Application->ConfigValue('User_NewGroup'); + $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); + + // 3. allow avatar upload on Front-End $file_helper =& $this->Application->recallObject('FileHelper'); /* @var $file_helper FileHelper */