Index: trunk/kernel/units/users/users_event_handler.php =================================================================== diff -u -N -r2946 -r3013 --- trunk/kernel/units/users/users_event_handler.php (.../users_event_handler.php) (revision 2946) +++ trunk/kernel/units/users/users_event_handler.php (.../users_event_handler.php) (revision 3013) @@ -128,7 +128,7 @@ $object =& $event->getObject(); - if( $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->Fields['State']['required'] = true; + if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true); $object->setLogin(); } Index: trunk/core/kernel/db/dbitem.php =================================================================== diff -u -N -r2799 -r3013 --- trunk/core/kernel/db/dbitem.php (.../dbitem.php) (revision 2799) +++ trunk/core/kernel/db/dbitem.php (.../dbitem.php) (revision 3013) @@ -826,6 +826,28 @@ { return $this->Loaded; } + + /** + * Checks if field is required + * + * @param string $field + * @return bool + */ + function isRequired($field) + { + return getArrayValue( $this->Fields[$field], 'required' ); + } + + /** + * Sets new required flag to field + * + * @param string $field + * @param bool $is_required + */ + function setRequired($field, $is_required = true) + { + $this->Fields[$field]['required'] = $is_required; + } } Index: trunk/core/units/users/users_event_handler.php =================================================================== diff -u -N -r2946 -r3013 --- trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 2946) +++ trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 3013) @@ -128,7 +128,7 @@ $object =& $event->getObject(); - if( $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->Fields['State']['required'] = true; + if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true); $object->setLogin(); }