diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-tg2.0/tgextra-crud.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-tg2.0/tgextra-crud.wsdl
index f6d4b3fae794ad01cec50d8cfa09cc0d81b881a6..0b3cec744c92020bda5d816c53582539fdd35950 100644
--- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-tg2.0/tgextra-crud.wsdl
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-tg2.0/tgextra-crud.wsdl
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!-- NOTE This tgextra-crud.wsdl file is meant to COMMUNICATE WITH THE TG-CRUD 
-	SERVICE ONLY, for common read and write access please use tgextra.wsdl! -->
+<!-- NOTE This tgextra-crud.wsdl file is ment to COMMUNICATE WITH TG-crud 
+	service only, for read access please use tgextra.wsdl, for write access use 
+	tgextra-write.wsdl -->
 
 <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
 	xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth-crud"
@@ -94,14 +95,14 @@
 					</xsd:sequence>
 				</xsd:complexType>
 			</xsd:element>
-			<xsd:element name="getEPPNRequest">
+			<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="secret" type="xsd:string"
+						<xsd:element name="resource" type="xsd:string"
 							minOccurs="1" maxOccurs="1" />
 					</xsd:sequence>
 				</xsd:complexType>
@@ -144,6 +145,18 @@
 					</xsd:sequence>
 				</xsd:complexType>
 			</xsd:element>
+			<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>
@@ -216,6 +229,18 @@
 					</xsd:sequence>
 				</xsd:complexType>
 			</xsd:element>
+			<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>
 			<xsd:element name="authenticationFaultResponse" type="tns:TextGridFaultType" />
 			<xsd:element name="unknownProjectFaultResponse" type="tns:TextGridFaultType" />
 			<xsd:element name="rbacFaultResponse" type="tns:TextGridFaultType" />
@@ -257,17 +282,8 @@
 	<wsdl:message name="publishResponse">
 		<wsdl:part element="tns:booleanResponse" name="publishOutput" />
 	</wsdl:message>
-	<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>
-	<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 name="isPublicRequest">
+		<wsdl:part element="tns:isPublicRequest" name="isPublicInput" />
 	</wsdl:message>
 	<wsdl:message name="getCSRRequest">
 		<wsdl:part element="tns:getCSRRequest" name="getCSRInput" />
@@ -281,6 +297,18 @@
 	<wsdl:message name="putCRTResponse">
 		<wsdl:part element="tns:putCRTResponse" name="putCRTOutput" />
 	</wsdl:message>
+	<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>
+	<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>
 	<wsdl:message name="getUUIDRequest">
 		<wsdl:part element="tns:getUUIDRequest" name="getUUIDInput" />
 	</wsdl:message>
@@ -481,6 +509,34 @@
 			<wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault" />
 			<wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
 		</wsdl:operation>
+		<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>
 		<wsdl:operation name="getEPPN">
 			<wsdl:documentation>
 				Returns ePPN (aka TextGrid ID) of authenticated user. As ths
@@ -628,6 +684,13 @@
 			<wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
 			<wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault" />
 		</wsdl:operation>
+		<wsdl:operation name="nearlyPublish">
+			<wsdl:documentation>++TODO++</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:operation name="getCSR">
 			<wsdl:documentation>
 				The Portal may use this to retrieve a Dummy Certificate Signing
@@ -658,58 +721,22 @@
 			<wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
 			<wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault" />
 		</wsdl:operation>
-		<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>
-		<wsdl:operation name="nearlyPublish">
-			<wsdl:documentation>++TODO++</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 ## -->
+	<!-- ## Binding -->
 	<!-- ################################################################### -->
 
 	<wsdl:binding name="binding_tgextra_crud" type="tns:port_tgextra_crud">
-		<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" />
+	<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" />
@@ -853,7 +880,7 @@
 	</wsdl:binding>
 
 	<!-- ################################################################### -->
-	<!-- ## Service-Definition ## -->
+	<!-- ## Service-Definition -->
 	<!-- ################################################################### -->
 
 	<wsdl:service name="tgextra_crud">
@@ -861,5 +888,4 @@
 			<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-tg2.0/tgextra.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-tg2.0/tgextra.wsdl
index 5c5135a969ce43f16f6b0cbf2ea55c34cf576f25..f7b2f897194db9efa7597f39ee0e6721df8ab7b9 100644
--- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-tg2.0/tgextra.wsdl
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-tg2.0/tgextra.wsdl
@@ -1,14 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!-- NOTE This tgextra.wsdl file is ment for COMMON READ AND WRITE ACCESS 
-	ON ANY TextGrid RBAC installation, for special communication with TG-crud 
-	use tgextra-crud.wsdl! -->
+<!-- NOTE This tgextra.wsdl file is ment to READ ONLY on any TextGrid RBAC 
+	installation, for writing please use tgextra-write.wsdl, for communication 
+	with TG-crud use tgextra-crud.wsdl -->
 
 <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">
-
 	<wsdl:types>
 		<xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
 
@@ -358,135 +357,6 @@
 					</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="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: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>
-			<xsd:element name="authenticationFaultResponse" type="tns:TextGridFaultType" />
-			<xsd:element name="unknownProjectFaultResponse" type="tns:TextGridFaultType" />
-			<xsd:element name="rbacFaultResponse" type="tns:TextGridFaultType" />
-			<xsd:element name="notEmptyFaultResponse" type="tns:TextGridFaultType" />
-			<xsd:element name="objectNotFoundFaultResponse" type="tns:TextGridFaultType" />
-			<xsd:element name="unknownResourceFaultResponse" type="tns: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>
 
 			<!-- ########################################################### -->
 			<!-- ## Typ-Definitionen WRITE -->
