<?xml version="1.0"?>

<slide logger="org.apache.slide.util.logger.SimpleLogger" logger-level="6" default="slide">

<!--
logger
~~~~~~
org.apache.slide.util.logger.SimpleLogger 
   default logger with 1 log level
log4j.Log4jLogger 
   logger with fine granularity
   see http://jakarta.apache.org/log4j/

logger-level 
~~~~~~~~~~~~
0 EMERGENCY
1 CRITICAL
2 ERROR
4 WARNING
6 INFO
7 DEBUG
-->

  <namespace name="slide">
    <definition>
      <store name="file">
        <nodestore classname="slidestore.file.XMLFileDescriptorsStore">
          <parameter name="rootpath">C:\Slide\Tomcat\metadatastore</parameter>
        </nodestore>
        <securitystore>
          <reference store="nodestore" />
        </securitystore>
        <lockstore>
          <reference store="nodestore" />
        </lockstore>
        <revisiondescriptorsstore>
          <reference store="nodestore" />
        </revisiondescriptorsstore>
        <revisiondescriptorstore>
          <reference store="nodestore" />
        </revisiondescriptorstore>
        <contentstore classname="slidestore.reference.FileContentStore">
          <parameter name="rootpath">C:\Slide\Tomcat\contentstore</parameter>
          <parameter name="version">true</parameter> <!-- versioning true=ON -->
          <parameter name="resetBeforeStarting">false</parameter>  <!-- keep content data after restart -->
        </contentstore>
      </store>
      <scope match="/" store="file" />
    </definition>

    <configuration>
      <!-- Actions mapping -->
      <default-action>/actions</default-action>
      <read-object>/actions/read</read-object>
      <create-object>/actions/write</create-object>
      <remove-object>/actions/write</remove-object>
      <grant-permission>/actions/manage</grant-permission>
      <revoke-permission>/actions/manage</revoke-permission>
      <read-permissions>/actions/manage</read-permissions>
      <lock-object>/actions/write</lock-object>
      <kill-lock>/actions/manage</kill-lock>
      <read-locks>/actions/read</read-locks>
      <read-revision-metadata>/actions/read</read-revision-metadata>
      <create-revision-metadata>/actions/write</create-revision-metadata>
      <modify-revision-metadata>/actions/write</modify-revision-metadata>
      <remove-revision-metadata>/actions/write</remove-revision-metadata>
      <read-revision-content>/actions/read</read-revision-content>
      <create-revision-content>/actions/write</create-revision-content>
      <modify-revision-content>/actions/write</modify-revision-content>
      <remove-revision-content>/actions/write</remove-revision-content>

      <!-- Paths configuration -->
      <userspath>/users</userspath>
      <guestpath>guest</guestpath>
      <filespath>/files</filespath>
      <parameter name="dav">true</parameter>
      <parameter name="standalone">true</parameter>

      <!-- Roles definition -->
      <role name="root">slideroles.basic.RootRole</role>
      <role name="user">slideroles.basic.UserRole</role>
      <role name="guest">slideroles.basic.GuestRole</role>

      <!-- Users management -->
      <auto-create-users>true</auto-create-users>

      <!-- Default properties mapping -->
      <default-property name="foo" namespace="nsfoo/" value="bar" role="user"/>
      <default-property name="password" namespace="slide/" value="" role="user"/>

      <!-- DeltaV configuration -->
      <historypath>C:\Slide\Tomcat\history</historypath><!-- /history -->
      <workspacepath>/workspace</workspacepath>
      <workingresourcepath>/workingresource</workingresourcepath>
      <auto-version>checkout-checkin</auto-version>
      <auto-version-control>true</auto-version-control><!-- false -->
      <checkout-fork>forbidden</checkout-fork>
      <checkin-fork>forbidden</checkin-fork>
      
    </configuration>
    
    <data>
      
      <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/">
        
        <!-- Subject can be:
                self  "~"
                all   "nobody"
                user  "/users/john"
                group "+/users/groupA"
                role  "root"
        -->
                
        <!-- Uncomment the following line to give all permissions to principals have the root role -->
        <permission action="/actions" subject="root"/>

        <permission action="/actions" subject="/users/root"/>
        <permission action="/actions/read" subject="/users" inheritable="false"/>
        <permission action="/actions/read" subject="nobody" inheritable="false"/>
        
        <!-- /users -->
        
        <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users">
          
          <permission action="/actions" subject="~"/>
          <permission action="/actions" subject="/users/guest"
           inheritable="true" negative="true"/>
          <permission action="/actions/read" subject="/users"
           inheritable="false"/>

          <!-- Permission group example -->
          <objectnode classname="org.apache.slide.structure.GroupNode" uri="/users/groupA">
             <objectnode classname="org.apache.slide.structure.LinkNode" 
                uri="/users/groupA/john" linkedUri="/users/john" />
             <objectnode classname="org.apache.slide.structure.LinkNode" 
                uri="/users/groupA/root" linkedUri="/users/root" />
             <objectnode classname="org.apache.slide.structure.SubjectNode" 
               uri="/users/groupA/singleGroupMember"  />
          </objectnode>

          <!-- /users/root represents the administrator -->
          <objectnode classname="slideroles.basic.RootRoleImpl" 
           uri="/users/root">
            <revision>
              <property name="password">root</property>
            </revision>
          </objectnode>
          
          <!-- /users/john represents an authenticated user -->
          <objectnode classname="slideroles.basic.UserRoleImpl" uri="/users/john">
            <revision>
              <property name="password">john</property>
            </revision>
          </objectnode>
          
          <!-- /users/guest represents an authenticated or unauthenticated guest user -->
          <objectnode classname="slideroles.basic.GuestRoleImpl" uri="/users/guest">
            <revision>
              <property name="password"></property>
            </revision>
          </objectnode>
          
        </objectnode>
        
        <objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions">
          <objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/read"/>
          <objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/write"/>
          <objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/manage"/>
        </objectnode>
        
        <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/files">

          <!-- ### Give read/write/manage permission to guest ### -->
          <permission action="/actions" subject="/users/guest"/>

          <permission action="/actions/manage" subject="/users/john"/>
          <permission action="/actions/write" subject="+/users/groupA"/>
          <permission action="/actions/read" subject="nobody"/>
          
        </objectnode>
        
        <!-- DeltaV: default history and workspace paths -->
        <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/history" />
        <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workspace" />
        <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workingresource" />

      </objectnode>

    </data>
    
  </namespace>
  
</slide>

