Index: /FCKeditor.Java/trunk/src/site/apt/userpathbuilder.apt
===================================================================
--- /FCKeditor.Java/trunk/src/site/apt/userpathbuilder.apt	(revision 2809)
+++ /FCKeditor.Java/trunk/src/site/apt/userpathbuilder.apt	(revision 2810)
@@ -17,96 +17,81 @@
 ~~
 ~~ == END LICENSE ==
-~~ @version $Id: connector.apt 2510 2008-10-01 18:35:09Z mosipov $
-                        ------------------------------
-                           File Browser Connector
-                        ------------------------------
+~~ @version $Id$
+				-------------------------
+					UserPathBuilder Interface
+				-------------------------
 
-Connector activation
+UserPath Builder
 
-  The Connector is not mandatory. If you do <not> plan to provide file
-  interaction, you can skip this section.
+  The integration pack offers you control over every command sent by a user
+  through the File Browser.
 
-    [Hint:] The Connector by default is not present and disabled for security
-            reasons!
+  Read on to see how you can refit the system to your needs:
 
-  It takes two steps to enable it:
+* Rationale
 
-  [[1]]  Declare the ConnectorServlet in your <<<web.xml>>>:
+  Throughout the life cycle of the File Browser, several commands are sent with
+  payload to retrieve and create objects on the server. The Connector Servlet
+  receives the commands and responds as necessary to them. You are now able to
+  intercept the commands and tell the Connector Servlet if the current request
+  is actually enabled to perform this command on the server.\
+  The {{{http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Server_Side_Integration#The_Commands}Server Side Integration}}
+  defines five different types of commands for the File Browser which are
+  mapped to three internal commands:
 
-+------------------------------------------------------------------------------+
-  <web-app version="2.4">
-    ...
-    <servlet>
-      <servlet-name>Connector</servlet-name>
-        <servlet-class>
-          net.fckeditor.connector.ConnectorServlet
-      </servlet-class>
-      <load-on-startup>1</load-on-startup>
-    </servlet>
-    ...
-    <servlet-mapping>
-      <servlet-name>Connector</servlet-name>
-      <url-pattern>
-        /fckeditor/editor/filemanager/connectors/*
-      </url-pattern>
-    </servlet-mapping>
-    ...
-  </web-app>
-+------------------------------------------------------------------------------+
+  * <<<GetFolders>>> and <<<GetFoldersAndFiles>>> to <<<GetResources>>>
 
-  Assuming you installed the editor in the <<</fckeditor>>> folder in your webapp.\
-  The Connector is now declared but <still> disabled. The response is going to
-  be a localized error message.
-
-  [[2]] Create a <<<fckeditor.properties>>> file in your classpath and add:
-
-+------------------------------------------------------------------------------+
-  connector.userActionImpl=net.fckeditor.requestcycle.impl.EnabledUserAction
-+------------------------------------------------------------------------------+
+  * <<<CreateFolder>>> to <<<CreateFolder>>>
+  * <<<FileUpload>>> and <<<QuickUpload>>> to <<<FileUpload>>>
 
   []
 
-  The Connector is now enabled.
+  Based on these commands you can mandate globally and/or on per-user basis which
+  commands will be executed.
 
-  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-Extending the Connector
+* The interface
 
-    [Hint:]  Skip this section if you are not interested in extending the
-             Connector.
+  The interface {{{java-core/apidocs/net/fckeditor/requestcycle/UserPathBuilder.html}<<<net.fckeditor.requestcycle.UserPathBuilder>>>}}
+  contains two method of which each one is passed the current <<<HttpServletRequest>>>
+  instance on every request:
 
-  The basic idea of extending the Connector is to provide interfaces for
-  user-dependent interactions which can be implemented by the web application
-  developer. All methods are passed the current <<<HttpServletRequest>>> instance
-  in order to retrieve request and/or session attributes to assemble a user-specific
-  return value. We intentionally do not impose any constraints or indorse any
-  particular implementation approach to give you the freedom to implement the
-  interfaces the way it fits best in your environment.
+  * <<<String getUserFilesAbsolutePath(final HttpServletRequest)>>>:
+    Calculates the local server-side location of the userfiles for the current
+    request.
 
-  Supply the fully-qualified class names of the implementing classes as described
-  in the {{{properties.html}configuration settings}}.
-
-  Right now, the integration pack provides two interfaces to extend the Connector:
-
-  [[1]] {{{java-core/apidocs/net/fckeditor/requestcycle/UserPathBuilder.html}<<<net.fckeditor.requestcycle.UserPathBuilder>>>}}
-
-        This interface consists only of one method <<<String getUserFilesPath(final HttpServletRequest)>>>.
-        You are able to construct a user-dependent <<<UserFilesPath>>>, e.g.
-        <<</userfiles/johndoe>>>.
-
-  [[2]] {{{java-core/apidocs/net/fckeditor/requestcycle/UserAction.html}<<<net.fckeditor.requestcycle.UserAction>>>}}
-
-        There are two methods to authorize users to do file-based actions:
-
-        * <<<boolean isEnabledForFileBrowsing(final HttpServletRequest)>>> denoting
-          the user's ability to browse files on the server.
-
-        * <<<boolean isEnabledForFileUpload(final HttpServletRequest)>>> denoting
-          the user's ability to upload files to the server.
-
-        []
-
-        For those who want to enable all users to browse and upload files, there 
-        is a ready-to-use implementation <<<{{{java-core/apidocs/net/fckeditor/requestcycle/impl/UserActionImpl.html}UserActionImpl}}>>>.
+  * <<<String getUserFilesPath(final HttpServletRequest)>>>:
+    Calculates the local server-side location of the userfiles for the current
+    request.
 
   []
-  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+** Choosing an implementation
+
+  You have to choose an implementation, either an existing or a custom one.
+
+  Existing, ready-to-go implementations:
+
+   * {{{java-core/apidocs/net/fckeditor/requestcycle/impl/ContextPathBuilder.html}<<<net.fckeditor.requestcycle.impl.ContextPathBuilder>>>}} (default):
+     It always returns <<<false>>> for every method.
+
+   * {{{java-core/apidocs/net/fckeditor/requestcycle/impl/ServerRootPathBuilder.html}<<<net.fckeditor.requestcycle.impl.ServerRootPathBuilder>>>}}:
+     It always returns <<<true>>> for every method.
+
+   []
+
+  If no existing implementation suits your needs, create your own. Implement the
+  interface and resolve the locale the way you want.
+
+** Declaring an implementation
+
+   After your have chosen your desired implementation, you have to declare it.
+   Put the fully-qualified class name of the implementation in your
+   <<<fckeditor.properties>>>:
+
++------------------------------------------------------------------------------+
+  connector.userPathBuilderImpl=<desired implementation>
++------------------------------------------------------------------------------+
+
+* Configuration
+
+  lala