@@ -702,6 +572,11 @@
 					</xsd:sequence>
 				</xsd:complexType>
 			</xsd:element>
+
+			<!-- ########################################################### -->
+			<!-- ## Typ-Definitionen GENERAL -->
+			<!-- ########################################################### -->
+
 			<xsd:element name="filterResponse">
 				<xsd:complexType>
 					<xsd:sequence>
@@ -815,6 +690,11 @@
 						maxOccurs="1" />
 				</xsd:sequence>
 			</xsd:complexType>
+
+			<!-- ########################################################### -->
+			<!-- ## Typ-Definitionen FAULTS -->
+			<!-- ########################################################### -->
+
 			<xsd:element name="authenticationFaultResponse" type="tns:TextGridFaultType" />
 			<xsd:element name="unknownProjectFaultResponse" type="tns:TextGridFaultType" />
 			<xsd:element name="rbacFaultResponse" type="tns:TextGridFaultType" />
@@ -973,21 +853,6 @@
 	<wsdl:message name="getMyUserAttributesResponse">
 		<wsdl:part element="tns:getMyUserAttributesResponse" name="getMyUserAttributesOutput" />
 	</wsdl:message>
-	<wsdl:message name="authenticationFault">
-		<wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
-	</wsdl:message>
-	<wsdl:message name="unknownProjectFault">
-		<wsdl:part element="tns:unknownProjectFaultResponse" name="unknownProjectFault" />
-	</wsdl:message>
-	<wsdl:message name="rbacFault">
-		<wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
-	</wsdl:message>
-	<wsdl:message name="notEmptyFault">
-		<wsdl:part element="tns:notEmptyFaultResponse" name="notEmptyFault" />
-	</wsdl:message>
-	<wsdl:message name="unknownResourceFault">
-		<wsdl:part element="tns:unknownResourceFaultResponse" name="unknownResourceFault" />
-	</wsdl:message>
 
 	<!-- ################################################################### -->
 	<!-- ## WSDL-Messages WRITE -->
@@ -1077,6 +942,11 @@
 	<wsdl:message name="setMyUserAttributesResponse">
 		<wsdl:part element="tns:booleanResponse" name="setMyUserAttributesOutput" />
 	</wsdl:message>
+
+	<!-- ################################################################### -->
+	<!-- ## WSDL-Messages FAULTS -->
+	<!-- ################################################################### -->
+
 	<wsdl:message name="authenticationFault">
 		<wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
 	</wsdl:message>
@@ -1092,12 +962,9 @@
 	<wsdl:message name="unknownResourceFault">
 		<wsdl:part element="tns:unknownResourceFaultResponse" name="unknownResourceFault" />
 	</wsdl:message>
-	<wsdl:message name="createProjectInput">
-		<wsdl:part name="NewPart" type="xsd:string"></wsdl:part>
-	</wsdl:message>
 
 	<!-- ################################################################### -->
-	<!-- ## Port-Type-Definitionen READ -->
+	<!-- ## Port-Type-Definitionen -->
 	<!-- ################################################################### -->
 
 	<wsdl:portType name="port_tgextra">
@@ -1879,626 +1746,618 @@
 			<wsdl:output message="tns:getMyUserAttributesResponse" />
 			<wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
 		</wsdl:operation>
-	</wsdl:portType>
-
-	<!-- ################################################################### -->
-	<!-- ## Port-Type-Definitionen WRITE -->
-	<!-- ################################################################### -->
 
-	<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>
-	<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" name="createProjectInput" />
-		<wsdl:output message="tns:createProjectResponse" />
-	</wsdl:operation>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-	<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>
-
-	<!-- ################################################################### -->
-	<!-- ## Binding -->
-	<!-- ################################################################### -->
+		<!-- ############################################################### -->
+		<!-- ## Port-Type-Definitionen -->
+		<!-- ############################################################### -->
 
-	<wsdl:binding name="binding_tgextra" type="tns:port_tgextra">
-		<soap:binding style="document"
-			transport="http://schemas.xmlsoap.org/soap/http" />
-		<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>
-		<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>
-		<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 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>
-		<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 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" name="createProjectInput" />
+			<wsdl:output message="tns:createProjectResponse" />
 		</wsdl:operation>
-		<wsdl:operation name="tgCheckAccess">
-			<soap:operation
-				soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgCheckAccess" />
-			<wsdl:input>
-				<soap:body use="literal" />
-			</wsdl:input>
-			<wsdl:output>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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">
+		<soap:binding style="document"
+			transport="http://schemas.xmlsoap.org/soap/http" />
+		<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>
+		<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>
+		<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>
+		<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>
+		<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">
@@ -2699,6 +2558,179 @@
 				<soap:body use="literal" />
 			</wsdl:output>
 		</wsdl:operation>
+		<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>
+		<wsdl:operation name="createProject">
+			<soap:operation
+				soapAction="http://textgrid.info/namespaces/middleware/tgauth/createProject" />
+			<wsdl:input name="createProjectInput">
+				<soap:body use="literal" />
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal" />
+			</wsdl:output>
+		</wsdl:operation>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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>
+		<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:fault name="authenticationFault">
+				<soap:fault use="literal" name="authenticationFault" />
+			</wsdl:fault>
+		</wsdl:operation>
 	</wsdl:binding>
 
 	<!-- ################################################################### -->
@@ -2710,5 +2742,4 @@
 			<soap:address location="https://textgridlab.org/dev/tgauth/tgextra.php" />
 		</wsdl:port>
 	</wsdl:service>
-
 </wsdl:definitions>