diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgadministration.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgadministration.wsdl
new file mode 100644
index 0000000000000000000000000000000000000000..be98e902ee9b9064e364de6c25825cca387443fc
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgadministration.wsdl
@@ -0,0 +1,555 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="tgadministration"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+      <!-- #### addUser #### //-->
+      <xsd:element name="addUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="password" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteUser #### //-->
+      <xsd:element name="deleteUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addRole #### //-->
+      <xsd:element name="addRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteRole #### //-->
+      <xsd:element name="deleteRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignUser #### //-->
+      <xsd:element name="assignUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignUser #### //-->
+      <xsd:element name="deassignUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### grantPermission #### //-->
+      <xsd:element name="grantPermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### revokePermission #### //-->
+      <xsd:element name="revokePermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addInheritance #### //-->
+      <xsd:element name="addInheritanceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteInheritance #### //-->
+      <xsd:element name="deleteInheritanceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addAscendant #### //-->
+      <xsd:element name="addAscendantRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addDescendant #### //-->
+      <xsd:element name="addDescendantRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### formatFault #### //-->
+      <xsd:element name="formatFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:schema>
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### addUser #### //-->
+  <wsdl:message name="addUserRequest">
+    <wsdl:part element="tns:addUserRequest" name="addUserInput" />
+  </wsdl:message>
+  <wsdl:message name="addUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="addUserOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteUser #### //-->
+  <wsdl:message name="deleteUserRequest">
+    <wsdl:part element="tns:deleteUserRequest" name="deleteUserInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteUserOutput" />
+  </wsdl:message>
+
+  <!-- #### addRole #### //-->
+  <wsdl:message name="addRoleRequest">
+    <wsdl:part element="tns:addRoleRequest" name="addRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="addRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="addRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteRole #### //-->
+  <wsdl:message name="deleteRoleRequest">
+    <wsdl:part element="tns:deleteRoleRequest" name="deleteRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### assignUser #### //-->
+  <wsdl:message name="assignUserRequest">
+    <wsdl:part element="tns:assignUserRequest" name="assignUserInput" />
+  </wsdl:message>
+  <wsdl:message name="assignUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="assignUserOutput" />
+  </wsdl:message>
+
+  <!-- #### deassignUser #### //-->
+  <wsdl:message name="deassignUserRequest">
+    <wsdl:part element="tns:deassignUserRequest" name="deassignUserInput" />
+  </wsdl:message>
+  <wsdl:message name="deassignUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="deassignUserOutput" />
+  </wsdl:message>
+
+  <!-- #### grantPermission #### //-->
+  <wsdl:message name="grantPermissionRequest">
+    <wsdl:part element="tns:grantPermissionRequest" name="grantPermissionInput" />
+  </wsdl:message>
+  <wsdl:message name="grantPermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="grantPermissionOutput" />
+  </wsdl:message>
+
+  <!-- #### grantPermission #### //-->
+  <wsdl:message name="revokePermissionRequest">
+    <wsdl:part element="tns:revokePermissionRequest" name="revokePermissionInput" />
+  </wsdl:message>
+  <wsdl:message name="revokePermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="revokePermissionOutput" />
+  </wsdl:message>
+
+  <!-- #### addInheritance #### //-->
+  <wsdl:message name="addInheritanceRequest">
+    <wsdl:part element="tns:addInheritanceRequest" name="addInheritanceInput" />
+  </wsdl:message>
+  <wsdl:message name="addInheritanceResponse">
+    <wsdl:part element="tns:booleanResponse" name="addInheritanceOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteInheritance #### //-->
+  <wsdl:message name="deleteInheritanceRequest">
+    <wsdl:part element="tns:deleteInheritanceRequest" name="deleteInheritanceInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteInheritanceResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteInheritanceOutput" />
+  </wsdl:message>
+
+  <!-- #### addAscendant #### //-->
+  <wsdl:message name="addAscendantRequest">
+    <wsdl:part element="tns:addAscendantRequest" name="addAscendantInput" />
+  </wsdl:message>
+  <wsdl:message name="addAscendantResponse">
+    <wsdl:part element="tns:booleanResponse" name="addAscendantOutput" />
+  </wsdl:message>
+
+  <!-- #### addAscendant #### //-->
+  <wsdl:message name="addDescendantRequest">
+    <wsdl:part element="tns:addDescendantRequest" name="addDescendantInput" />
+  </wsdl:message>
+  <wsdl:message name="addDescendantResponse">
+    <wsdl:part element="tns:booleanResponse" name="addDescendantOutput" />
+  </wsdl:message>
+
+  <!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
+  </wsdl:message>
+
+  <!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+  </wsdl:message>
+
+  <!-- #### formatFault #### //-->
+  <wsdl:message name="formatFault">
+    <wsdl:part element="tns:formatFaultResponse" name="formatFault" />
+  </wsdl:message>
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_tgadministration">
+
+    <!-- #### addUser #### //-->
+    <wsdl:operation name="addUser">
+      <wsdl:input message="tns:addUserRequest" />
+      <wsdl:output message="tns:addUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteUser #### //-->
+    <wsdl:operation name="deleteUser">
+      <wsdl:input message="tns:deleteUserRequest" />
+      <wsdl:output message="tns:deleteUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### addRole #### //-->
+    <wsdl:operation name="addRole">
+      <wsdl:input message="tns:addRoleRequest" />
+      <wsdl:output message="tns:addRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteRole #### //-->
+    <wsdl:operation name="deleteRole">
+      <wsdl:input message="tns:deleteRoleRequest" />
+      <wsdl:output message="tns:deleteRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### assignUser #### //-->
+    <wsdl:operation name="assignUser">
+      <wsdl:input message="tns:assignUserRequest" />
+      <wsdl:output message="tns:assignUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### deassignUser #### //-->
+    <wsdl:operation name="deassignUser">
+      <wsdl:input message="tns:deassignUserRequest" />
+      <wsdl:output message="tns:deassignUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### grantPermission #### //-->
+    <wsdl:operation name="grantPermission">
+      <wsdl:input message="tns:grantPermissionRequest" />
+      <wsdl:output message="tns:grantPermissionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### revokePermission #### //-->
+    <wsdl:operation name="revokePermission">
+      <wsdl:input message="tns:revokePermissionRequest" />
+      <wsdl:output message="tns:revokePermissionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addInheritance #### //-->
+    <wsdl:operation name="addInheritance">
+      <wsdl:input message="tns:addInheritanceRequest" />
+      <wsdl:output message="tns:addInheritanceResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteInheritance #### //-->
+    <wsdl:operation name="deleteInheritance">
+      <wsdl:input message="tns:deleteInheritanceRequest" />
+      <wsdl:output message="tns:deleteInheritanceResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addAscendant #### //-->
+    <wsdl:operation name="addAscendant">
+      <wsdl:input message="tns:addAscendantRequest" />
+      <wsdl:output message="tns:addAscendantResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addDescendant #### //-->
+    <wsdl:operation name="addDescendant">
+      <wsdl:input message="tns:addDescendantRequest" />
+      <wsdl:output message="tns:addDescendantResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgadministration" type="tns:port_tgadministration">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### addUser #### //-->
+    <wsdl:operation name="addUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteUser #### //-->
+    <wsdl:operation name="deleteUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addRole #### //-->
+    <wsdl:operation name="addRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteRole #### //-->
+    <wsdl:operation name="deleteRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### assignUser #### //-->
+    <wsdl:operation name="assignUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/assignUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deassignUser #### //-->
+    <wsdl:operation name="deassignUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deassignUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### grantPermission #### //-->
+    <wsdl:operation name="grantPermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/grantPermission" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### revokePermission #### //-->
+    <wsdl:operation name="revokePermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/revokePermission" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addInheritance #### //-->
+    <wsdl:operation name="addInheritance">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addInheritance" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteInheritance #### //-->
+    <wsdl:operation name="deleteInheritance">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteInheritance" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addAscendant #### //-->
+    <wsdl:operation name="addAscendant">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addAscendant" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addDescendant #### //-->
+    <wsdl:operation name="addDescendant">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addDescendant" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="tgadministration">
+    <wsdl:port binding="tns:binding_tgadministration" name="tgadministration">
+      <soap:address location="https://textgridlab.org/dev/tgauth/tgadministration.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra-crud.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra-crud.wsdl
new file mode 100644
index 0000000000000000000000000000000000000000..6749038a760e5de755979596581c11b814bd77fb
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra-crud.wsdl
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+	xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth-crud"
+	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	name="tgextra" targetNamespace="http://textgrid.info/namespaces/middleware/tgauth-crud">
+	<!-- #################### # Typ-Definitionen # #################### // -->
+	<wsdl:types>
+		<xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth-crud">
+			<!-- #### nearlyPublish #### // -->
+			<xsd:element name="nearlyPublishRequest">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element name="auth" type="xsd:string" minOccurs="1"
+							maxOccurs="1" />
+						<xsd:element name="log" type="xsd:string" minOccurs="0"
+							maxOccurs="1" />
+						<xsd:element name="resource" type="xsd:string"
+							minOccurs="1" maxOccurs="1" />
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="booleanResponse">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element name="result" type="xsd:boolean"
+							minOccurs="1" maxOccurs="1" />
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+			<!-- #### authenticationFault #### // -->
+			<xsd:element name="authenticationFaultResponse" type="tns:TextGridFaultType" />
+			<!-- #### rbacFault #### // -->
+			<xsd:element name="rbacFaultResponse" type="tns:TextGridFaultType" />
+			<!-- #### unknownResourceFault #### // -->
+			<xsd:element name="unknownResourceFaultResponse" type="tns:TextGridFaultType" />
+			<!-- #### TextGridFaultType #### // -->
+			<xsd:complexType name="TextGridFaultType">
+				<xsd:sequence>
+					<xsd:element name="faultNo" type="xsd:int" minOccurs="0"
+						maxOccurs="1" />
+					<xsd:element name="faultMessage" type="xsd:string"
+						minOccurs="0" maxOccurs="1" />
+					<xsd:element name="cause" type="xsd:string" minOccurs="0"
+						maxOccurs="1" />
+				</xsd:sequence>
+			</xsd:complexType>
+		</xsd:schema>
+	</wsdl:types>
+	<!-- ################# # WSDL-Messages # ################# // -->
+	<!-- #### nearlyPublish #### // -->
+	<wsdl:message name="nearlyPublishRequest">
+		<wsdl:part element="tns:nearlyPublishRequest" name="nearlyPublishInput" />
+	</wsdl:message>
+	<wsdl:message name="nearlyPublishResponse">
+		<wsdl:part element="tns:booleanResponse" name="nearlyPublishOutput" />
+	</wsdl:message>
+	<!-- #### authenticationFault #### // -->
+	<wsdl:message name="authenticationFault">
+		<wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+	</wsdl:message>
+	<!-- #### unknownResourceFault #### // -->
+	<wsdl:message name="unknownResourceFault">
+		<wsdl:part element="tns:unknownResourceFaultResponse" name="unknownResourceFault" />
+	</wsdl:message>
+	<!-- ########################## # Port-Type-Definitionen # ########################## 
+		// -->
+	<wsdl:portType name="port_tgextra_crud">
+		<!-- #### nearlyPublish #### // -->
+		<wsdl:operation name="nearlyPublish">
+			<wsdl:documentation>
+				Sets the isPublic flag of a TextGridObject identified by its
+				URI to
+				TRUE. The resource will then be world-readable. This is
+				irreversible
+				(only by manual modification of the database) and
+				needs the publish
+				right, which by default is granted to
+				project leaders. The difference
+				to the publish method is that
+				some rights are preserved to allow
+				deletion and publication.
+				<ul>
+					<li>
+						<b>Input Parameters</b>
+						nearlyPublishRequest, with elements
+						<ul>
+							<li>auth - String, SessionID of user that wants publish</li>
+							<li>log - String for log information, optional</li>
+							<li>resource - String, URI of TgObject</li>
+						</ul>
+					</li>
+					<li>
+						<b>Output Parameters</b>
+						booleanResponse, with element
+						<ul>
+							<li>result - boolean, true if operation was successful,
+								false
+								otherwise</li>
+						</ul>
+					</li>
+					<li>
+						<b>Faults</b>
+						<ul>
+							<li>authenticationFault</li>
+						</ul>
+					</li>
+				</ul>
+			</wsdl:documentation>
+			<wsdl:input message="tns:nearlyPublishRequest" />
+			<wsdl:output message="tns:nearlyPublishResponse" />
+			<wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+			<wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault" />
+		</wsdl:operation>
+	</wsdl:portType>
+	<!-- ########### # Binding # ########### // -->
+	<wsdl:binding name="binding_tgextra_crud" type="tns:port_tgextra_crud">
+		<!-- #### nearlyPublish #### // -->
+		<soap:binding style="document"
+			transport="http://schemas.xmlsoap.org/soap/http" />
+		<wsdl:operation name="nearlyPublish">
+			<soap:operation
+				soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/nearlyPublish" />
+			<wsdl:input>
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal" />
+			</wsdl:output>
+			<wsdl:fault name="authenticationFault">
+				<soap:fault use="literal" name="authenticationFault" />
+			</wsdl:fault>
+			<wsdl:fault name="unknownResourceFault">
+				<soap:fault use="literal" name="unknownResourceFault" />
+			</wsdl:fault>
+		</wsdl:operation>
+	</wsdl:binding>
+	<!-- ##################### # Servicedefinition # ##################### // -->
+	<wsdl:service name="tgextra_crud">
+		<wsdl:port binding="tns:binding_tgextra_crud" name="tgextra_crud">
+			<soap:address location="https://textgridlab.org/dev/tgauth/tgextra-crud.php" />
+		</wsdl:port>
+	</wsdl:service>
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra.wsdl
new file mode 100644
index 0000000000000000000000000000000000000000..510dc3b2a752f9c337daff14abfd3e384197f3cd
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra.wsdl
@@ -0,0 +1,2574 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="tgextra" targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+<!--
+		#################### # Typ-Definitionen # #################### //
+	-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+<!-- #### authenticate #### //-->
+      <xsd:element name="authenticateRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="password" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="authenticateResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### userExists #### //-->
+      <xsd:element name="userExistsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### createProject #### //-->
+      <xsd:element name="createProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="createProjectResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="projectId" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### filterBySid #### //-->
+      <xsd:element name="filterBySidRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### addMember #### //-->
+      <xsd:element name="addMemberRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### deleteMember #### //-->
+      <xsd:element name="deleteMemberRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getSid #### //-->
+      <xsd:element name="getSidRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+	  </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getSidResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- ### getSLC ### //-->
+      <xsd:element name="getSLCRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="secret" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getSLCResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="slc" type="xsd:base64Binary" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- ### getCSR ### //-->
+      <xsd:element name="getCSRRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getCSRResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="csr" type="xsd:base64Binary" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- ### putCRT ### //-->
+      <xsd:element name="putCRTRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="crt" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="putCRTResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="success" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getSupportedUserAttributes #### //-->
+      <xsd:element name="getSupportedUserAttributesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+	  </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getSupportedUserAttributesResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="attribute" type="tns:userAttribute" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getMyUserAttributes #### //-->
+      <xsd:element name="getMyUserAttributesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getMyUserAttributesResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="attribute" type="tns:userAttribute" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### setMyUserAttributes #### //-->
+      <xsd:element name="setMyUserAttributesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="webAuthSecret" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="attribute" type="tns:userAttribute" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### registerResource #### //-->
+      <xsd:element name="registerResourceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="uri" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="uuid" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="secret" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### unregisterResource #### //-->
+      <xsd:element name="unregisterResourceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="uri" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="secret" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getObjects #### //-->
+      <xsd:element name="getObjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getAllProjects #### //-->
+      <xsd:element name="getAllProjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getAllProjectsResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="project" type="tns:projectInfo" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getDeactivatedProjects #### //-->
+      <xsd:element name="getDeactivatedProjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getDeactivatedProjectsResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="project" type="tns:projectInfo" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgCheckAccess #### //-->
+      <xsd:element name="tgCheckAccessRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="sid" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgCrudCheckAccess #### //-->
+      <xsd:element name="tgCrudCheckAccessRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="secret" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="sid" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgAddActiveRole #### //-->
+      <xsd:element name="tgAddActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgDropActiveRole #### //-->
+      <xsd:element name="tgDropActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgAssignedRoles #### //-->
+      <xsd:element name="tgAssignedRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgAssignedProjects #### //-->
+      <xsd:element name="tgAssignedProjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="level" type="xsd:int" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getLeader #### //-->
+      <xsd:element name="getLeaderRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgGrantPermission #### //-->
+      <xsd:element name="tgGrantPermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### tgRevokePermission #### //-->
+      <xsd:element name="tgRevokePermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getOwner #### //-->
+      <xsd:element name="getOwnerRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getOwnerResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="owner" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getEPPN #### //-->
+      <xsd:element name="getEPPNRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="secret" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getEPPNResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="eppn" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getUUID #### //-->
+      <xsd:element name="getUUIDRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getUUIDResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="uuid" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getMembers #### //-->
+      <xsd:element name="getMembersRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getUserRole #### //-->
+      <xsd:element name="getUserRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getFriends #### //-->
+      <xsd:element name="getFriendsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getRights #### //-->
+      <xsd:element name="getRightsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### publish #### //-->
+      <xsd:element name="publishRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### isPublic #### //-->
+      <xsd:element name="isPublicRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getNumberOfResourcesRequest #### //-->
+      <xsd:element name="getNumberOfResourcesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getNumberOfResourcesResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="allresources" type="xsd:int"/>
+            <xsd:element name="publicresources" type="xsd:int"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### setProjectFile #### //-->
+      <xsd:element name="setProjectFileRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="file" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### setName #### //-->
+      <xsd:element name="setNameRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="webAuthSecret" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="mail" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="organisation" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="agreeSearch" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getNames #### //-->
+      <xsd:element name="getNamesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="ePPN" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getNamesResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="userdetails" type="tns:userDetail" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getIDs #### //-->
+      <xsd:element name="getIDsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="mail" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="organisation" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getIDsResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="userdetails" type="tns:userDetail" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### getProjectDescription #### //-->
+      <xsd:element name="getProjectDescriptionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getProjectDescriptionResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="project" type="tns:projectInfo" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### deactivateProject #### //-->
+      <xsd:element name="deactivateProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### reactivateProject #### //-->
+      <xsd:element name="reactivateProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+<!-- #### deleteProject #### //-->
+      <xsd:element name="deleteProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="filterResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="resource" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="tgCrudCheckAccessResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
+	    <xsd:element name="public" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="project" type="tns:projectInfo" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <xsd:element name="operation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="rolesetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="role" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="usersetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="resourcesetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="resource" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="operationsetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="operation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="getUserRoleResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="userRole" type="tns:userRole" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:complexType name="userRole">
+        <xsd:sequence>
+          <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          <xsd:element name="roles" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
+        </xsd:sequence>
+      </xsd:complexType>
+      <xsd:complexType name="userAttribute">
+        <xsd:sequence>
+          <xsd:element name="value" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+        </xsd:sequence>
+        <xsd:attribute name="name" type="xsd:string" use="required"/>
+        <xsd:attribute name="mandatory" type="xsd:boolean"/>
+        <xsd:attribute name="ldapname" type="xsd:string"/>
+        <xsd:attribute name="inclass" type="xsd:string"/>
+        <xsd:attribute name="displayname" type="xsd:string"/>
+      </xsd:complexType>
+      <xsd:element name="getFriendsResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="friends" type="tns:friend" minOccurs="0" maxOccurs="unbounded"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:complexType name="friend">
+        <xsd:sequence>
+          <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          <xsd:element name="score" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
+        </xsd:sequence>
+      </xsd:complexType>
+      <xsd:complexType name="userDetail">
+        <xsd:sequence>
+          <xsd:element name="ePPN" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          <xsd:element name="mail" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="organisation" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="agreesearch" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="usersupplieddata" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
+        </xsd:sequence>
+      </xsd:complexType>
+      <xsd:complexType name="projectInfo">
+        <xsd:sequence>
+          <xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+          <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+        </xsd:sequence>
+      </xsd:complexType>
+<!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse" type="tns:TextGridFaultType"/>
+<!-- #### unknownProjectFault #### //-->
+      <xsd:element name="unknownProjectFaultResponse" type="tns:TextGridFaultType"/>
+<!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse" type="tns:TextGridFaultType"/>
+<!-- #### notEmptyFault #### //-->
+      <xsd:element name="notEmptyFaultResponse" type="tns:TextGridFaultType"/>
+<!-- #### objectNotFoundFault #### //-->
+      <xsd:element name="objectNotFoundFaultResponse" type="tns:TextGridFaultType"/>
+<!-- #### unknownResourceFault #### //-->
+      <xsd:element name="unknownResourceFaultResponse" type="tns:TextGridFaultType"/>
+<!-- #### TextGridFaultType #### //-->
+      <xsd:complexType name="TextGridFaultType">
+        <xsd:sequence>
+          <xsd:element name="faultNo" type="xsd:int" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="faultMessage" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+          <xsd:element name="cause" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+        </xsd:sequence>
+      </xsd:complexType>
+    </xsd:schema>
+  </wsdl:types>
+<!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+<!-- #### authenticate #### //-->
+  <wsdl:message name="authenticateRequest">
+    <wsdl:part element="tns:authenticateRequest" name="authenticateInput"/>
+  </wsdl:message>
+  <wsdl:message name="authenticateResponse">
+    <wsdl:part element="tns:authenticateResponse" name="authenticateOutput"/>
+  </wsdl:message>
+<!-- #### userExists #### //-->
+  <wsdl:message name="userExistsRequest">
+    <wsdl:part element="tns:userExistsRequest" name="userExistsInput"/>
+  </wsdl:message>
+  <wsdl:message name="userExistsResponse">
+    <wsdl:part element="tns:booleanResponse" name="userExistsOutput"/>
+  </wsdl:message>
+<!-- #### createProject #### //-->
+  <wsdl:message name="createProjectRequest">
+    <wsdl:part element="tns:createProjectRequest" name="createProjectInput"/>
+  </wsdl:message>
+  <wsdl:message name="createProjectResponse">
+    <wsdl:part element="tns:createProjectResponse" name="createProjectOutput"/>
+  </wsdl:message>
+<!-- #### getObjects #### //-->
+  <wsdl:message name="getObjectsRequest">
+    <wsdl:part element="tns:getObjectsRequest" name="getObjectsInput"/>
+  </wsdl:message>
+  <wsdl:message name="getObjectsResponse">
+    <wsdl:part element="tns:resourcesetResponse" name="getObjectsOutput"/>
+  </wsdl:message>
+<!-- #### addMember #### //-->
+  <wsdl:message name="addMemberRequest">
+    <wsdl:part element="tns:addMemberRequest" name="addMemberInput"/>
+  </wsdl:message>
+  <wsdl:message name="addMemberResponse">
+    <wsdl:part element="tns:booleanResponse" name="addMemberOutput"/>
+  </wsdl:message>
+<!-- #### deleteMember #### //-->
+  <wsdl:message name="deleteMemberRequest">
+    <wsdl:part element="tns:deleteMemberRequest" name="deleteMemberInput"/>
+  </wsdl:message>
+  <wsdl:message name="deleteMemberResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteMemberOutput"/>
+  </wsdl:message>
+<!-- #### tgCheckAccess #### //-->
+  <wsdl:message name="tgCheckAccessRequest">
+    <wsdl:part element="tns:tgCheckAccessRequest" name="tgCheckAccessInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgCheckAccessResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgCheckAccessOutput"/>
+  </wsdl:message>
+<!-- #### tgCrudCheckAccess #### //-->
+  <wsdl:message name="tgCrudCheckAccessRequest">
+    <wsdl:part element="tns:tgCrudCheckAccessRequest" name="tgCrudCheckAccessInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgCrudCheckAccessResponse">
+    <wsdl:part element="tns:tgCrudCheckAccessResponse" name="tgCrudCheckAccessOutput"/>
+  </wsdl:message>
+<!-- #### tgAddActiveRole #### //-->
+  <wsdl:message name="tgAddActiveRoleRequest">
+    <wsdl:part element="tns:tgAddActiveRoleRequest" name="tgAddActiveRoleInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgAddActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgAddActiveRoleOutput"/>
+  </wsdl:message>
+<!-- #### tgDropActiveRole #### //-->
+  <wsdl:message name="tgDropActiveRoleRequest">
+    <wsdl:part element="tns:tgDropActiveRoleRequest" name="tgDropActiveRoleInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgDropActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgDropActiveRoleOutput"/>
+  </wsdl:message>
+<!-- #### tgAssignedRoles #### //-->
+  <wsdl:message name="tgAssignedRolesRequest">
+    <wsdl:part element="tns:tgAssignedRolesRequest" name="tgAssignedRolesInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgAssignedRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="tgAssignedRolesOutput"/>
+  </wsdl:message>
+<!-- #### tgAssignedProjects #### //-->
+  <wsdl:message name="tgAssignedProjectsRequest">
+    <wsdl:part element="tns:tgAssignedProjectsRequest" name="tgAssignedProjectsInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgAssignedProjectsResponse">
+    <wsdl:part element="tns:rolesetResponse" name="tgAssignedProjectsOutput"/>
+  </wsdl:message>
+<!-- #### getAllProjects #### //-->
+  <wsdl:message name="getAllProjectsRequest">
+    <wsdl:part element="tns:getAllProjectsRequest" name="getAllProjectsInput"/>
+  </wsdl:message>
+  <wsdl:message name="getAllProjectsResponse">
+    <wsdl:part element="tns:getAllProjectsResponse" name="getAllProjectsOutput"/>
+  </wsdl:message>
+<!-- #### getDeactivatedProjects #### //-->
+  <wsdl:message name="getDeactivatedProjectsRequest">
+    <wsdl:part element="tns:getDeactivatedProjectsRequest" name="getDeactivatedProjectsInput"/>
+  </wsdl:message>
+  <wsdl:message name="getDeactivatedProjectsResponse">
+    <wsdl:part element="tns:getDeactivatedProjectsResponse" name="getDeactivatedProjectsOutput"/>
+  </wsdl:message>
+<!-- #### getLeader #### //-->
+  <wsdl:message name="getLeaderRequest">
+    <wsdl:part element="tns:getLeaderRequest" name="getLeaderInput"/>
+  </wsdl:message>
+  <wsdl:message name="getLeaderResponse">
+    <wsdl:part element="tns:usersetResponse" name="getLeaderOutput"/>
+  </wsdl:message>
+<!-- #### registerResource #### //-->
+  <wsdl:message name="registerResourceRequest">
+    <wsdl:part element="tns:registerResourceRequest" name="registerResourceInput"/>
+  </wsdl:message>
+  <wsdl:message name="registerResourceResponse">
+    <wsdl:part element="tns:operationsetResponse" name="registerResourceOutput"/>
+  </wsdl:message>
+<!-- #### unregisterResource #### //-->
+  <wsdl:message name="unregisterResourceRequest">
+    <wsdl:part element="tns:unregisterResourceRequest" name="unregisterResourceInput"/>
+  </wsdl:message>
+  <wsdl:message name="unregisterResourceResponse">
+    <wsdl:part element="tns:booleanResponse" name="unregisterResourceOutput"/>
+  </wsdl:message>
+<!-- #### filterBySid #### //-->
+  <wsdl:message name="filterBySidRequest">
+    <wsdl:part element="tns:filterBySidRequest" name="filterBySidInput"/>
+  </wsdl:message>
+  <wsdl:message name="filterBySidResponse">
+    <wsdl:part element="tns:filterResponse" name="filterBySidOutput"/>
+  </wsdl:message>
+<!-- #### tgGrantPermission #### //-->
+  <wsdl:message name="tgGrantPermissionRequest">
+    <wsdl:part element="tns:tgGrantPermissionRequest" name="tgGrantPermissionInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgGrantPermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgGrantPermissionOutput"/>
+  </wsdl:message>
+<!-- #### tgRevokePermission #### //-->
+  <wsdl:message name="tgRevokePermissionRequest">
+    <wsdl:part element="tns:tgRevokePermissionRequest" name="tgRevokePermissionInput"/>
+  </wsdl:message>
+  <wsdl:message name="tgRevokePermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgRevokePermissionOutput"/>
+  </wsdl:message>
+<!-- #### getOwner #### //-->
+  <wsdl:message name="getOwnerRequest">
+    <wsdl:part element="tns:getOwnerRequest" name="getOwnerInput"/>
+  </wsdl:message>
+  <wsdl:message name="getOwnerResponse">
+    <wsdl:part element="tns:getOwnerResponse" name="getOwnerOutput"/>
+  </wsdl:message>
+<!-- #### getEPPN #### //-->
+  <wsdl:message name="getEPPNRequest">
+    <wsdl:part element="tns:getEPPNRequest" name="getEPPNInput"/>
+  </wsdl:message>
+  <wsdl:message name="getEPPNResponse">
+    <wsdl:part element="tns:getEPPNResponse" name="getEPPNOutput"/>
+  </wsdl:message>
+<!-- #### getUUID #### //-->
+  <wsdl:message name="getUUIDRequest">
+    <wsdl:part element="tns:getUUIDRequest" name="getUUIDInput"/>
+  </wsdl:message>
+  <wsdl:message name="getUUIDResponse">
+    <wsdl:part element="tns:getUUIDResponse" name="getUUIDOutput"/>
+  </wsdl:message>
+<!-- #### getMembers #### //-->
+  <wsdl:message name="getMembersRequest">
+    <wsdl:part element="tns:getMembersRequest" name="getMembersInput"/>
+  </wsdl:message>
+  <wsdl:message name="getMembersResponse">
+    <wsdl:part element="tns:usersetResponse" name="getMembersOutput"/>
+  </wsdl:message>
+<!-- #### getUserRole #### //-->
+  <wsdl:message name="getUserRoleRequest">
+    <wsdl:part element="tns:getUserRoleRequest" name="getUserRoleInput"/>
+  </wsdl:message>
+  <wsdl:message name="getUserRoleResponse">
+    <wsdl:part element="tns:getUserRoleResponse" name="getUserRoleOutput"/>
+  </wsdl:message>
+<!-- #### getFriends #### //-->
+  <wsdl:message name="getFriendsRequest">
+    <wsdl:part element="tns:getFriendsRequest" name="getFriendsInput"/>
+  </wsdl:message>
+  <wsdl:message name="getFriendsResponse">
+    <wsdl:part element="tns:getFriendsResponse" name="getFriendsOutput"/>
+  </wsdl:message>
+<!-- #### getRights #### //-->
+  <wsdl:message name="getRightsRequest">
+    <wsdl:part element="tns:getRightsRequest" name="getRightsInput"/>
+  </wsdl:message>
+  <wsdl:message name="getRightsResponse">
+    <wsdl:part element="tns:operationsetResponse" name="getRightsOutput"/>
+  </wsdl:message>
+<!-- #### publish #### //-->
+  <wsdl:message name="publishRequest">
+    <wsdl:part element="tns:publishRequest" name="publishInput"/>
+  </wsdl:message>
+  <wsdl:message name="publishResponse">
+    <wsdl:part element="tns:booleanResponse" name="publishOutput"/>
+  </wsdl:message>
+<!-- #### isPublic #### //-->
+  <wsdl:message name="isPublicRequest">
+    <wsdl:part element="tns:isPublicRequest" name="isPublicInput"/>
+  </wsdl:message>
+  <wsdl:message name="isPublicResponse">
+    <wsdl:part element="tns:booleanResponse" name="isPublicOutput"/>
+  </wsdl:message>
+<!-- #### getNumberOfResources #### //-->
+  <wsdl:message name="getNumberOfResourcesRequest">
+    <wsdl:part element="tns:getNumberOfResourcesRequest" name="getNumberOfResourcesInput"/>
+  </wsdl:message>
+  <wsdl:message name="getNumberOfResourcesResponse">
+    <wsdl:part element="tns:getNumberOfResourcesResponse" name="getNumberOfResourcesOutput"/>
+  </wsdl:message>
+<!-- #### setProjectFile #### //-->
+  <wsdl:message name="setProjectFileRequest">
+    <wsdl:part element="tns:setProjectFileRequest" name="setProjectFileInput"/>
+  </wsdl:message>
+  <wsdl:message name="setProjectFileResponse">
+    <wsdl:part element="tns:booleanResponse" name="setProjectFileOutput"/>
+  </wsdl:message>
+<!-- #### setName #### //-->
+  <wsdl:message name="setNameRequest">
+    <wsdl:part element="tns:setNameRequest" name="setNameInput"/>
+  </wsdl:message>
+  <wsdl:message name="setNameResponse">
+    <wsdl:part element="tns:booleanResponse" name="setNameOutput"/>
+  </wsdl:message>
+<!-- #### getNames #### //-->
+  <wsdl:message name="getNamesRequest">
+    <wsdl:part element="tns:getNamesRequest" name="getNamesInput"/>
+  </wsdl:message>
+  <wsdl:message name="getNamesResponse">
+    <wsdl:part element="tns:getNamesResponse" name="getNamesOutput"/>
+  </wsdl:message>
+<!-- #### getIDs #### //-->
+  <wsdl:message name="getIDsRequest">
+    <wsdl:part element="tns:getIDsRequest" name="getIDsInput"/>
+  </wsdl:message>
+  <wsdl:message name="getIDsResponse">
+    <wsdl:part element="tns:getIDsResponse" name="getIDsOutput"/>
+  </wsdl:message>
+<!-- #### getProjectDescription #### //-->
+  <wsdl:message name="getProjectDescriptionRequest">
+    <wsdl:part element="tns:getProjectDescriptionRequest" name="getProjectDescriptionInput"/>
+  </wsdl:message>
+  <wsdl:message name="getProjectDescriptionResponse">
+    <wsdl:part element="tns:getProjectDescriptionResponse" name="getProjectDescriptionOutput"/>
+  </wsdl:message>
+
+<!-- #### getSLC  #### //-->
+  <wsdl:message name="getSLCRequest">
+    <wsdl:part element="tns:getSLCRequest" name="getSLCInput"/>
+  </wsdl:message>
+  <wsdl:message name="getSLCResponse">
+    <wsdl:part element="tns:getSLCResponse" name="getSLCOutput"/>
+  </wsdl:message>
+<!-- #### getCSR  #### //-->
+  <wsdl:message name="getCSRRequest">
+    <wsdl:part element="tns:getCSRRequest" name="getCSRInput"/>
+  </wsdl:message>
+  <wsdl:message name="getCSRResponse">
+    <wsdl:part element="tns:getCSRResponse" name="getCSROutput"/>
+  </wsdl:message>
+<!-- #### putCRT  #### //-->
+  <wsdl:message name="putCRTRequest">
+    <wsdl:part element="tns:putCRTRequest" name="putCRTInput"/>
+  </wsdl:message>
+  <wsdl:message name="putCRTResponse">
+    <wsdl:part element="tns:putCRTResponse" name="putCRTOutput"/>
+  </wsdl:message>
+
+<!-- #### deactivateProject #### //-->
+  <wsdl:message name="deactivateProjectRequest">
+    <wsdl:part element="tns:deactivateProjectRequest" name="deactivateProjectInput"/>
+  </wsdl:message>
+  <wsdl:message name="deactivateProjectResponse">
+    <wsdl:part element="tns:booleanResponse" name="deactivateProjectOutput"/>
+  </wsdl:message>
+<!-- #### reactivateProject #### //-->
+  <wsdl:message name="reactivateProjectRequest">
+    <wsdl:part element="tns:reactivateProjectRequest" name="reactivateProjectInput"/>
+  </wsdl:message>
+  <wsdl:message name="reactivateProjectResponse">
+    <wsdl:part element="tns:booleanResponse" name="reactivateProjectOutput"/>
+  </wsdl:message>
+<!-- #### deleteProject #### //-->
+  <wsdl:message name="deleteProjectRequest">
+    <wsdl:part element="tns:deleteProjectRequest" name="deleteProjectInput"/>
+  </wsdl:message>
+  <wsdl:message name="deleteProjectResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteProjectOutput"/>
+  </wsdl:message>
+<!-- #### getSid #### //-->
+  <wsdl:message name="getSidRequest">
+    <wsdl:part element="tns:getSidRequest" name="getSidInput"/>
+  </wsdl:message>
+  <wsdl:message name="getSidResponse">
+    <wsdl:part element="tns:getSidResponse" name="getSidOutput"/>
+  </wsdl:message>
+<!-- #### getSupportedUserAttributes #### //-->
+  <wsdl:message name="getSupportedUserAttributesRequest">
+    <wsdl:part element="tns:getSupportedUserAttributesRequest" name="getSupportedUserAttributesInput"/>
+  </wsdl:message>
+  <wsdl:message name="getSupportedUserAttributesResponse">
+    <wsdl:part element="tns:getSupportedUserAttributesResponse" name="getSupportedUserAttributesOutput"/>
+  </wsdl:message>
+<!-- #### getMyUserAttributes #### //-->
+  <wsdl:message name="getMyUserAttributesRequest">
+    <wsdl:part element="tns:getMyUserAttributesRequest" name="getMyUserAttributesInput"/>
+  </wsdl:message>
+  <wsdl:message name="getMyUserAttributesResponse">
+    <wsdl:part element="tns:getMyUserAttributesResponse" name="getMyUserAttributesOutput"/>
+  </wsdl:message>
+<!-- #### setMyUserAttributes #### //-->
+  <wsdl:message name="setMyUserAttributesRequest">
+    <wsdl:part element="tns:setMyUserAttributesRequest" name="setMyUserAttributesInput"/>
+  </wsdl:message>
+  <wsdl:message name="setMyUserAttributesResponse">
+    <wsdl:part element="tns:booleanResponse" name="setMyUserAttributesOutput"/>
+  </wsdl:message>
+<!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault"/>
+  </wsdl:message>
+<!-- #### unknownProjectFault #### //-->
+  <wsdl:message name="unknownProjectFault">
+    <wsdl:part element="tns:unknownProjectFaultResponse" name="unknownProjectFault"/>
+  </wsdl:message>
+<!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault"/>
+  </wsdl:message>
+<!-- #### notEmptyFault #### //-->
+  <wsdl:message name="notEmptyFault">
+    <wsdl:part element="tns:notEmptyFaultResponse" name="notEmptyFault"/>
+  </wsdl:message>
+<!-- #### unknownResourceFault #### //-->
+  <wsdl:message name="unknownResourceFault">
+    <wsdl:part element="tns:unknownResourceFaultResponse" name="unknownResourceFault"/>
+  </wsdl:message>
+<!--
+		########################## # Port-Type-Definitionen #
+		########################## //
+	-->
+  <wsdl:portType name="port_tgextra">
+<!-- #### authenticate #### //-->
+    <wsdl:operation name="authenticate">
+      <wsdl:documentation>
+				Internal function used by applications to identify themselves
+				(via
+				shared secret between RBAC and WebAuth).
+				<ul><li><b>Input Parameters</b>
+						authenticateRequest, with elements
+						<ul><li>username - String with name of application</li><li>password - String with password for this application</li><li>log - String for log information, optional</li></ul></li><li><b>Output Parameters</b>
+						authenticateResponse, with element
+						<ul><li>auth - String, SessionID of authenticated application
+								(See
+								getSid() for format.)</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:authenticateRequest"/>
+      <wsdl:output message="tns:authenticateResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### userExists #### //-->
+    <wsdl:operation name="userExists">
+      <wsdl:documentation>
+				Checks whether this UserID (eduPersonPrincipalName) exists in RBAC.
+				<ul><li><b>Input Parameters</b>
+						userExistsRequest, with elements
+						<ul><li>auth - String, SessionID of application or user asking</li><li>log - String for log information, optional</li><li>username - String containing the ID (ePPN) of the user</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if user exists, false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:userExistsRequest"/>
+      <wsdl:output message="tns:userExistsResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### createProject #### //-->
+    <wsdl:operation name="createProject">
+      <wsdl:documentation>
+				Creates a project. Projects are roles with various sub-roles,
+				i.e
+				Leader, Administrator... Creates default roles with
+				default
+				permissions:
+				<table><tr><td>Role</td><td>Right on Project</td></tr><tr><td>Projektleiter (project leader)</td><td>delegate</td></tr><tr><td>Administrator</td><td>-none-</td></tr><tr><td>Bearbeiter (editor)</td><td>create</td></tr><tr><td>Beobachter (observer)</td><td>-none-</td></tr></table>
+				These permissions can be adapted afterwards. For the rights
+				on
+				resources, see registerResource().
+				<ul><li><b>Input Parameters</b>
+						createProjectRequest, with elements
+						<ul><li>auth - String, SessionID of future project
+								leader</li><li>log - String for log information, optional</li><li>name - String with name of project</li><li>description - String with description of
+								project</li><li>
+								file - String with URI of project file
+								-
+								<em>currently unused, omit or leave empty and use
+									setProjectFile( ) once the file resource has been
+									created</em>
+							</li></ul></li><li><b>Output Parameters</b>
+						createProjectResponse, with element
+						<ul><li>projectId - String with the newly assigned project
+								ID, such as
+								"TGPR123"</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:createProjectRequest"/>
+      <wsdl:output message="tns:createProjectResponse"/>
+    </wsdl:operation>
+<!-- #### setProjectFile #### //-->
+    <wsdl:operation name="setProjectFile">
+      <wsdl:documentation>
+				Registers the URI of a TextGridObject to be the project file
+				for
+				project-specific settings. The URI must be registered at
+				RBAC beforehand.
+				<ul><li><b>Input Parameters</b>
+						setProjectFileRequest, with elements
+						<ul><li>auth - String, SessionID of Project Leader</li><li>log - String for log information, optional</li><li>project - String with projectID</li><li>file - String with URI of project file</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:setProjectFileRequest"/>
+      <wsdl:output message="tns:setProjectFileResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### setName #### //-->
+    <wsdl:operation name="setName">
+      <wsdl:documentation>
+				Supply user-specific information for display instead of the ePPN.
+				<ul><li><b>Input Parameters</b>
+						setNameRequest, with elements
+						<ul><li>auth - String, SessionID of User who wants to set their name</li><li>log - String for log information, optional</li><li>webAuthSecret - String that is known by the Web
+								Authentication which will assure that the data are correct. If
+								the secret is not given, the user entry will be marked as a
+								volunteered one, where the users gave their details themselves.</li><li>name - String with User Name, preferredly in the form of
+								"givenname surname"</li><li>mail - String with User's E-Mail address</li><li>organisation - String with Affiliation of the User</li><li>agreeSerach - Boolean telling whether the user agrees to be
+								searchable by the getIDs function.</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul>
+						</ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:setNameRequest"/>
+      <wsdl:output message="tns:setNameResponse"/>
+    </wsdl:operation>
+<!-- #### getNames #### //-->
+    <wsdl:operation name="getNames">
+      <wsdl:documentation>
+				Returns user records for a list of ePPNs
+				<ul><li><b>Input Parameters</b>
+						getNamesRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query for
+								names</li><li>log - String,</li><li>ePPN - List of Strings</li></ul></li><li><b>Output Parameters</b>
+						getNamesResponse. It contains 0...n userDetails, which themselves
+						have elements
+						<ul><li>ePPN - String holding ePPN of user </li><li>name - String holding Name (cn) of user </li><li>mail - String holding E-Mail address of user </li><li>organisation - String holding user' affiliation </li><li>agreesearch - Boolean, whether user wants his ID to be found
+								be a search for name or mail address </li><li>usersupplieddata - Boolean, whether user himself or his
+								organisation supplied these data </li></ul></li><li><b>Faults</b>
+						none
+					</li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getNamesRequest"/>
+      <wsdl:output message="tns:getNamesResponse"/>
+    </wsdl:operation>
+<!-- #### getIDs #### //-->
+    <wsdl:operation name="getIDs">
+      <wsdl:documentation>
+				Returns user records for a name or mail address.
+				<ul><li><b>Input Parameters</b>
+						getIDsRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query for
+								names</li><li>log - String,</li><li>name - String with Name</li><li>mail - String with E-Mail Address</li><li>organisation - String with Organisation</li></ul></li><li><b>Output Parameters</b>
+						getIDsResponse. It contains 0...n userDetails, which themselves
+						have elements
+						<ul><li>ePPN - String holding ePPN of user </li><li>name - String holding Name (cn) of user </li><li>mail - String holding E-Mail address of user </li><li>organisation - String holding user' affiliation </li><li>agreesearch - Boolean, whether user wants his ID to be found
+								be a search for name or mail address </li><li>usersupplieddata - Boolean, whether user himself or his
+								organisation supplied these data </li></ul></li><li><b>Faults</b>
+						none
+					</li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getIDsRequest"/>
+      <wsdl:output message="tns:getIDsResponse"/>
+    </wsdl:operation>
+<!-- #### getObjects #### //-->
+    <wsdl:operation name="getObjects">
+      <wsdl:documentation>
+				Returns URIs of all resources in project. Caller must have
+				some role
+				in the project.
+				<ul><li><b>Input Parameters</b>
+						getObjectsRequest, with elements
+						<ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li><li>project - String with projectID</li></ul></li><li><b>Output Parameters</b>
+						resourcesetResponse, with element
+						<ul><li>resource - String with URI of resource in
+								project. Can occur
+								multiple times</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getObjectsRequest"/>
+      <wsdl:output message="tns:getObjectsResponse"/>
+    </wsdl:operation>
+<!-- #### addMember #### //-->
+    <wsdl:operation name="addMember">
+      <wsdl:documentation>
+				Project leaders can assign users into specific roles. This
+				still does
+				not effect
+				<em>activation</em>
+				of the role in the
+				user(s)' session(s).
+				<ul><li><b>Input Parameters</b>
+						addMemberRequest, with elements
+						<ul><li>auth - String, SessionID of project leader</li><li>log - String for log information, optional</li><li>username - String with ePPN of user to be added</li><li>role - String with full-qualified role name of the
+								role the
+								user is to be signed into. The full-qualified
+								role name has the
+								form
+								"Administrator,TGPR3,Projekt-Teilnehmer"</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>rbacFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:addMemberRequest"/>
+      <wsdl:output message="tns:addMemberResponse"/>
+      <wsdl:fault name="rbacFault" message="tns:rbacFault"/>
+    </wsdl:operation>
+<!-- #### deleteMember #### //-->
+    <wsdl:operation name="deleteMember">
+      <wsdl:documentation>
+				Project leaders can delete a role from a user. This
+				still does not
+				effect
+				<em>(de-)activation</em>
+				of the role in the
+				user(s)' session(s).
+				<ul><li><b>Input Parameters</b>
+						deleteMemberRequest, with elements
+						<ul><li>auth - String, SessionID of project leader</li><li>log - String for log information, optional</li><li>username - String with ePPN of user to be signed off</li><li>role - String with full-qualified role name of the
+								role the
+								user is to be signed off. The full-qualified
+								role name has the
+								form
+								"Administrator,TGPR3,Projekt-Teilnehmer"</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:deleteMemberRequest"/>
+      <wsdl:output message="tns:deleteMemberResponse"/>
+    </wsdl:operation>
+<!-- #### tgAddActiveRole #### //-->
+    <wsdl:operation name="tgAddActiveRole">
+      <wsdl:documentation>
+				Activates a role for a session. NB, currently the login
+				process
+				activates
+				<em>all</em>
+				available roles of the user.
+				<ul><li><b>Input Parameters</b>
+						tgAddActiveRoleRequest, with elements
+						<ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li><li>role - String with full-qualified role name of the
+								role the
+								user wants to activate. The full-qualified role
+								name has the form
+								"Administrator,TGPR3,Projekt-Teilnehmer".</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgAddActiveRoleRequest"/>
+      <wsdl:output message="tns:tgAddActiveRoleResponse"/>
+    </wsdl:operation>
+<!-- #### tgDropActiveRole #### //-->
+    <wsdl:operation name="tgDropActiveRole">
+      <wsdl:documentation>
+				De-activates a role for a session.
+				<ul><li><b>Input Parameters</b>
+						tgDropActiveRoleRequest, with elements
+						<ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li><li>role - String with full-qualified role name of the
+								role the
+								user wants to de-activate. The full-qualified role
+								name has the
+								form
+								"Administrator,TGPR3,Projekt-Teilnehmer".</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgDropActiveRoleRequest"/>
+      <wsdl:output message="tns:tgDropActiveRoleResponse"/>
+    </wsdl:operation>
+<!-- #### tgCheckAccess #### //-->
+    <wsdl:operation name="tgCheckAccess">
+      <wsdl:documentation>
+				Returns access decision for given operation on given resource
+				for
+				session.
+				<ul><li><b>Input Parameters</b>
+						tgCheckAccessRequest, with elements
+						<ul><li>auth - String, SessionID of user (or service) that
+								wants to
+								intitiate the check</li><li>log - String for log information, optional</li><li>
+								sid - String, SessionID of user for whom the check
+								is to be done.
+								Leave empty if check is to be done for
+								user's own session given
+								under
+								<em>auth</em>
+							</li><li>operation - String, such as "read", "write"</li><li>resource - String, name of project or role, or URI of
+								TgObject resource</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>unknownResourceFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgCheckAccessRequest"/>
+      <wsdl:output message="tns:tgCheckAccessResponse"/>
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault"/>
+    </wsdl:operation>
+<!-- #### tgCrudCheckAccess #### //-->
+    <wsdl:operation name="tgCrudCheckAccess">
+      <wsdl:documentation>
+				Returns access decision for given operation on given resource
+				for
+				session. In addition the owner of the session and informations
+				on the
+				project is returned.
+				<ul><li><b>Input Parameters</b>
+						tgCrudCheckAccessRequest, with elements
+						<ul><li>auth - String, SessionID of user (or service) that
+								wants to
+								intitiate the check</li><li>log - String for log information, optional</li><li>
+								sid - String, SessionID of user for whom the check
+								is to be done.
+								Leave empty if check is to be done for
+								user's own session given
+								under
+								<em>auth</em>
+							</li><li>secret - String, Shared secred only CRUD knows</li><li>operation - String, such as "read", "write"</li><li>resource - String, name of project or role, or URI of
+								TgObject resource</li></ul></li><li><b>Output Parameters</b>
+						See wsdl
+						<ul><li>XXX</li></ul></li><li><b>Faults</b><ul><li>unknownResourceFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgCrudCheckAccessRequest"/>
+      <wsdl:output message="tns:tgCrudCheckAccessResponse"/>
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### tgAssignedRoles #### //-->
+    <wsdl:operation name="tgAssignedRoles">
+      <wsdl:documentation>
+				Returns the roles the requesting user has, in any project. Can
+				be
+				called for another user by project leaders, then roles will
+				be
+				limited to the intersection of those projects
+				where
+				<em>auth</em>
+				is leader AND
+				<em>username</em>
+				has some
+				role in.
+				<ul><li><b>Input Parameters</b>
+						tgAssignedRolesRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to
+								query for roles</li><li>log - String for log information, optional</li><li>username - String, ePPN of user for whom the
+								query is to be
+								done. Can be empty.</li></ul></li><li><b>Output Parameters</b>
+						rolesetResponse, with element
+						<ul><li>role - String with full-qualified role name of the
+								role. The
+								full-qualified role name has the form
+								"Administrator,TGPR3,Projekt-Teilnehmer". Can occur
+								multiple
+								times.</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgAssignedRolesRequest"/>
+      <wsdl:output message="tns:tgAssignedRolesResponse"/>
+    </wsdl:operation>
+<!-- #### tgAssignedProjects #### //-->
+    <wsdl:operation name="tgAssignedProjects">
+      <wsdl:documentation>
+				Returns projectIDs of all projects the user has some role in.
+				<ul><li><b>Input Parameters</b>
+						tgAssignedProjectsRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to
+								query for roles</li><li>log - String for log information, optional</li><li>
+								level - Integer. Can be either empty (= level 0) or one of
+								the
+								following:
+								<ul><li>0 - Returns all projects the user has any
+										role in (default).</li><li>
+										1 - Returns only projects where the user has
+										read access, i.e.
+										<ul><li>she is Beobachter
+												(observer) or</li><li>she is Bearbeiter (editor)
+												or</li><li>there are any public resources in the
+												project</li></ul>
+									</li><li>2 - like level 1, but public resources do not
+										count</li><li>3 - Returns only projects where the user has
+										write access,
+										i.e. she is Bearbeiter (editor)</li><li>4 - Returns only projects where the user has
+										delegate
+										access, i.e. she is Projektleiter (project
+										leader)</li></ul>
+							</li></ul></li><li><b>Output Parameters</b>
+						rolesetResponse, with element
+						<ul><li>role - String with projectID (no full-qualified role
+								name is
+								needed here). Can occur multiple times.</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgAssignedProjectsRequest"/>
+      <wsdl:output message="tns:tgAssignedProjectsResponse"/>
+    </wsdl:operation>
+<!-- #### getAllProjects #### //-->
+    <wsdl:operation name="getAllProjects">
+      <wsdl:documentation>
+				Returns all projects stored in this RBAC instance with ID,
+				name, and
+				description. See also getProjectDescription().
+				<ul><li><b>Input Parameters</b>
+						getAllProjectsRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query
+								for
+								projects. Can be omitted as this information can be
+								reviewed
+								publicly</li><li>log - String for log information, optional</li></ul></li><li><b>Output Parameters</b>
+						getAllProjectsResponse, with element
+						<ul><li>
+								project - projectInfo, can occur multiple
+								times.
+								<br/>
+								The type projectInfo consists of the following elements:
+								<ul><li>id - String, project ID, such as "TGPR123"</li><li>description - String, project description</li><li>name - String, project name</li><li>file - String with URI of project file for
+										project-specific
+										settings. </li></ul>
+							</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getAllProjectsRequest"/>
+      <wsdl:output message="tns:getAllProjectsResponse"/>
+    </wsdl:operation>
+<!-- #### getDeactivatedProjects #### //-->
+    <wsdl:operation name="getDeactivatedProjects">
+      <wsdl:documentation>
+				Returns all projects stored in this RBAC instance with ID,
+				name, and
+				description that are deactivated and can be
+				reactivated by the
+				current user.
+				<ul><li><b>Input Parameters</b>
+						getAllProjectsRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query
+								for
+								projects. Can be omitted as this information can be
+								reviewed
+								publicly</li><li>log - String for log information, optional</li></ul></li><li><b>Output Parameters</b>
+						getDeactivatedProjectsResponse, with element
+						<ul><li>
+								project - projectInfo, can occur multiple
+								times.
+								<br/>
+								The type projectInfo consists of the following elements:
+								<ul><li>id - String, project ID, such as "TGPR123"</li><li>description - String, project description</li><li>name - String, project name</li><li>file - String with URI of project file for
+										project-specific
+										settings. </li></ul>
+							</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getDeactivatedProjectsRequest"/>
+      <wsdl:output message="tns:getDeactivatedProjectsResponse"/>
+    </wsdl:operation>
+<!-- #### getLeader #### //-->
+    <wsdl:operation name="getLeader">
+      <wsdl:documentation>
+				Returns Project Leader/s (i.e. who have delegate right on the
+				respective project resource).
+				<ul><li><b>Input Parameters</b>
+						getLeaderRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query
+								for
+								projects. Can be omitted as this information can be
+								reviewed
+								publicly</li><li>log - String for log information, optional</li><li>project - String with project ID, such as "TGPR123"</li></ul></li><li><b>Output Parameters</b>
+						usersetResponse, with element
+						<ul><li>username - String holding ePPN of user, can occur
+								multiple
+								times.
+	      </li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getLeaderRequest"/>
+      <wsdl:output message="tns:getLeaderResponse"/>
+    </wsdl:operation>
+<!-- #### registerResource #### //-->
+    <wsdl:operation name="registerResource">
+      <wsdl:documentation>
+				Registers a resource in the database. Assigns standard
+				permissions to
+				roles in project:
+				<table><tr><td>Role</td><td>Right on Resource</td></tr><tr><td>Projektleiter (project leader)</td><td>delegate, publish</td></tr><tr><td>Administrator</td><td>delete</td></tr><tr><td>Bearbeiter (editor)</td><td>read, write</td></tr><tr><td>Beobachter (observer)</td><td>read</td></tr></table>
+				These permissions can be adapted afterwards. User needs
+				create right
+				on project resource, see createProject().
+				<br/>
+				This function is
+				<b>only for use by TG-crud.</b>
+				Clients
+				should call TG-crud.create instead.
+				<ul><li><b>Input Parameters</b>
+						registerResourceRequest, with elements
+						<ul><li>auth - String, SessionID of future owner of this resource</li><li>log - String for log information, optional</li><li>project - String with project ID, such as "TGPR123".</li><li>uri - String holding URI of TgObject resource to be
+								registered in RBAC</li><li>secret - String known by TG-crud to authenticate
+								itself</li></ul></li><li><b>Output Parameters</b>
+						operationsSetResponse, with element
+						<ul><li>operation (0..n) Strings with permissible operations on the
+								newly created resource</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:registerResourceRequest"/>
+      <wsdl:output message="tns:registerResourceResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### unregisterResource #### //-->
+    <wsdl:operation name="unregisterResource">
+      <wsdl:documentation>
+				Removes resource from database. User needs delete right on
+				resource.
+				<b>Only for use by TG-crud.</b>
+				Clients should call
+				TG-crud.delete instead.
+				<ul><li><b>Input Parameters</b>
+						unregisterResourceRequest, with elements
+						<ul><li>auth - String, SessionID of requester</li><li>log - String for log information, optional</li><li>uri - String holding URI of TgObject resource to be
+								removed
+								from RBAC</li><li>secret - String known by TG-crud to authenticate
+								itself</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>unknownResourceFault</li><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:unregisterResourceRequest"/>
+      <wsdl:output message="tns:unregisterResourceResponse"/>
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### filterBySid #### //-->
+    <wsdl:operation name="filterBySid">
+      <wsdl:documentation>
+				This is tgCheckAccess in batch operation: Returns a list of
+				the
+				resources where a given operation with this SessionID is
+				allowed. The
+				resource parameter must contain a list of
+				resources, and the subset
+				of this list that matches
+				will be returned.
+				<ul><li><b>Input Parameters</b>
+						filterBySidRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to
+								do the check</li><li>log - String for log information, optional</li><li>resource - String with projectID, or URI of
+								TgObject resource.
+								Can occur multiple times.</li><li>operation - String, such as "read", "write"</li></ul></li><li><b>Output Parameters</b>
+						filterResponse, with element
+						<ul><li>resource - String with projectID, or URIs that
+								match. Can
+								occur multiple times.</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:filterBySidRequest"/>
+      <wsdl:output message="tns:filterBySidResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### tgGrantPermission #### //-->
+    <wsdl:operation name="tgGrantPermission">
+      <wsdl:documentation>
+				Enables given operation for given role on given
+				resource. Resource
+				may be an URI of a TgObject, or
+				a projectID. Users need delegate
+				right on resource or project
+				(i.e. be project leader).
+				<ul><li><b>Input Parameters</b>
+						tgGrantPermissionRequest, with elements
+						<ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li><li>role - String with full-qualified role name of the
+								role the
+								user wants to grant a right. The full-qualified
+								role name has the
+								form
+								"Administrator,TGPR3,Projekt-Teilnehmer".</li><li>operation - String, operation to be granted, such as
+								"read",
+								"write".</li><li>resource - String, URI of TgObject, or projectID</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li><li>rbacFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgGrantPermissionRequest"/>
+      <wsdl:output message="tns:tgGrantPermissionResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### tgRevokePermission #### //-->
+    <wsdl:operation name="tgRevokePermission">
+      <wsdl:documentation>
+				Disables this permission, see tgGrantPermission for limitations.
+				<ul><li><b>Input Parameters</b>
+						tgRevokePermissionRequest, with elements
+						<ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li><li>role - String with full-qualified role name of the
+								role the
+								user wants to revoke a right. The full-qualified
+								role name has
+								the form
+								"Administrator,TGPR3,Projekt-Teilnehmer".</li><li>operation - String, operation to be granted, such as
+								"read",
+								"write".</li><li>resource - String, URI of TgObject, or projectID</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:tgRevokePermissionRequest"/>
+      <wsdl:output message="tns:tgRevokePermissionResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### getOwner #### //-->
+    <wsdl:operation name="getOwner">
+      <wsdl:documentation>
+				Returns ePPN of owner that was set in registerResource. User
+				must
+				have read permission on the resource, or resource must be
+				public.
+				<ul><li><b>Input Parameters</b>
+						getOwnerRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query
+								for the
+								owner</li><li>log - String for log information, optional</li><li>resource - String, URI of TgObject</li></ul></li><li><b>Output Parameters</b>
+						getOwnerResponse, with element
+						<ul><li>owner - String, ePPN of owner.</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getOwnerRequest"/>
+      <wsdl:output message="tns:getOwnerResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+
+<!-- #### getEPPN #### //-->
+    <wsdl:operation name="getEPPN">
+      <wsdl:documentation>
+				Returns ePPN (aka TextGrid ID) of authenticated user. As ths function could be used for SID guessing, the caller must know a secret.
+				<ul><li><b>Input Parameters</b>
+						getEPPNRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query his ePPN</li><li>log - String for log information, optional</li><li>secret - String with secret</li></ul></li><li><b>Output Parameters</b>
+						getEPPNResponse, with element
+						<ul><li>eppn - String, ePPN of user.</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getEPPNRequest"/>
+      <wsdl:output message="tns:getEPPNResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+
+<!-- #### getUUID #### //-->
+    <wsdl:operation name="getUUID">
+      <wsdl:documentation>
+	Returns UUID (full path including server address) of the resource. User
+	must have read permission on the resource, or resource must be
+	public.
+	<ul><li><b>Input Parameters</b> getUUIDRequest, with elements
+	    <ul><li>auth - String, SessionID of user that wants to query
+	      for the UUID</li><li>log - String for log information, optional</li><li>resource - String, URI of TgObject</li></ul></li><li><b>Output Parameters</b> getUUIDResponse, with element
+	    <ul><li>uuid - String, UUID if defined.</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+      </wsdl:documentation>
+      <wsdl:input message="tns:getUUIDRequest"/>
+      <wsdl:output message="tns:getUUIDResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+
+<!-- #### getMembers #### //-->
+    <wsdl:operation name="getMembers">
+      <wsdl:documentation>
+				Returns ePPNs of all members in the project, caller must be
+				member
+				herself.
+				<ul><li><b>Input Parameters</b>
+						getMembersRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query
+								for
+								members</li><li>log - String for log information, optional</li><li>project - String, ProjectID, such as "TGPR123"</li></ul></li><li><b>Output Parameters</b>
+						usersetResponse, with element
+						<ul><li>username - String holding ePPN of user, can occur
+								multiple
+								times.</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getMembersRequest"/>
+      <wsdl:output message="tns:getMembersResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### getUserRole #### //-->
+    <wsdl:operation name="getUserRole">
+      <wsdl:documentation>
+				Returns ePPNs plus Array of Roles of all members in the project,
+				caller must be member herself.
+				<ul><li><b>Input Parameters</b>
+						getUserRoleRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query
+								for roles</li><li>log - String for log information, optional</li><li>project - String, ProjectID, such as "TGPR123"</li></ul></li><li><b>Output Parameters</b>
+						getUserRoleResponse. It contains 0...n userRoles, which themselves
+						have elements
+						<ul><li>username - String holding ePPN of user </li><li>roles - array of Strings with roles the user has (e.g.
+								"Bearbeiter").</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li><li>unknownProjectFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getUserRoleRequest"/>
+      <wsdl:output message="tns:getUserRoleResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+      <wsdl:fault name="unknownProjectFault" message="tns:unknownProjectFault"/>
+    </wsdl:operation>
+<!-- #### getFriends #### //-->
+    <wsdl:operation name="getFriends">
+      <wsdl:documentation>
+				Returns ePPNs of the users the authenticated user has
+				relations with,
+				i.e. they are signed into the same project role. Each
+				user name has a
+				score which shows how many roles the requester shares
+				with that user.
+				<ul><li><b>Input Parameters</b>
+						getFriendsRequest, with element
+						<ul><li>auth - String, SessionID of user that wants to query
+								for
+								friends</li></ul></li><li><b>Output Parameters</b>
+						getFriendsResponse. It contains 0...n friends, which themselves
+						have elements
+						<ul><li>username - String holding ePPN of user </li><li>score - Integer with the users' number of common roles with
+								the requester</li></ul></li><li><b>Faults</b>
+						none
+					</li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getFriendsRequest"/>
+      <wsdl:output message="tns:getFriendsResponse"/>
+    </wsdl:operation>
+<!-- #### getRights #### //-->
+    <wsdl:operation name="getRights">
+      <wsdl:documentation>
+				Returns permissions for given resource or projectID. Can be
+				used by
+				project leaders to check permissions for another
+				project member.
+				<ul><li><b>Input Parameters</b>
+						getRightsRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to query
+								the
+								rights</li><li>log - String for log information, optional</li><li>resource - String, URI of TgObject or ProjectID</li><li>username - ePPN of user whose rights shall be
+								queried. Leave
+								empty to get rights of user authenticated
+								by the auth parameter.</li></ul></li><li><b>Output Parameters</b>
+						operationsetResponse, with element
+						<ul><li>operation - String with a right, such as "read" or
+								"delegate". Can occur multiple times.</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getRightsRequest"/>
+      <wsdl:output message="tns:getRightsResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### publish #### //-->
+    <wsdl:operation name="publish">
+      <wsdl:documentation>
+				Sets the isPublic flag of a TextGridObject identified by its
+				URI to
+				TRUE. The resource will then be world-readable. This is
+				irreversible
+				(only by manual modification of the database) and
+				needs the publish
+				right, which by default is granted to
+				project leaders.
+				<ul><li><b>Input Parameters</b>
+						publishRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants publish</li><li>log - String for log information, optional</li><li>resource - String, URI of TgObject</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:publishRequest"/>
+      <wsdl:output message="tns:publishResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### isPublic #### //-->
+    <wsdl:operation name="isPublic">
+      <wsdl:documentation>
+				Returns status of isPublic flag for a TextGridObject.
+				<ul><li><b>Input Parameters</b>
+						isPublicRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to
+								query. Can be
+								empty.</li><li>log - String for log information, optional</li><li>resource - String, URI of TgObject</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if resource has the isPublic
+								flag set
+								to TRUE, i.e. has been published, false
+								otherwise</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:isPublicRequest"/>
+      <wsdl:output message="tns:isPublicResponse"/>
+    </wsdl:operation>
+<!-- #### getNumberOfResources #### //-->
+    <wsdl:operation name="getNumberOfResources">
+      <wsdl:documentation>
+				Returns the total number of resources and the number of public ones
+				in this project. Can be called by anyone.
+				<ul><li><b>Input Parameters</b>
+						getNumberOfResourcesRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants to
+								query. Can be
+								empty.</li><li>log - String for log information, optional</li><li>project - String</li></ul></li><li><b>Output Parameters</b>
+						getNumberOfResourcesResponse, with elements
+						<ul><li>allresources - integer</li><li>publicresources - integer</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getNumberOfResourcesRequest"/>
+      <wsdl:output message="tns:getNumberOfResourcesResponse"/>
+    </wsdl:operation>
+<!-- #### deactivateProject #### //-->
+    <wsdl:operation name="deactivateProject">
+      <wsdl:documentation>
+				Hides a project. User must be project leader of the project to
+				be
+				deactivated. Hidden projects cannot be modified or read
+				anymore
+				(except published resources). However, information is
+				preserved so
+				that the project can be re-activated by manual
+				modification of the
+				database.
+				<ul><li><b>Input Parameters</b>
+						deactivateProjectRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants publish</li><li>log - String for log information, optional</li><li>project - String, ProjectID</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:deactivateProjectRequest"/>
+      <wsdl:output message="tns:deactivateProjectResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### reactivateProject #### //-->
+    <wsdl:operation name="reactivateProject">
+      <wsdl:documentation>
+				Reactivate a hidden and deactivated project. The user must be the
+				former project leader of the project to be able to reactivate it.
+				All rights will be restored.
+				<ul><li><b>Input Parameters</b>
+						reactivateProjectRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants publish</li><li>log - String for log information, optional</li><li>project - String, ProjectID</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:reactivateProjectRequest"/>
+      <wsdl:output message="tns:reactivateProjectResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+      <wsdl:fault name="unknownProjectFault" message="tns:unknownProjectFault"/>
+    </wsdl:operation>
+<!-- #### deleteProject #### //-->
+    <wsdl:operation name="deleteProject">
+      <wsdl:documentation>
+				Delete a project. User must be project leader of the project that
+				is
+				deleted. Before a project can be deleted there must not be any
+				resources associated with the project. A deleted project cannot be
+				restored.
+				<ul><li><b>Input Parameters</b>
+						deleteProjectRequest, with elements
+						<ul><li>auth - String, SessionID of user that wants publish</li><li>log - String for log information, optional</li><li>project - String, ProjectID</li></ul></li><li><b>Output Parameters</b>
+						booleanResponse, with element
+						<ul><li>result - boolean, true if operation was successful,
+								false
+								otherwise</li></ul></li><li><b>Faults</b><ul><li>authenticationFault</li><li>notEmptyFault</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:deleteProjectRequest"/>
+      <wsdl:output message="tns:deleteProjectResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+      <wsdl:fault name="notEmptyFault" message="tns:notEmptyFault"/>
+    </wsdl:operation>
+<!-- #### getProjectDescription #### //-->
+    <wsdl:operation name="getProjectDescription">
+      <wsdl:documentation>
+				Returns name and description of project identified by ID. See
+				also
+				getAllProjects().
+				<ul><li><b>Input Parameters</b>
+						getProjectDescriptionRequest, with elements
+						<ul><li>auth - String, SessionID of user. Can be empty.</li><li>log - String for log information, optional</li><li>project - String, ProjectID</li></ul></li><li><b>Output Parameters</b>
+						getProjectDescriptionResponse, with element
+						<ul><li>
+								project - projectInfo
+								<br/>
+								The type projectInfo consists of the following elements:
+								<ul><li>id - String, project ID, such as "TGPR123"</li><li>description - String, project description</li><li>name - String, project name</li><li>file - String with URI of project file for
+										project-specific
+										settings. </li></ul>
+							</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getProjectDescriptionRequest"/>
+      <wsdl:output message="tns:getProjectDescriptionResponse"/>
+    </wsdl:operation>
+
+<!-- #### getSLC #### //-->
+    <wsdl:operation name="getSLC">
+      <wsdl:documentation>
+	CRUD may use this to retrieve a Short-Lived Certificate Key pair in PEM format for the user
+        <ul><li><b>Input Parameters</b> getSLCRequest, with elements             
+            <ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li><li>secret - String known by TG-crud to authenticate itself</li></ul></li><li><b>Output Parameters</b> getSLCResponse, with element
+          <ul><li>slc - Base64binary String with the key pair. Contains only printable ASCII Character.</li></ul></li></ul>
+      </wsdl:documentation>
+      <wsdl:input message="tns:getSLCRequest"/>
+      <wsdl:output message="tns:getSLCResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault"/>
+    </wsdl:operation>
+<!-- #### getCSR #### //-->
+    <wsdl:operation name="getCSR">
+      <wsdl:documentation>
+	The Portal may use this to retrieve a Dummy Certificate Signing Request (CSR)
+in PEM format, for which the RBAC's accompanying daemon will hold the real key.
+        <ul><li><b>Input Parameters</b> getCSRRequest, with elements             
+            <ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li></ul></li><li><b>Output Parameters</b> getCSRResponse, with element
+          <ul><li>csr - Base64binary String with the CSR. Contains only printable ASCII Character.</li></ul></li></ul>
+      </wsdl:documentation>
+      <wsdl:input message="tns:getCSRRequest"/>
+      <wsdl:output message="tns:getCSRResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault"/>
+    </wsdl:operation>
+<!-- #### putCRT #### //-->
+    <wsdl:operation name="putCRT">
+      <wsdl:documentation>
+	Puts the signed Certificate into the RBAC's accompanying daemon that holds the key.
+        <ul><li><b>Input Parameters</b> putCRTRequest, with elements             
+            <ul><li>auth - String, SessionID of user</li><li>log - String for log information, optional</li><li>crt - the Certificate as a String</li></ul></li><li><b>Output Parameters</b> putCRTResponse, with element
+          <ul><li>success, Boolean.</li></ul></li></ul>
+      </wsdl:documentation>
+      <wsdl:input message="tns:putCRTRequest"/>
+      <wsdl:output message="tns:putCRTResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault"/>
+    </wsdl:operation>
+
+<!-- #### getSid #### //-->
+    <wsdl:operation name="getSid">
+      <wsdl:documentation>
+				Returns some random SessionID suitable for RBAC.
+				<ul><li><b>Input Parameters</b>
+						empty
+					</li><li><b>Output Parameters</b>
+						getSidResponse, with element
+						<ul><li>sid - String, approximately 60-70 bytes long, consisting of
+								random characters taken from a-zA-Z0-9.</li></ul></li></ul>
+			</wsdl:documentation>
+      <wsdl:input message="tns:getSidRequest"/>
+      <wsdl:output message="tns:getSidResponse"/>
+    </wsdl:operation>
+<!-- #### getSupportedUserAttributes #### //-->
+    <wsdl:operation name="getSupportedUserAttributes">
+      <wsdl:documentation>TODO</wsdl:documentation>
+      <wsdl:input message="tns:getSupportedUserAttributesRequest"/>
+      <wsdl:output message="tns:getSupportedUserAttributesResponse"/>
+    </wsdl:operation>
+<!-- #### getMyUserAttributes #### //-->
+    <wsdl:operation name="getMyUserAttributes">
+      <wsdl:documentation>TODO</wsdl:documentation>
+      <wsdl:input message="tns:getMyUserAttributesRequest"/>
+      <wsdl:output message="tns:getMyUserAttributesResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+<!-- #### setMyUserAttributes #### //-->
+    <wsdl:operation name="setMyUserAttributes">
+      <wsdl:documentation>TODO</wsdl:documentation>
+      <wsdl:input message="tns:setMyUserAttributesRequest"/>
+      <wsdl:output message="tns:setMyUserAttributesResponse"/>
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault"/>
+    </wsdl:operation>
+  </wsdl:portType>
+<!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgextra" type="tns:port_tgextra">
+<!-- #### authenticate #### //-->
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="authenticate">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/authenticate"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### userExists #### //-->
+    <wsdl:operation name="userExists">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/userExists"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### createProject #### //-->
+    <wsdl:operation name="createProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/createProject"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### setProjectFile #### //-->
+    <wsdl:operation name="setProjectFile">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/setProjectFile"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### setName #### //-->
+    <wsdl:operation name="setName">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/setName"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getNames #### //-->
+    <wsdl:operation name="getNames">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getNames"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getIDs #### //-->
+    <wsdl:operation name="getIDs">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getIDs"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getObjects #### //-->
+    <wsdl:operation name="getObjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getObjects"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### addMember #### //-->
+    <wsdl:operation name="addMember">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addMember"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="rbacFault">
+        <soap:fault use="literal" name="rbacFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### deleteMember #### //-->
+    <wsdl:operation name="deleteMember">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteMember"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### tgAddActiveRole #### //-->
+    <wsdl:operation name="tgAddActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgAddActiveRole"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### tgDropActiveRole #### //-->
+    <wsdl:operation name="tgDropActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgDropActiveRole"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### tgCheckAccess #### //-->
+    <wsdl:operation name="tgCheckAccess">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgCheckAccess"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="unknownResourceFault">
+        <soap:fault use="literal" name="unknownResourceFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### tgCrudCheckAccess #### //-->
+    <wsdl:operation name="tgCrudCheckAccess">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgCrudCheckAccess"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="unknownResourceFault">
+        <soap:fault use="literal" name="unknownResourceFault"/>
+      </wsdl:fault>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### tgAssignedRoles #### //-->
+    <wsdl:operation name="tgAssignedRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgAssignedRoles"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### tgAssignedProjects #### //-->
+    <wsdl:operation name="tgAssignedProjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgAssignedProjects"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getAllProjects #### //-->
+    <wsdl:operation name="getAllProjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getAllProjects"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getLeader #### //-->
+    <wsdl:operation name="getLeader">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getLeader"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### registerResource #### //-->
+    <wsdl:operation name="registerResource">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/registerResource"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### unregisterResource #### //-->
+    <wsdl:operation name="unregisterResource">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/unregisterResource"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="unknownResourceFault">
+        <soap:fault use="literal" name="unknownResourceFault"/>
+      </wsdl:fault>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### filterBySid #### //-->
+    <wsdl:operation name="filterBySid">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/filterBySid"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### tgGrantPermission #### //-->
+    <wsdl:operation name="tgGrantPermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgGrantPermission"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### tgRevokePermission #### //-->
+    <wsdl:operation name="tgRevokePermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgRevokePermission"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### getOwner #### //-->
+    <wsdl:operation name="getOwner">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getOwner"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+
+<!-- #### getEPPN #### //-->
+    <wsdl:operation name="getEPPN">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getEPPN"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+
+<!-- #### getUUID #### //-->
+    <wsdl:operation name="getUUID">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getUUID"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault name="authenticationFault" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+
+<!-- #### getMembers #### //-->
+    <wsdl:operation name="getMembers">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getMembers"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### getUserRole #### //-->
+    <wsdl:operation name="getUserRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getUserRole"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+      <wsdl:fault name="unknownProjectFault">
+        <soap:fault use="literal" name="unknownProjectFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### getFriends #### //-->
+    <wsdl:operation name="getFriends">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getFriends"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getRights #### //-->
+    <wsdl:operation name="getRights">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getRights"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### publish #### //-->
+    <wsdl:operation name="publish">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/publish"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### isPublic #### //-->
+    <wsdl:operation name="isPublic">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/isPublic"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getNumberOfResources #### //-->
+    <wsdl:operation name="getNumberOfResources">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getNumberOfResources"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getProjectDescription #### //-->
+    <wsdl:operation name="getProjectDescription">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getProjectDescription"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### deactivateProject #### //-->
+    <wsdl:operation name="deactivateProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deactivateProject"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### getDeactivatedProjects #### //-->
+    <wsdl:operation name="getDeactivatedProjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getDeactivatedProjects"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### reactivateProject #### //-->
+    <wsdl:operation name="reactivateProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/reactivateProject"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+      <wsdl:fault name="unknownProjectFault">
+        <soap:fault use="literal" name="unknownProjectFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### deleteProject #### //-->
+    <wsdl:operation name="deleteProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteProject"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault use="literal" name="authenticationFault"/>
+      </wsdl:fault>
+      <wsdl:fault name="notEmptyFault">
+        <soap:fault use="literal" name="notEmptyFault"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### getSupportedUserAttributes #### //-->
+    <wsdl:operation name="getSupportedUserAttributes">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getSupportedUserAttributes"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getMyUserAttributes #### //-->
+    <wsdl:operation name="getMyUserAttributes">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getMyUserAttributes"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### setMyUserAttributes #### //-->
+    <wsdl:operation name="setMyUserAttributes">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/setMyUserAttributes"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getSid #### //-->
+    <wsdl:operation name="getSid">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getSid"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+<!-- #### getSLC #### //-->
+    <wsdl:operation name="getSLC">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getSLC"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault name="authenticationFault" use="literal"/>
+      </wsdl:fault>
+      <wsdl:fault name="unknownResourceFault">
+        <soap:fault name="unknownResourceFault" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### getCSR #### //-->
+    <wsdl:operation name="getCSR">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getCSR"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault name="authenticationFault" use="literal"/>
+      </wsdl:fault>
+      <wsdl:fault name="unknownResourceFault">
+        <soap:fault name="unknownResourceFault" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+<!-- #### putCRT #### //-->
+    <wsdl:operation name="putCRT">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/putCRT"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="authenticationFault">
+        <soap:fault name="authenticationFault" use="literal"/>
+      </wsdl:fault>
+      <wsdl:fault name="unknownResourceFault">
+        <soap:fault name="unknownResourceFault" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+
+  </wsdl:binding>
+<!--
+		##################### # Servicedefinition # ##################### //
+	-->
+  <wsdl:service name="tgextra">
+    <wsdl:port binding="tns:binding_tgextra" name="tgextra">
+      <soap:address location="https://textgridlab.org/dev/tgauth/tgextra.php"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgreview.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgreview.wsdl
new file mode 100644
index 0000000000000000000000000000000000000000..e0230d3f7ddddc42e9bd6b7de78884f66137e737
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgreview.wsdl
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="tgreview"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+      <!-- #### sessionRoles #### //-->
+      <xsd:element name="sessionRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignedRoles #### //-->
+      <xsd:element name="assignedRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authorizedRoles #### //-->
+      <xsd:element name="authorizedRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authorizedUsers #### //-->
+      <xsd:element name="authorizedUsersRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### rolePermissions #### //-->
+      <xsd:element name="rolePermissionsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### userPermissions #### //-->
+      <xsd:element name="userPermissionsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### sessionPermissions #### //-->
+      <xsd:element name="sessionPermissionsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignedUsers #### //-->
+      <xsd:element name="assignedUsersRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### roleOperationsOnObject #### //-->
+      <xsd:element name="roleOperationsOnObjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### userOperationsOnObject #### //-->
+      <xsd:element name="userOperationsOnObjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="user" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="operationsetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="operationset" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="permissionsetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="permissionset" type="tns:permission" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="rolesetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="role" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="usersetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:boolean" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="permission">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:schema>
+
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### sessionRoles #### //-->
+  <wsdl:message name="sessionRolesRequest">
+    <wsdl:part element="tns:sessionRolesRequest" name="sessionRolesInput" />
+  </wsdl:message>
+  <wsdl:message name="sessionRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="sessionRolesOutput" />
+  </wsdl:message>
+
+  <!-- #### assignedRoles #### //-->
+  <wsdl:message name="assignedRolesRequest">
+    <wsdl:part element="tns:assignedRolesRequest" name="assignedRolesInput" />
+  </wsdl:message>
+  <wsdl:message name="assignedRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="assignedRolesOutput" />
+  </wsdl:message>
+
+  <!-- #### authorizedRoles #### //-->
+  <wsdl:message name="authorizedRolesRequest">
+    <wsdl:part element="tns:authorizedRolesRequest" name="authorizedRolesInput" />
+  </wsdl:message>
+  <wsdl:message name="authorizedRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="authorizedRolesOutput" />
+  </wsdl:message>
+
+  <!-- #### authorizedUsers #### //-->
+  <wsdl:message name="authorizedUsersRequest">
+    <wsdl:part element="tns:authorizedUsersRequest" name="authorizedUsersInput" />
+  </wsdl:message>
+  <wsdl:message name="authorizedUsersResponse">
+    <wsdl:part element="tns:usersetResponse" name="authorizedUsersOutput" />
+  </wsdl:message>
+
+  <!-- #### rolePermissions #### //-->
+  <wsdl:message name="rolePermissionsRequest">
+    <wsdl:part element="tns:rolePermissionsRequest" name="rolePermissionsInput" />
+  </wsdl:message>
+  <wsdl:message name="rolePermissionsResponse">
+    <wsdl:part element="tns:permissionsetResponse" name="rolePermissionsOutput" />
+  </wsdl:message>
+
+  <!-- #### userPermissions #### //-->
+  <wsdl:message name="userPermissionsRequest">
+    <wsdl:part element="tns:userPermissionsRequest" name="userPermissionsInput" />
+  </wsdl:message>
+  <wsdl:message name="userPermissionsResponse">
+    <wsdl:part element="tns:permissionsetResponse" name="userPermissionsOutput" />
+  </wsdl:message>
+
+  <!-- #### sessionPermissions #### //-->
+  <wsdl:message name="sessionPermissionsRequest">
+    <wsdl:part element="tns:sessionPermissionsRequest" name="sessionPermissionsInput" />
+  </wsdl:message>
+  <wsdl:message name="sessionPermissionsResponse">
+    <wsdl:part element="tns:permissionsetResponse" name="sessionPermissionsOutput" />
+  </wsdl:message>
+
+  <!-- #### assignedUsers #### //-->
+  <wsdl:message name="assignedUsersRequest">
+    <wsdl:part element="tns:assignedUsersRequest" name="assignedUsersInput" />
+  </wsdl:message>
+  <wsdl:message name="assignedUsersResponse">
+    <wsdl:part element="tns:usersetResponse" name="assignedUsersOutput" />
+  </wsdl:message>
+
+  <!-- #### roleOperationsOnObject #### //-->
+  <wsdl:message name="roleOperationsOnObjectRequest">
+    <wsdl:part element="tns:roleOperationsOnObjectRequest" name="roleOperationsOnObjectInput" />
+  </wsdl:message>
+  <wsdl:message name="roleOperationsOnObjectResponse">
+    <wsdl:part element="tns:operationsetResponse" name="roleOperationsOnObjectOutput" />
+  </wsdl:message>
+
+  <!-- #### userOperationsOnObject #### //-->
+  <wsdl:message name="userOperationsOnObjectRequest">
+    <wsdl:part element="tns:userOperationsOnObjectRequest" name="userOperationsOnObjectInput" />
+  </wsdl:message>
+  <wsdl:message name="userOperationsOnObjectResponse">
+    <wsdl:part element="tns:operationsetResponse" name="userOperationsOnObjectOutput" />
+  </wsdl:message>
+
+  <!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
+  </wsdl:message>
+
+  <!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+  </wsdl:message>
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_tgreview">
+
+    <!-- #### sessionRoles #### //-->
+    <wsdl:operation name="sessionRoles">
+      <wsdl:input message="tns:sessionRolesRequest" />
+      <wsdl:output message="tns:sessionRolesResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### assignedRoles #### //-->
+    <wsdl:operation name="assignedRoles">
+      <wsdl:input message="tns:assignedRolesRequest" />
+      <wsdl:output message="tns:assignedRolesResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### authorizedRoles #### //-->
+    <wsdl:operation name="authorizedRoles">
+      <wsdl:input message="tns:authorizedRolesRequest" />
+      <wsdl:output message="tns:authorizedRolesResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### authorizedUsers #### //-->
+    <wsdl:operation name="authorizedUsers">
+      <wsdl:input message="tns:authorizedUsersRequest" />
+      <wsdl:output message="tns:authorizedUsersResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### rolePermissions #### //-->
+    <wsdl:operation name="rolePermissions">
+      <wsdl:input message="tns:rolePermissionsRequest" />
+      <wsdl:output message="tns:rolePermissionsResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### userPermissions #### //-->
+    <wsdl:operation name="userPermissions">
+      <wsdl:input message="tns:userPermissionsRequest" />
+      <wsdl:output message="tns:userPermissionsResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### sessionPermissions #### //-->
+    <wsdl:operation name="sessionPermissions">
+      <wsdl:input message="tns:sessionPermissionsRequest" />
+      <wsdl:output message="tns:sessionPermissionsResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### assignedUsers #### //-->
+    <wsdl:operation name="assignedUsers">
+      <wsdl:input message="tns:assignedUsersRequest" />
+      <wsdl:output message="tns:assignedUsersResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### roleOperationsOnOBject #### //-->
+    <wsdl:operation name="roleOperationsOnObject">
+      <wsdl:input message="tns:roleOperationsOnObjectRequest" />
+      <wsdl:output message="tns:roleOperationsOnObjectResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### userOperationsOnOBject #### //-->
+    <wsdl:operation name="userOperationsOnObject">
+      <wsdl:input message="tns:userOperationsOnObjectRequest" />
+      <wsdl:output message="tns:userOperationsOnObjectResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgreview" type="tns:port_tgreview">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### sessionRoles #### //-->
+    <wsdl:operation name="sessionRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/sessionRoles" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### assignedRoles #### //-->
+    <wsdl:operation name="assignedRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/assignedRoles" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### authorizedRoles #### //-->
+    <wsdl:operation name="authorizedRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/authorizedRoles" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### authorizedUsers #### //-->
+    <wsdl:operation name="authorizedUsers">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/authorizedUsers" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### rolePermissions #### //-->
+    <wsdl:operation name="rolePermissions">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/rolePermissions" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### userPermissions #### //-->
+    <wsdl:operation name="userPermissions">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/userPermissions" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### sessionPermissions #### //-->
+    <wsdl:operation name="sessionPermissions">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/sessionPermissions" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### assignedUsers #### //-->
+    <wsdl:operation name="assignedUsers">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/assignedUsers" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### roleOperationsOnObject #### //-->
+    <wsdl:operation name="roleOperationsOnObject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/roleOperationsOnObject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### userOperationsOnObject #### //-->
+    <wsdl:operation name="userOperationsOnObject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/userOperationsOnObject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="tgreview">
+    <wsdl:port binding="tns:binding_tgreview" name="tns:tgreview">
+      <soap:address location="https://textgridlab.org/dev/tgauth/tgreview.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgsystem.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgsystem.wsdl
new file mode 100644
index 0000000000000000000000000000000000000000..242260f0f0b81eec946bf29449773cefcfd5c188
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgsystem.wsdl
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="tgsystem"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+      <!-- #### createSession #### //-->
+      <xsd:element name="createSessionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="roleset" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteSession #### //-->
+      <xsd:element name="deleteSessionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addActiveRole #### //-->
+      <xsd:element name="addActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### dropActiveRole #### //-->
+      <xsd:element name="dropActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### checkAccess #### //-->
+      <xsd:element name="checkAccessRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:boolean" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:schema>
+
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### createSession #### //-->
+  <wsdl:message name="createSessionRequest">
+    <wsdl:part element="tns:createSessionRequest" name="createSessionInput" />
+  </wsdl:message>
+  <wsdl:message name="createSessionResponse">
+    <wsdl:part element="tns:booleanResponse" name="createSessionOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteSession #### //-->
+  <wsdl:message name="deleteSessionRequest">
+    <wsdl:part element="tns:deleteSessionRequest" name="deleteSessionInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteSessionResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteSessionOutput" />
+  </wsdl:message>
+
+  <!-- #### addActiveRole #### //-->
+  <wsdl:message name="addActiveRoleRequest">
+    <wsdl:part element="tns:addActiveRoleRequest" name="addActiveRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="addActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="addActiveRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### dropActiveRole #### //-->
+  <wsdl:message name="dropActiveRoleRequest">
+    <wsdl:part element="tns:dropActiveRoleRequest" name="dropActiveRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="dropActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="dropActiveRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### checkAccess #### //-->
+  <wsdl:message name="checkAccessRequest">
+    <wsdl:part element="tns:checkAccessRequest" name="checkAccessInput" />
+  </wsdl:message>
+  <wsdl:message name="checkAccessResponse">
+    <wsdl:part element="tns:booleanResponse" name="checkAccessOutput" />
+  </wsdl:message>
+
+  <!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
+  </wsdl:message>
+
+  <!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+  </wsdl:message>
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_tgsystem">
+
+    <!-- #### createSession #### //-->
+    <wsdl:operation name="createSession">
+      <wsdl:input message="tns:createSessionRequest" />
+      <wsdl:output message="tns:createSessionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteSession #### //-->
+    <wsdl:operation name="deleteSession">
+      <wsdl:input message="tns:deleteSessionRequest" />
+      <wsdl:output message="tns:deleteSessionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addActiveRole #### //-->
+    <wsdl:operation name="addActiveRole">
+      <wsdl:input message="tns:addActiveRoleRequest" />
+      <wsdl:output message="tns:addActiveRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+    </wsdl:operation>
+
+    <!-- #### addActiveRole #### //-->
+    <wsdl:operation name="dropActiveRole">
+      <wsdl:input message="tns:dropActiveRoleRequest" />
+      <wsdl:output message="tns:dropActiveRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### checkAccess #### //-->
+    <wsdl:operation name="checkAccess">
+      <wsdl:input message="tns:checkAccessRequest" />
+      <wsdl:output message="tns:checkAccessResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgsystem" type="tns:port_tgsystem">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### createSession #### //-->
+    <wsdl:operation name="createSession">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/createSession" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteSession #### //-->
+    <wsdl:operation name="deleteSession">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteSession" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addActiveRole #### //-->
+    <wsdl:operation name="addActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addActiveRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### dropActiveRole #### //-->
+    <wsdl:operation name="dropActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/dropActiveRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### checkAccess #### //-->
+    <wsdl:operation name="checkAccess">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/checkAccess" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="tgsystem">
+    <wsdl:port binding="tns:binding_tgsystem" name="tgsystem">
+      <soap:address location="https://textgridlab.org/dev/tgauth/tgsystem.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/xacml.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/xacml.wsdl
new file mode 100644
index 0000000000000000000000000000000000000000..9e22727ecc4bfe7fcc810c7b8244b9b7e5cdf25e
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/xacml.wsdl
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="xacml"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://daasi.de/namespaces/rbac/xacml"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://daasi.de/namespaces/rbac/xacml"
+                  xmlns:xacml-samlp="urn:oasis:xacml:2.0:saml:protocol:schema:os"
+                  xmlns:xacml-saml="urn:oasis:xacml:2.0:saml:assertion:schema:os">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://daasi.de/namespaces/rbac/xacml">
+    	<xsd:import namespace="urn:oasis:xacml:2.0:saml:assertion:schema:os"
+                    schemaLocation="http://www.daasi.de/schema/oasis/access_control-xacml-2.0-saml-assertion-schema-os.xsd" />
+	<xsd:import namespace="urn:oasis:xacml:2.0:saml:protocol:schema:os"
+                    schemaLocation="http://www.daasi.de/schema/oasis/access_control-xacml-2.0-saml-protocol-schema-os.xsd"/>
+
+    </xsd:schema>
+
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### checkXACMLaccess #### //-->
+  <wsdl:message name="checkXACMLaccessRequest">
+    <wsdl:part element="xacml-samlp:XACMLAuthzDecisionQuery" name="checkXACMLaccessInput" />
+  </wsdl:message>
+  <wsdl:message name="checkXACMLaccessResponse">
+    <wsdl:part element="xacml-saml:XACMLAuthzDecisionStatement" name="checkXACMLaccessOutput" />
+  </wsdl:message>
+
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_xacml">
+
+    <!-- #### checkXACMLaccess #### //-->
+    <wsdl:operation name="checkXACMLaccess">
+      <wsdl:input message="tns:checkXACMLaccessRequest" />
+      <wsdl:output message="tns:checkXACMLaccessResponse" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_xacml" type="tns:port_xacml">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### checkXACMLaccess #### //-->
+    <wsdl:operation name="checkXACMLaccess">
+      <soap:operation soapAction="http://daasi.de/rbac/xacml/checkXACMLaccess" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="xacml">
+    <wsdl:port binding="tns:binding_xacml" name="tns:xacml">
+      <soap:address location="http://textgridlab.org/tgauth/rbacSoap/xacml.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/xacml.wsdl.readme.txt b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/xacml.wsdl.readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..305325ae0ea29595505ab59ea84af8309c0c2623
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/xacml.wsdl.readme.txt
@@ -0,0 +1 @@
+xacml.wsdl imports corrected OASIS XML schemas beacause these were found to be incorrect