Index: .
===================================================================
--- .	(revision 2250)
+++ .	(working copy)
@@ -128,6 +128,51 @@
                                           array( 'user_id' => $userID ) );
     }
 
+    function store( $fieldFilters = null )
+    {
+        // if is_enabled == 1   =>  make usernode visible (unhide)
+        if( $this->attribute('is_enabled') )
+        {
+            $this->hideUnhideUserObject( false );
+        }
+        // hide node
+        else
+        {
+             $this->hideUnhideUserObject( true );
+        }
+
+        eZPersistentObject::store();
+    }
+
+    /*
+        hide or unhide the nodes of UserID
+        $hide = true  - hide
+        $hide = false - unhide
+    */
+    function hideUnhideUserObject( $hide = true )
+    {
+        $userId = $this->attribute( 'user_id' );
+
+        if( $userId == null )
+            return;
+        $userNodeList = eZContentObjectTreeNode::fetchByContentObjectID( $userId );
+
+        foreach( $userNodeList as $userNode )
+        {
+            // unhide object
+            if( $userNode->attribute( 'is_invisible' ) && $hide == false )
+            {
+                eZContentObjectTreeNode::unhideSubTree( $userNode );
+                eZDebug::writeDebug('Unhide User with ID: '. $userId .' NodeId: '. $userNode->attribute('node_id').' Name: '.$userNode->attribute('name') , 'eZUserSettings::hideUnhideUserObject');
+            }
+            elseif( !$userNode->attribute( 'is_invisible' ) && $hide == true )
+            {
+                eZContentObjectTreeNode::hideSubTree( $userNode );
+                eZDebug::writeDebug('Hide User with ID: '. $userId .' NodeId: '. $userNode->attribute('node_id').' Name: '.$userNode->attribute('name') , 'eZUserSettings::hideUnhideUserObject');
+            }
+        }
+    }
+
     /// \privatesection
     public $UserID;
     public $IsEnabled;
