diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php index fb9ea74a00bf7b140caa6bb9c9524fff70f8f60e..b8154c1a9c10693df9493273e0cec2303dbbe687 100755 --- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php @@ -55,50 +55,6 @@ class TgExtra { } - - - // ----------------------------------------------------- - // Function: userExists - // Input: auth / xsd:string - // log / xsd:string - // username / xsd:string - // Output: result / xsd:boolean - // Description - // Checks if a given user exists in the LDAP directory. - // ----------------------------------------------------- - function userExists( $inRequest ) { - - $result = new booleanResponse(); // The result - - - $filter = "(&" . $this->config->getValue( "authentication", "filter" ); - $filter .= "(" . $this->config->getValue( "authentication", "namingattribute" ) . "=" . $inRequest->username . "))"; - - - // Search for the users entry - $arrUserEntry = $this->connection['user']->search( $this->config->getValue( "authentication", "base" ), $filter, "sub", - Array( $this->config->getValue( "authentication", "namingattribute" ) ) ); - - - if( isset( $arrUserEntry[0] ) - && isset( $arrUserEntry[0]['dn'] ) ) { - - $result->result = true; - - } - else { - - $result->result = false; - - } - - - return $result; - - } - - - // ----------------------------------------------------- // Function: authenticate // Input: username / xsd:string @@ -199,163 +155,43 @@ class TgExtra { } - - // ----------------------------------------------------- - // Function: tgCrudCheckAccess - // Input: log / xsd:string - // session / xsd:string - // operation / xsd:string - // resource / xsd:string - // Output: sid / xsd:string + // Function: userExists + // Input: auth / xsd:string + // log / xsd:string + // username / xsd:string + // Output: result / xsd:boolean // Description - // Searches for the given resource. If it's existing the - // method starts the checkAccess query and returns the - // result. Otherwise a Fault is generated that sais that - // the resource does not exist. + // Checks if a given user exists in the LDAP directory. // ----------------------------------------------------- - public function tgCrudCheckAccess( $inRequest ) { - - // Must check in the following order: - // 1. Check if the tgcrud secret is correctly set, if not > authenticationFault - // 2. Check if the resource is existing, if not > unknownResourceFault - // 3. Check the session ID, if not valid > set result to false and return - // 4. Set the other results and return true - - $result = new tgCrudCheckAccessResponse(); - $objProjectInfo = new stdClass(); - $objFaultDetail = new stdClass(); - $arrResource = Array(); - $arrProject = None; - $filter = ""; - - - if( $inRequest->secret === $this->config->getValue( "crud", "secret" ) ) { - - $filter = "(&(objectClass=rbacResource)"; - $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $inRequest->resource . ")"; - $filter .= "(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $inRequest->resource . ")))"; - - - // Search for the resource. - $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub" ); - - - if( sizeof( $arrResource ) > 0 ) { - - // Add the PDP result - $result->result = $this->rbac->checkAccess( $inRequest->auth, $inRequest->operation, $inRequest->resource ); - if( !isset( $arrResource[0]['tgispublic'] ) ) { - $result->public = false; - } else { - preg_match( "/^true$/i", $arrResource[0]['tgispublic'][0] ) ? $result->public = true : $result->public = false; - } - - // See if the object is a project role... - for( $loObjectclass = 0; $loObjectclass < sizeof( $arrResource[0]['objectclass'] ); $loObjectclass++ ) { - - // If this matches the resource is a project and the - // work has already been done. - if( preg_match( "/TextGridProject/i", $arrResource[0]['objectclass'][$loObjectclass] ) ) { - - $arrProject = $arrResource; - break; - - } - - } - - - // If the resource isn't a project the project corresponding to the - // has to be searched now. - if( $arrProject == None && isset( $arrResource['tgprojectid'] ) ) { - - $filter = "(&(objectClass=rbacResource)"; - $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $arrResource['tgprojectid'][0] . ")"; - $filter .= "(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $arrResource['tgprojectid'][0] . ")))"; - - - // Search for the project. - $arrProject = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub" ); - - } - - - if( $arrProject != None && sizeof( $arrProject ) > 0 ) { - - $result->project = new ProjectInfo( $arrProject[0][$this->rbac->getConfiguration()->getValue( "role", "namingattribute" )][0], - $arrProject[0]['tgprojectname'][0], $arrProject[0]['tgprojectdescription'][0], - $arrProject[0]['tgprojectfile'][0] ); - - } - - - // Finally add the username and allowed - // operations for the current session. - $result->username = $this->rbac->sessionUser( $inRequest->auth ); - - - try { - - $result->operation = $this->rbac->userOperationsOnObject( $result->username, $inRequest->resource ); - - - // Make sure that if the operation was "read" and the user - // has access but has this right due to an extension the - // permissionset contains the read operation. - if( $inRequest->operation == "read" && $result->result && !in_array( "read", $result->operation ) ) { - - $result->operation[] = "read"; - - } - - - return $result; - - } - catch( Exception $e ) { + function userExists( $inRequest ) { - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ); - $objFaultDetail->cause = "Object does not exist"; + $result = new booleanResponse(); // The result - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $objFaultDetail ); + $filter = "(&" . $this->config->getValue( "authentication", "filter" ); + $filter .= "(" . $this->config->getValue( "authentication", "namingattribute" ) . "=" . $inRequest->username . "))"; - } - } - else { - - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ); - $objFaultDetail->cause = "Object does not exist"; + // Search for the users entry + $arrUserEntry = $this->connection['user']->search( $this->config->getValue( "authentication", "base" ), $filter, "sub", + Array( $this->config->getValue( "authentication", "namingattribute" ) ) ); - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $objFaultDetail ); + if( isset( $arrUserEntry[0] ) + && isset( $arrUserEntry[0]['dn'] ) ) { - } + $result->result = true; } else { - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->cause = "You are not cruddy enough - Go away and come back as CRUD!"; + $result->result = false; + } - return new SoapFault( "authenticationFault", - "You are not cruddy enough - Go away and come back as CRUD!", - get_class( $this ), - $objFaultDetail ); - } + return $result; } @@ -1133,98 +969,9 @@ class TgExtra { } - // ----------------------------------------------------- - // Function: getEPPN - // Input: auth / xsd:string - // log / xsd:string - // secret / xsd:string - // Output: eppn / xsd:string - // Description - // Returns the TextGrid ID (ePPN) of a session user - // ----------------------------------------------------- - public function getEPPN ( $inRequest ) { - - $result = new StdClass(); // The return-result - - if ($inRequest->secret !== $this->config->getValue( "SIDcheck", "secret" ) ) { - return new SoapFault( "authenticationFault", - $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ) ); - } - - try { - $result->eppn = $this->rbac->sessionUser( $inRequest->auth ); - } catch (Fault $f) { - return new SoapFault( "authenticationFault", - $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ) ); - } - return $result; - } - - - - - - // ----------------------------------------------------- - // Function: getUUID - // Input: auth / xsd:string - // log / xsd:string - // resource / xsd:string - // Output: result / xsd:string - // Description - // Returns the UUID of a resource, possibly nothing if unset. - // ----------------------------------------------------- - public function getUUID( $inRequest ) { - - $result = new getUUIDResponse(); // The return-result - $filter = ""; // RBAC-filter - $arrResource = Array(); // Resoult of the RBAC-search - - - // Create a filter that searches for the - // given resource. - $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); - $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $inRequest->resource . ")"; - $filter .= " (" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $inRequest->resource . ")))"; - - - if( $this->rbac->checkAccess( $inRequest->auth, "read", $inRequest->resource ) ) { - $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), - $filter, "sub", - Array( "tgresourceuuid" ) ); - - - if( sizeof( $arrResource ) == 1 ) { - - if (isset($arrResource[0]['tgresourceuuid'][0])) { - - $result->uuid = $arrResource[0]['tgresourceuuid'][0]; - - } else { - $result->uuid = "No UUID defined"; // will be a fault later - } - - } else { - - $result->uuid = "Resource not found or no access right"; // will be a fault later - - } - - } else { - - $result->uuid = "Resource not found or no access right"; // will be a fault later - - } - - return $result; - - } @@ -1445,63 +1192,6 @@ class TgExtra { - // ----------------------------------------------------- - // Function: publish - // Input: auth / xsd:string - // log / xsd:string - // project / xsd:string - // Output: result / xsd:boolean - // Description - // Returns a list of operations allowed by the user - // on a specific resource. - // ----------------------------------------------------- - public function publish( $inRequest ) { - - $arrResource = Array(); - $arrModify = Array(); - $filter = ""; - $result = new booleanResponse(); // The return-result - $objFaultDetail = new stdClass(); - - - $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); - $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $inRequest->resource . ")"; - $filter .= " (" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $inRequest->resource . ")))"; - - - // Get the resource - $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub", - Array( "tgispublic", "tgprojectid" ) ); - - - if( $this->rbac->checkAccess( $inRequest->auth, "publish", $inRequest->resource ) ) { - - $arrModify['tgispublic'][] = "TRUE"; - $arrModify['rbacpermission'] = Array(); - $result->result = $this->connection['resource']->modify( $arrResource[0]['dn'], $arrModify ); - - } - else { - - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->cause = "You do not have the permission publish the resource " . $inRequest->resource . "."; - - - return new SoapFault( "authenticationFault", - $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), - get_class( $this ), - $objFaultDetail ); - - } - - - return $result; - - } - - - // ----------------------------------------------------- // Function: getProjectDescription @@ -2036,452 +1726,6 @@ class TgExtra { - - // ----------------------------------------------------- - // Function: unregisterResource - // Input: auth / xsd:string - // log / xsd:string - // project / xsd:string - // uri / xsd:string - // Output: result / xsd:boolean - // Description - // Tries to remove a resource from the directory. There for - // a user has to have the permission "delete" on the - // resource. - // ----------------------------------------------------- - function unregisterResource( $inRequest ) { - - $resourceNamingAttribute = ""; // The naming-attribute of the resource - $resourceAliasAttribute = ""; // The alias-attribute of the resource - $filter = ""; // The LDAP-filter to find the resource - $result = new booleanResponse(); // The return-result - $objFaultDetail = new stdClass(); - - - if( $inRequest->secret === $this->config->getValue( "crud", "secret" ) ) { - - if( $this->rbac->checkAccess( $inRequest->auth, "delete", $inRequest->uri ) ) { - - // The TextGrid-resource naming-attribute - $resourceNamingAttribute = $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ); - $resourceAliasAttribute = $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ); - - - $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); - $filter .= "(|(" . $resourceNamingAttribute . "=" . $inRequest->uri . ")"; - $filter .= " (" . $resourceAliasAttribute . "=" . $inRequest->uri . ")))"; - - $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub" ); - - - if( sizeof( $arrResource ) == 1 ) { - - $result->result = $this->connection['resource']->delete( $arrResource[0]['dn'] ); - - } - else { - - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ); - $objFaultDetail->cause = "The specified resource " . $inRequest->resource . " could not be found."; - - - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $objFaultDetail ); - - } - - } - else { - - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->cause = "You do not have the permission to remove " . $inRequest->resource . "."; - - - return new SoapFault( "authenticationFault", - $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), - get_class( $this ), - $objFaultDetail ); - - } - - - return $result; - - } - else { - - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->cause = "You are not cruddy enough - Go away and come back as CRUD!"; - - - return new SoapFault( "authenticationFault", - "You are not cruddy enough - Go away and come back as CRUD!", - get_class( $this ), - $objFaultDetail ); - - } - - } - - - // ----------------------------------------------------- - // Function: getSLC - // Input: auth / xsd:string - // log / xsd:string - // secret / xsd:string - // Output: slc / xsd:base64binary - // Description - // CRUD may use this to retrieve a Short-Lived Certificate Key pair for the user - // ----------------------------------------------------- - function getSLC ( $inRequest ) { - - if ($inRequest->secret !== $this->config->getValue( "crud", "secret" ) ) { - return new SoapFault( "authenticationFault", - $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ) ); - } - - // Search for Session entry - $filter = "(" . $this->rbac->getConfiguration()->getValue( "session", "namingattribute" ) . - "=" . $inRequest->auth . ")"; - $arrSessionEntry = $this->connection['user']->search( - $this->rbac->getConfiguration()->getValue( "session", "base" ), - $filter, "sub", Array( "rbacSessionUser" ) ); - - // retrieve rbacSessionUser attribute (ePPN) - if( isset( $arrSessionEntry[0] ) && isset( $arrSessionEntry[0]['dn'] ) ) { - $eppn = $arrSessionEntry[0]['rbacsessionuser'][0]; - } else { - // echo ("Could not find Session entry"); - return new SoapFault( "authenticationFault", - $this->config->getValue( "errorCode", "AUTHENTICATION_ERROR" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "AUTHENTICATION_ERROR" ) ); - - } - - // Search for user entry - $filter = "(" . $this->config->getValue( "authentication", "namingattribute" ) . "=" . $eppn . ")"; - $arrUserEntry = $this->connection['user']->search( - $this->config->getValue( "authentication", "base" ), - $filter, "sub", Array( "dn" ) ); - - - // Retrieve userPKCS12 attribute (certificate + key) - if( isset( $arrUserEntry[0] ) && isset( $arrUserEntry[0]['dn'] ) ) { - // have to set binary mode to TRUE... - $certArr = $this->connection['user']->getEntry( $arrUserEntry[0]['dn'], array("userpkcs12"), TRUE); - $pkcs12 = $certArr['userpkcs12'][0]; - } else { - //echo ("Failed finding the user entry"); - return new SoapFault( "authenticationFault", - $this->config->getValue( "errorCode", "AUTHENTICATION_ERROR" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "AUTHENTICATION_ERROR" ) ); - - } - - // find the passphrase for the p12 from the mapSIDtoePassphrase demon - $sock = socket_create( AF_UNIX, SOCK_STREAM, 0 ); - $response = new stdClass(); - $socketfilename = $this->config->getValue( "SLCPassphraseMap", "socketfile" ); - - if( socket_connect( $sock, $socketfilename ) ) { - socket_write ( $sock, "getPassphrase\n"); - socket_write ( $sock, $inRequest->auth . "\n" ); - socket_write ( $sock, "\n" . '>>>EOF<<<' . "\n"); - - $result = socket_read( $sock, 4096 , PHP_NORMAL_READ ); - - if ( strpos ($result, "getPassphraseresult") == 0 ){ - $passphrase = chop(socket_read( $sock, 4096 , PHP_NORMAL_READ )); - } else { - // no passphrase returned - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); - } - - socket_shutdown( $sock, 2 ); - socket_close( $sock ); - - } else { - // could not connect to socket - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); - - } - // Encode certificate into PEM format - $both = ''; - if ( openssl_pkcs12_read($pkcs12, $allpem, $passphrase) ) { - $both = $allpem['cert'] . $allpem['pkey']; - } else { - //echo ("Failed reading the user's certificate"); - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); - - } - - $result = new getSLCResponse(); - $result->slc = base64_encode($both); - - return $result; - - } - - - - // ----------------------------------------------------- - // Function: getCSR - // Input: auth / xsd:string - // log / xsd:string - // Output: csr / xsd:base64binary - // Description - // Returns a dummy certificate signing request, where the contacted deamon will hold the key in memory - // ----------------------------------------------------- - function getCSR ( $inRequest ) { - - # TODO should check whether auth is valid - $sock = socket_create( AF_UNIX, SOCK_STREAM, 0 ); - $response = new stdClass(); - $socketfilename = $this->config->getValue( "SLCPassphraseMap", "socketfile" ); - - if( socket_connect( $sock, $socketfilename ) ) { - - socket_write ( $sock, "getCSR\n"); - socket_write ( $sock, $inRequest->auth . "\n" ); - $result = socket_read( $sock, 80, PHP_NORMAL_READ ); - if ( strpos ($result , "getCSRresult") == 0 ) { - $result = socket_read( $sock, 80, PHP_NORMAL_READ ); - $csr = ""; - while ( $result && !(strpos ($result, '>>>EOF<<<') === 0 )) { - $csr .= $result; - $result = socket_read( $sock, 80, PHP_NORMAL_READ ); - } - - $response->csr = $csr; - - return $response; - } else { - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); - - } - socket_shutdown( $sock, 2 ); - socket_close( $sock ); - - } else { - $response->csr = base64_encode(socket_strerror(socket_last_error())); - return $response; - - return new SoapFault( "unknownResourceFault", - $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), - get_class( $this ), - $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); - - } -} - - - - // ----------------------------------------------------- - // Function: putCRT - // Input: auth / xsd:string - // log / xsd:string - // crt / xsd:string - // Output: success / xsd:boolean - // Description - // Returns a dummy certificate signing request - // ----------------------------------------------------- - function putCRT ( $inRequest ) { - - # TODO should check whether auth is valid - $sock = socket_create( AF_UNIX, SOCK_STREAM, 0 ); - $response = new stdClass(); - $socketfilename = $this->config->getValue( "SLCPassphraseMap", "socketfile" ); - - if( socket_connect( $sock, $socketfilename ) ) { - - socket_write ( $sock, "putCRT\n"); - socket_write ( $sock, $inRequest->auth . "\n" ); - socket_write ( $sock, $inRequest->crt ); - socket_write ( $sock, "\n" . '>>>EOF<<<' . "\n"); - - $result = socket_read( $sock, 4096, PHP_NORMAL_READ ); - if ( strpos ($result, "putCRTresult") == 0 ) { - $success = chop(socket_read( $sock, 4096 , PHP_NORMAL_READ)); - if ($success == "true") { - $response->success = true; - return $response; - } - } - socket_shutdown( $sock, 2 ); - socket_close( $sock ); - } - $response->success = false; - return $response; - } - - - - // ----------------------------------------------------- - // Function: registerResource - // Input: auth / xsd:string - // log / xsd:string - // project / xsd:string - // uri / xsd:string - // uuid / xsd:string - // Output: result / xsd:boolean - // Description - // Tries to add a resource to the directory. There for - // a user has to have the permission "create" on the - // resource "project". - // ----------------------------------------------------- - function registerResource( $inRequest ) { - - $connection = false; // The connection for resources - $registered = false; // The result of the registration-tries - $registerTry = 10; // The number of tries of registering the resource - $resourceNamingAttribute = ""; // The naming-attribute of the resource - $arrCounter = false; // The counter entry - $askedDaemon = false; - $result = new operationsetResponse(); // The return-result - $objFaultDetail = new stdClass(); - - - // Create a new uuid for the new project - $strRbacResourceUuid = $this->uuidV4(); - - - if( $inRequest->secret === $this->config->getValue( "crud", "secret" ) ) { - - - // The TextGrid-resource naming-attribute - $resourceNamingAttribute = $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ); - - - if( $this->rbac->checkAccess( $inRequest->auth, "create", $inRequest->project ) ) { - - // As long as the resource is not registered and the number - // of tries has not been reached, try to register - while( !$registered - && ($registerTry > 0) ) { - - // This is the resource-entry that will be - // added to the directory - $arrEntry = Array(); - $arrEntry['objectclass'][] = "textgridResource"; - $arrEntry['objectclass'][] = "rbacResource"; - $arrEntry['rbacoperation'][] = "read"; - $arrEntry['rbacoperation'][] = "write"; - $arrEntry['rbacoperation'][] = "delegate"; - $arrEntry['rbacoperation'][] = "delete"; - $arrEntry['rbacoperation'][] = "publish"; - $arrEntry['tgresourceuri'][] = $inRequest->uri; - if (isset($inRequest->uuid)) { - $arrEntry['tgresourceuuid'][] = $inRequest->uuid; - } - $arrEntry['tgprojectid'][] = $inRequest->project; - $arrEntry['tgispublic'][] = "FALSE"; - $arrEntry[$resourceNamingAttribute][] = "TGRS-" . $strRbacResourceUuid; //($freeNumber); - $arrEntry['tgresourceowner'][] = $this->rbac->sessionUser( $inRequest->auth ); - - - // Add the default permissions to the resource - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Projektleiter," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:delegate"; - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Projektleiter," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:publish"; - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Projektleiter," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Administrator," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:delete"; - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Administrator," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Bearbeiter," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Bearbeiter," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:write"; - $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Beobachter," - . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," - . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; - - - // Try to add the resource with the appropriate number. If - // this fails, we will try again (10 times). - $registered = $this->connection['resource']->add( $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=TGRS-" - . $strRbacResourceUuid . "," . $this->config->getValue( "textGridResource", "base" ), - $arrEntry ); - - - $registerTry--; - - } - - - // Create the set of operations the user has on - // the new object. - - $result->operation = $this->rbac->userOperationsOnObject( $this->rbac->sessionUser( $inRequest->auth ), "TGRS-" . $strRbacResourceUuid ); - - } - else { - - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->cause = "You are not allowed to create resources in this project."; - - - return new SoapFault( "authenticationFault", - "You are not allowed to create resources in this project.", - get_class( $this ), - $objFaultDetail ); - - } - - - return $result; - - } - else { - - $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); - $objFaultDetail->cause = "You are not cruddy enough - Go away and come back as CRUD!"; - - - return new SoapFault( "authenticationFault", - "You are not cruddy enough - Go away and come back as CRUD!", - get_class( $this ), - $objFaultDetail ); - - } - - } - - - - // ----------------------------------------------------- // Function: getLeader // Input: log / xsd:string @@ -3308,7 +2552,6 @@ class TgExtra { return $result; - } @@ -3484,7 +2727,6 @@ class TgExtra { - function uuidV4() { $strResult = ""; diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtraCrud.class.php b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtraCrud.class.php index 1cd9384a27ee1a398a888d12c4b659c3149e0e1f..319dcc433776ca97dbd77f56d3a59f1b0dcb77b0 100755 --- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtraCrud.class.php +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtraCrud.class.php @@ -56,12 +56,12 @@ class TgExtraCrud { - // ----------------------------------------------------- // Function: nearlyPublish // Input: auth / xsd:string // log / xsd:string - // project / xsd:string + // secret / xsd:string + // resource / xsd:string // Output: result / xsd:boolean // Description // Returns a list of operations allowed by the user @@ -75,6 +75,19 @@ class TgExtraCrud { $result = new booleanResponse(); // The return-result $objFaultDetail = new stdClass(); + if( $inRequest->secret !== $this->config->getValue( "crud", "secret" ) ) { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "Only CRUD can nearly publish resources."; + + return new SoapFault( "authenticationFault", + "Only CRUD can nearly publish resources.", + get_class( $this ), + $objFaultDetail ); + } + + // ELSE (presented secret is correct) $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $inRequest->resource . ")"; @@ -142,5 +155,808 @@ class TgExtraCrud { } + + // ----------------------------------------------------- + // Function: registerResource + // Input: auth / xsd:string + // log / xsd:string + // project / xsd:string + // uri / xsd:string + // uuid / xsd:string + // Output: result / xsd:boolean + // Description + // Tries to add a resource to the directory. There for + // a user has to have the permission "create" on the + // resource "project". + // ----------------------------------------------------- + function registerResource( $inRequest ) { + + $connection = false; // The connection for resources + $registered = false; // The result of the registration-tries + $registerTry = 10; // The number of tries of registering the resource + $resourceNamingAttribute = ""; // The naming-attribute of the resource + $arrCounter = false; // The counter entry + $askedDaemon = false; + $result = new operationsetResponse(); // The return-result + $objFaultDetail = new stdClass(); + + + // Create a new uuid for the new project + $strRbacResourceUuid = $this->uuidV4(); + + + if( $inRequest->secret === $this->config->getValue( "crud", "secret" ) ) { + + + // The TextGrid-resource naming-attribute + $resourceNamingAttribute = $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ); + + + if( $this->rbac->checkAccess( $inRequest->auth, "create", $inRequest->project ) ) { + + // As long as the resource is not registered and the number + // of tries has not been reached, try to register + while( !$registered + && ($registerTry > 0) ) { + + // This is the resource-entry that will be + // added to the directory + $arrEntry = Array(); + $arrEntry['objectclass'][] = "textgridResource"; + $arrEntry['objectclass'][] = "rbacResource"; + $arrEntry['rbacoperation'][] = "read"; + $arrEntry['rbacoperation'][] = "write"; + $arrEntry['rbacoperation'][] = "delegate"; + $arrEntry['rbacoperation'][] = "delete"; + $arrEntry['rbacoperation'][] = "publish"; + $arrEntry['tgresourceuri'][] = $inRequest->uri; + if (isset($inRequest->uuid)) { + $arrEntry['tgresourceuuid'][] = $inRequest->uuid; + } + $arrEntry['tgprojectid'][] = $inRequest->project; + $arrEntry['tgispublic'][] = "FALSE"; + $arrEntry[$resourceNamingAttribute][] = "TGRS-" . $strRbacResourceUuid; //($freeNumber); + $arrEntry['tgresourceowner'][] = $this->rbac->sessionUser( $inRequest->auth ); + + + // Add the default permissions to the resource + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Projektleiter," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:delegate"; + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Projektleiter," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:publish"; + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Projektleiter," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Administrator," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:delete"; + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Administrator," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Bearbeiter," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Bearbeiter," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:write"; + $arrEntry['rbacpermission'][] = $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=Beobachter," + . $this->rbac->getConfiguration()->getValue( "role", "namingattribute" ) . "=" . $inRequest->project . "," + . $this->rbac->getConfiguration()->getValue( "project", "base" ) . ":-:read"; + + + // Try to add the resource with the appropriate number. If + // this fails, we will try again (10 times). + $registered = $this->connection['resource']->add( $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=TGRS-" + . $strRbacResourceUuid . "," . $this->config->getValue( "textGridResource", "base" ), + $arrEntry ); + + + $registerTry--; + } + + if (!$registered) { + + $objFaultDetail->faultNo = 4096; + $objFaultDetail->faultMessage = "An LDAP-Error occured, see description"; + $objFaultDetail->cause = "Could not register the resource"; + + return new SoapFault( "rbacFault", + "Could not register the resource", + get_class( $this ), + $objFaultDetail ); + + } + + // Create the set of operations the user has on + // the new object. + + $result->operation = $this->rbac->userOperationsOnObject( $this->rbac->sessionUser( $inRequest->auth ), "TGRS-" . $strRbacResourceUuid ); + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "You are not allowed to create resources in this project."; + + + return new SoapFault( "authenticationFault", + "You are not allowed to create resources in this project.", + get_class( $this ), + $objFaultDetail ); + + } + + + return $result; + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "You are not cruddy enough - Go away and come back as CRUD!"; + + + return new SoapFault( "authenticationFault", + "You are not cruddy enough - Go away and come back as CRUD!", + get_class( $this ), + $objFaultDetail ); + + } + + } + + + + + + // ----------------------------------------------------- + // Function: unregisterResource + // Input: auth / xsd:string + // log / xsd:string + // project / xsd:string + // uri / xsd:string + // Output: result / xsd:boolean + // Description + // Tries to remove a resource from the directory. There for + // a user has to have the permission "delete" on the + // resource. + // ----------------------------------------------------- + function unregisterResource( $inRequest ) { + + $resourceNamingAttribute = ""; // The naming-attribute of the resource + $resourceAliasAttribute = ""; // The alias-attribute of the resource + $filter = ""; // The LDAP-filter to find the resource + $result = new booleanResponse(); // The return-result + $objFaultDetail = new stdClass(); + + + if( $inRequest->secret === $this->config->getValue( "crud", "secret" ) ) { + + if( $this->rbac->checkAccess( $inRequest->auth, "delete", $inRequest->uri ) ) { + + // The TextGrid-resource naming-attribute + $resourceNamingAttribute = $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ); + $resourceAliasAttribute = $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ); + + + $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); + $filter .= "(|(" . $resourceNamingAttribute . "=" . $inRequest->uri . ")"; + $filter .= " (" . $resourceAliasAttribute . "=" . $inRequest->uri . ")))"; + + $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub" ); + + + if( sizeof( $arrResource ) == 1 ) { + + $result->result = $this->connection['resource']->delete( $arrResource[0]['dn'] ); + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ); + $objFaultDetail->cause = "The specified resource " . $inRequest->resource . " could not be found."; + + + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $objFaultDetail ); + + } + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "You do not have the permission to remove " . $inRequest->resource . "."; + + + return new SoapFault( "authenticationFault", + $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), + get_class( $this ), + $objFaultDetail ); + + } + + + return $result; + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "You are not cruddy enough - Go away and come back as CRUD!"; + + + return new SoapFault( "authenticationFault", + "You are not cruddy enough - Go away and come back as CRUD!", + get_class( $this ), + $objFaultDetail ); + + } + + } + + + + + + // ----------------------------------------------------- + // Function: tgCrudCheckAccess + // Input: log / xsd:string + // session / xsd:string + // operation / xsd:string + // resource / xsd:string + // Output: sid / xsd:string + // Description + // Searches for the given resource. If it's existing the + // method starts the checkAccess query and returns the + // result. Otherwise a Fault is generated that sais that + // the resource does not exist. + // ----------------------------------------------------- + public function tgCrudCheckAccess( $inRequest ) { + + // Must check in the following order: + // 1. Check if the tgcrud secret is correctly set, if not > authenticationFault + // 2. Check if the resource is existing, if not > unknownResourceFault + // 3. Check the session ID, if not valid > set result to false and return + // 4. Set the other results and return true + + $result = new tgCrudCheckAccessResponse(); + $objProjectInfo = new stdClass(); + $objFaultDetail = new stdClass(); + $arrResource = Array(); + $arrProject = None; + $filter = ""; + + + if( $inRequest->secret === $this->config->getValue( "crud", "secret" ) ) { + + $filter = "(&(objectClass=rbacResource)"; + $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $inRequest->resource . ")"; + $filter .= "(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $inRequest->resource . ")))"; + + + // Search for the resource. + $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub" ); + + + if( sizeof( $arrResource ) > 0 ) { + + // Add the PDP result + $result->result = $this->rbac->checkAccess( $inRequest->auth, $inRequest->operation, $inRequest->resource ); + if( !isset( $arrResource[0]['tgispublic'] ) ) { + $result->public = false; + } else { + preg_match( "/^true$/i", $arrResource[0]['tgispublic'][0] ) ? $result->public = true : $result->public = false; + } + + // See if the object is a project role... + for( $loObjectclass = 0; $loObjectclass < sizeof( $arrResource[0]['objectclass'] ); $loObjectclass++ ) { + + // If this matches the resource is a project and the + // work has already been done. + if( preg_match( "/TextGridProject/i", $arrResource[0]['objectclass'][$loObjectclass] ) ) { + + $arrProject = $arrResource; + break; + + } + + } + + + // If the resource isn't a project the project corresponding to the + // has to be searched now. + if( $arrProject == None && isset( $arrResource['tgprojectid'] ) ) { + + $filter = "(&(objectClass=rbacResource)"; + $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $arrResource['tgprojectid'][0] . ")"; + $filter .= "(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $arrResource['tgprojectid'][0] . ")))"; + + + // Search for the project. + $arrProject = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub" ); + + } + + + if( $arrProject != None && sizeof( $arrProject ) > 0 ) { + + $result->project = new ProjectInfo( $arrProject[0][$this->rbac->getConfiguration()->getValue( "role", "namingattribute" )][0], + $arrProject[0]['tgprojectname'][0], $arrProject[0]['tgprojectdescription'][0], + $arrProject[0]['tgprojectfile'][0] ); + + } + + + // Finally add the username and allowed + // operations for the current session. + $result->username = $this->rbac->sessionUser( $inRequest->auth ); + + + try { + + $result->operation = $this->rbac->userOperationsOnObject( $result->username, $inRequest->resource ); + + + // Make sure that if the operation was "read" and the user + // has access but has this right due to an extension the + // permissionset contains the read operation. + if( $inRequest->operation == "read" && $result->result && !in_array( "read", $result->operation ) ) { + + $result->operation[] = "read"; + + } + + + return $result; + + } + catch( Exception $e ) { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ); + $objFaultDetail->cause = "Object does not exist"; + + + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $objFaultDetail ); + + } + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ); + $objFaultDetail->cause = "Object does not exist"; + + + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $objFaultDetail ); + + } + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "You are not cruddy enough - Go away and come back as CRUD!"; + + + return new SoapFault( "authenticationFault", + "You are not cruddy enough - Go away and come back as CRUD!", + get_class( $this ), + $objFaultDetail ); + + } + + } + + + + + // ----------------------------------------------------- + // Function: getEPPN + // Input: auth / xsd:string + // log / xsd:string + // secret / xsd:string + // Output: eppn / xsd:string + // Description + // Returns the TextGrid ID (ePPN) of a session user + // ----------------------------------------------------- + public function getEPPN ( $inRequest ) { + + $result = new StdClass(); // The return-result + + if ($inRequest->secret !== $this->config->getValue( "SIDcheck", "secret" ) ) { + return new SoapFault( "authenticationFault", + $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ) ); + } + + try { + $result->eppn = $this->rbac->sessionUser( $inRequest->auth ); + } catch (Fault $f) { + return new SoapFault( "authenticationFault", + $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ) ); + } + return $result; + } + + + + // ----------------------------------------------------- + // Function: getUUID + // Input: auth / xsd:string + // log / xsd:string + // resource / xsd:string + // Output: result / xsd:string + // Description + // Returns the UUID of a resource, possibly nothing if unset. + // ----------------------------------------------------- + public function getUUID( $inRequest ) { + + $result = new getUUIDResponse(); // The return-result + $filter = ""; // RBAC-filter + $arrResource = Array(); // Resoult of the RBAC-search + + + // Create a filter that searches for the + // given resource. + $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); + $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $inRequest->resource . ")"; + $filter .= " (" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $inRequest->resource . ")))"; + + + if( $this->rbac->checkAccess( $inRequest->auth, "read", $inRequest->resource ) ) { + + $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), + $filter, "sub", + Array( "tgresourceuuid" ) ); + + + if( sizeof( $arrResource ) == 1 ) { + + if (isset($arrResource[0]['tgresourceuuid'][0])) { + + $result->uuid = $arrResource[0]['tgresourceuuid'][0]; + + } else { + + $result->uuid = "No UUID defined"; // will be a fault later + + } + + } else { + + $result->uuid = "Resource not found or no access right"; // will be a fault later + + } + + } else { + + $result->uuid = "Resource not found or no access right"; // will be a fault later + + } + + return $result; + + } + + + // ----------------------------------------------------- + // Function: publish + // Input: auth / xsd:string + // log / xsd:string + // secret / xsd:string + // resource / xsd:string + // Output: result / xsd:boolean + // Description + // Returns a list of operations allowed by the user + // on a specific resource. + // ----------------------------------------------------- + public function publish( $inRequest ) { + + $arrResource = Array(); + $arrModify = Array(); + $filter = ""; + $result = new booleanResponse(); // The return-result + $objFaultDetail = new stdClass(); + + if( $inRequest->secret !== $this->config->getValue( "crud", "secret" ) ) { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "Only CRUD can publish resources."; + + return new SoapFault( "authenticationFault", + "Only CRUD can publish resources.", + get_class( $this ), + $objFaultDetail ); + } + + // ELSE (presented secret is correct) +- + + $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); + $filter .= "(|(" . $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) . "=" . $inRequest->resource . ")"; + $filter .= " (" . $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ) . "=" . $inRequest->resource . ")))"; + + + // Get the resource + $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), $filter, "sub", + Array( "tgispublic", "tgprojectid" ) ); + + + if( $this->rbac->checkAccess( $inRequest->auth, "publish", $inRequest->resource ) ) { + + $arrModify['tgispublic'][] = "TRUE"; + $arrModify['rbacpermission'] = Array(); + $result->result = $this->connection['resource']->modify( $arrResource[0]['dn'], $arrModify ); + + } + else { + + $objFaultDetail->faultNo = $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->faultMessage = $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ); + $objFaultDetail->cause = "You do not have the permission publish the resource " . $inRequest->resource . "."; + + + return new SoapFault( "authenticationFault", + $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), + get_class( $this ), + $objFaultDetail ); + + } + + + return $result; + + } + + + + + // ----------------------------------------------------- + // Function: getSLC + // Input: auth / xsd:string + // log / xsd:string + // secret / xsd:string + // Output: slc / xsd:base64binary + // Description + // CRUD may use this to retrieve a Short-Lived Certificate Key pair for the user + // ----------------------------------------------------- + function getSLC ( $inRequest ) { + + if ($inRequest->secret !== $this->config->getValue( "crud", "secret" ) ) { + return new SoapFault( "authenticationFault", + $this->config->getValue( "errorCode", "INSUFFICIENT_ACCESS" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "INSUFFICIENT_ACCESS" ) ); + } + + // Search for Session entry + $filter = "(" . $this->rbac->getConfiguration()->getValue( "session", "namingattribute" ) . + "=" . $inRequest->auth . ")"; + $arrSessionEntry = $this->connection['user']->search( + $this->rbac->getConfiguration()->getValue( "session", "base" ), + $filter, "sub", Array( "rbacSessionUser" ) ); + + // retrieve rbacSessionUser attribute (ePPN) + if( isset( $arrSessionEntry[0] ) && isset( $arrSessionEntry[0]['dn'] ) ) { + $eppn = $arrSessionEntry[0]['rbacsessionuser'][0]; + } else { + // echo ("Could not find Session entry"); + return new SoapFault( "authenticationFault", + $this->config->getValue( "errorCode", "AUTHENTICATION_ERROR" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "AUTHENTICATION_ERROR" ) ); + + } + + // Search for user entry + $filter = "(" . $this->config->getValue( "authentication", "namingattribute" ) . "=" . $eppn . ")"; + $arrUserEntry = $this->connection['user']->search( + $this->config->getValue( "authentication", "base" ), + $filter, "sub", Array( "dn" ) ); + + + // Retrieve userPKCS12 attribute (certificate + key) + if( isset( $arrUserEntry[0] ) && isset( $arrUserEntry[0]['dn'] ) ) { + // have to set binary mode to TRUE... + $certArr = $this->connection['user']->getEntry( $arrUserEntry[0]['dn'], array("userpkcs12"), TRUE); + $pkcs12 = $certArr['userpkcs12'][0]; + } else { + //echo ("Failed finding the user entry"); + return new SoapFault( "authenticationFault", + $this->config->getValue( "errorCode", "AUTHENTICATION_ERROR" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "AUTHENTICATION_ERROR" ) ); + + } + + // find the passphrase for the p12 from the mapSIDtoePassphrase demon + $sock = socket_create( AF_UNIX, SOCK_STREAM, 0 ); + $response = new stdClass(); + $socketfilename = $this->config->getValue( "SLCPassphraseMap", "socketfile" ); + + if( socket_connect( $sock, $socketfilename ) ) { + socket_write ( $sock, "getPassphrase\n"); + socket_write ( $sock, $inRequest->auth . "\n" ); + socket_write ( $sock, "\n" . '>>>EOF<<<' . "\n"); + + $result = socket_read( $sock, 4096 , PHP_NORMAL_READ ); + + if ( strpos ($result, "getPassphraseresult") == 0 ){ + $passphrase = chop(socket_read( $sock, 4096 , PHP_NORMAL_READ )); + } else { + // no passphrase returned + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); + } + + socket_shutdown( $sock, 2 ); + socket_close( $sock ); + + } else { + // could not connect to socket + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); + + } + // Encode certificate into PEM format + $both = ''; + if ( openssl_pkcs12_read($pkcs12, $allpem, $passphrase) ) { + $both = $allpem['cert'] . $allpem['pkey']; + } else { + //echo ("Failed reading the user's certificate"); + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); + + } + + $result = new getSLCResponse(); + $result->slc = base64_encode($both); + + return $result; + + } + + + // ----------------------------------------------------- + // Function: getCSR + // Input: auth / xsd:string + // log / xsd:string + // Output: csr / xsd:base64binary + // Description + // Returns a dummy certificate signing request, where the contacted deamon will hold the key in memory + // ----------------------------------------------------- + function getCSR ( $inRequest ) { + + # TODO should check whether auth is valid + $sock = socket_create( AF_UNIX, SOCK_STREAM, 0 ); + $response = new stdClass(); + $socketfilename = $this->config->getValue( "SLCPassphraseMap", "socketfile" ); + + if( socket_connect( $sock, $socketfilename ) ) { + + socket_write ( $sock, "getCSR\n"); + socket_write ( $sock, $inRequest->auth . "\n" ); + $result = socket_read( $sock, 80, PHP_NORMAL_READ ); + if ( strpos ($result , "getCSRresult") == 0 ) { + $result = socket_read( $sock, 80, PHP_NORMAL_READ ); + $csr = ""; + while ( $result && !(strpos ($result, '>>>EOF<<<') === 0 )) { + $csr .= $result; + $result = socket_read( $sock, 80, PHP_NORMAL_READ ); + } + + $response->csr = $csr; + + return $response; + } else { + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); + + } + socket_shutdown( $sock, 2 ); + socket_close( $sock ); + + } else { + $response->csr = base64_encode(socket_strerror(socket_last_error())); + return $response; + + return new SoapFault( "unknownResourceFault", + $this->config->getValue( "errorCode", "RESOURCENOTFOUND_ERROR" ), + get_class( $this ), + $this->config->getValue( "errorDescription", "RESOURCENOTFOUND_ERROR" ) ); + + } +} + + + // ----------------------------------------------------- + // Function: putCRT + // Input: auth / xsd:string + // log / xsd:string + // crt / xsd:string + // Output: success / xsd:boolean + // Description + // Returns a dummy certificate signing request + // ----------------------------------------------------- + function putCRT ( $inRequest ) { + + # TODO should check whether auth is valid + $sock = socket_create( AF_UNIX, SOCK_STREAM, 0 ); + $response = new stdClass(); + $socketfilename = $this->config->getValue( "SLCPassphraseMap", "socketfile" ); + + if( socket_connect( $sock, $socketfilename ) ) { + + socket_write ( $sock, "putCRT\n"); + socket_write ( $sock, $inRequest->auth . "\n" ); + socket_write ( $sock, $inRequest->crt ); + socket_write ( $sock, "\n" . '>>>EOF<<<' . "\n"); + + $result = socket_read( $sock, 4096, PHP_NORMAL_READ ); + if ( strpos ($result, "putCRTresult") == 0 ) { + $success = chop(socket_read( $sock, 4096 , PHP_NORMAL_READ)); + if ($success == "true") { + $response->success = true; + return $response; + } + } + socket_shutdown( $sock, 2 ); + socket_close( $sock ); + } + $response->success = false; + return $response; + } + + + function uuidV4() { + + $strResult = ""; + $strRandom = ""; + + + $strRandom = uniqid( md5( rand() ) ); + + $strResult .= substr( $strRandom, 0, 8 ) . "-"; + $strResult .= substr( $strRandom, 8, 4 ) . "-"; + $strResult .= substr( $strRandom, 12, 4 ) . "-"; + $strResult .= substr( $strRandom, 16, 4 ) . "-"; + $strResult .= substr( $strRandom, 32, 12 ); + + + return $strResult; + + } + } ?> diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/examples/tgCrudCheckAccess.php b/info.textgrid.middleware.tgauth.rbac/rbacSoap/examples/tgCrudCheckAccess.php index 604069d23b8242dacdc5ef880f73746a96c7fd3b..cd6fd542687e629e78e51b43b30aaca972962ae4 100755 --- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/examples/tgCrudCheckAccess.php +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/examples/tgCrudCheckAccess.php @@ -14,7 +14,7 @@ require_once( "../soapTypes.inc.php" ); // ----------------------------------------------------- // You'll need these services // ----------------------------------------------------- -$soapSystem = new SoapClient( "../wsdl/tgextra.wsdl", Array( "trace" => true ) ); +$soapSystem = new SoapClient( "../wsdl/tgextra-crud.wsdl", Array( "trace" => true ) ); echo "<BODY><HTML>"; 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 index 6749038a760e5de755979596581c11b814bd77fb..d657dca0a9b43c02d38d4e7f1353ae47b50542aa 100644 --- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra-crud.wsdl +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra-crud.wsdl @@ -1,12 +1,220 @@ <?xml version="1.0" encoding="UTF-8"?> + +<!-- 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" 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 # #################### // --> + name="tgextra-crud" 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="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="secret" type="xsd:string" + minOccurs="1" 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: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="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="secret" type="xsd:string" + minOccurs="1" maxOccurs="1" /> + <xsd:element name="uri" type="xsd:string" minOccurs="1" + maxOccurs="1" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <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> + <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="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="secret" 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="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> + <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> + <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> + <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> + <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> + <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="secret" 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="getUUIDResponse"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="uuid" type="xsd:string" minOccurs="0" + maxOccurs="1" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> <xsd:element name="nearlyPublishRequest"> <xsd:complexType> <xsd:sequence> @@ -14,6 +222,8 @@ 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="resource" type="xsd:string" minOccurs="1" maxOccurs="1" /> </xsd:sequence> @@ -27,13 +237,29 @@ </xsd:sequence> </xsd:complexType> </xsd:element> - <!-- #### authenticationFault #### // --> + <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> + + <!-- ########################################################### --> + <!-- ## Typ-Definitionen FAULTS --> + <!-- ########################################################### --> + <xsd:element name="authenticationFaultResponse" type="tns:TextGridFaultType" /> - <!-- #### rbacFault #### // --> + <xsd:element name="unknownProjectFaultResponse" type="tns:TextGridFaultType" /> <xsd:element name="rbacFaultResponse" type="tns:TextGridFaultType" /> - <!-- #### unknownResourceFault #### // --> + <xsd:element name="notEmptyFaultResponse" type="tns:TextGridFaultType" /> + <xsd:element name="objectNotFoundFaultResponse" type="tns:TextGridFaultType" /> <xsd:element name="unknownResourceFaultResponse" type="tns:TextGridFaultType" /> - <!-- #### TextGridFaultType #### // --> <xsd:complexType name="TextGridFaultType"> <xsd:sequence> <xsd:element name="faultNo" type="xsd:int" minOccurs="0" @@ -46,27 +272,363 @@ </xsd:complexType> </xsd:schema> </wsdl:types> - <!-- ################# # WSDL-Messages # ################# // --> - <!-- #### nearlyPublish #### // --> + + <!-- ################################################################### --> + <!-- ## WSDL-Messages --> + <!-- ################################################################### --> + + <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> + <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> + <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> + <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> + <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> + <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> + <wsdl:message name="getUUIDResponse"> + <wsdl:part element="tns:getUUIDResponse" name="getUUIDResponse" /> + </wsdl:message> + <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> <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-Messages FAULTS --> + <!-- ################################################################### --> + <wsdl:message name="authenticationFault"> <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" /> </wsdl:message> - <!-- #### unknownResourceFault #### // --> + <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> - <!-- ########################## # Port-Type-Definitionen # ########################## - // --> + + <!-- ################################################################### --> + <!-- ## Port-Type-Definitionen --> + <!-- ################################################################### --> + <wsdl:portType name="port_tgextra_crud"> - <!-- #### nearlyPublish #### // --> - <wsdl:operation name="nearlyPublish"> + <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>secret - String known by TG-crud to authenticate + itself</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> + </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> + <li>rbacFault - if resource could not be registered successfully</li> + </ul> + </li> + </ul> + </wsdl:documentation> + <wsdl:input message="tns:registerResourceRequest" /> + <wsdl:output message="tns:registerResourceResponse" /> + <wsdl:fault name="rbacFault" message="tns:rbacFault" /> + <wsdl:fault name="authenticationFault" message="tns:authenticationFault" /> + </wsdl:operation> + <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>secret - String known by TG-crud to authenticate + itself</li> + <li>uri - String holding URI of TgObject resource to be + removed + from RBAC</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> + <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>secret - String known by TG-crud to authenticate + itself</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> + 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> + <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 + 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 known by TG-crud to authenticate + itself</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> + <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>secret - String known by TG-crud to authenticate + itself</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> + <wsdl:operation name="publish"> <wsdl:documentation> Sets the isPublic flag of a TextGridObject identified by its URI to @@ -75,17 +637,16 @@ (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. + project leaders. <ul> <li> <b>Input Parameters</b> - nearlyPublishRequest, with elements + publishRequest, with elements <ul> <li>auth - String, SessionID of user that wants publish</li> <li>log - String for log information, optional</li> + <li>secret - String known by TG-crud to authenticate + itself</li> <li>resource - String, URI of TgObject</li> </ul> </li> @@ -106,15 +667,84 @@ </li> </ul> </wsdl:documentation> + <wsdl:input message="tns:publishRequest" /> + <wsdl:output message="tns:publishResponse" /> + <wsdl:fault name="authenticationFault" message="tns:authenticationFault" /> + </wsdl:operation> + <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> + <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 + 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> </wsdl:portType> - <!-- ########### # Binding # ########### // --> + + <!-- ################################################################### --> + <!-- ## 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"> @@ -133,8 +763,147 @@ <soap:fault use="literal" name="unknownResourceFault" /> </wsdl:fault> </wsdl:operation> + <wsdl:operation name="registerResource"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/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:fault name="rbacFault"> + <soap:fault use="literal" name="rbacFault" /> + </wsdl:fault> + </wsdl:operation> + <wsdl:operation name="unregisterResource"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/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> + <wsdl:operation name="tgCrudCheckAccess"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/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> + <wsdl:operation name="getEPPN"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/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> + <wsdl:operation name="getUUID"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/getUUID" /> + <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="publish"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/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> + <wsdl:operation name="getSLC"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/getSLC" /> + <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:operation name="getCSR"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/getCSR" /> + <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:operation name="putCRT"> + <soap:operation + soapAction="http://textgrid.info/namespaces/middleware/tgauth-crud/putCRT" /> + <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 # ##################### // --> + + <!-- ################################################################### --> + <!-- ## Service-Definition --> + <!-- ################################################################### --> + <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" /> diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra.wsdl index 510dc3b2a752f9c337daff14abfd3e384197f3cd..e9b5315cd69767f47621997ab099cb95b8743f07 100644 --- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra.wsdl +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws4/tgextra.wsdl @@ -1,1384 +1,1163 @@ <?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> +<!-- 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 --> -<!-- #### 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> +<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"> + + <!-- ########################################################### --> + <!-- ## Typ-Definitionen READ --> + <!-- ########################################################### --> + + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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: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> + <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> + <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> + <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> + <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> + <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> + <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> + + <!-- ########################################################### --> + <!-- ## Typ-Definitionen WRITE --> + <!-- ########################################################### --> + + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + + <!-- ########################################################### --> + <!-- ## Typ-Definitionen GENERAL --> + <!-- ########################################################### --> + + <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> + + <!-- ########################################################### --> + <!-- ## Typ-Definitionen FAULTS --> + <!-- ########################################################### --> + + <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> + </xsd:schema> + </wsdl:types> + + <!-- ################################################################### --> + <!-- ## WSDL-Messages READ --> + <!-- ################################################################### --> + + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + + <!-- ################################################################### --> + <!-- ## WSDL-Messages WRITE --> + <!-- ################################################################### --> + + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + + <!-- ################################################################### --> + <!-- ## WSDL-Messages FAULTS --> + <!-- ################################################################### --> + + <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> + + <!-- ################################################################### --> + <!-- ## Port-Type-Definitionen --> + <!-- ################################################################### --> + + <wsdl:portType name="port_tgextra"> + <wsdl:operation name="userExists"> + <wsdl:documentation> Checks whether this UserID (eduPersonPrincipalName) exists in RBAC. - <ul><li><b>Input Parameters</b> + <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> + <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 operation was successful, - false - otherwise</li></ul></li><li><b>Faults</b><ul> - </ul></li></ul> + <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:setNameRequest"/> - <wsdl:output message="tns:setNameResponse"/> - </wsdl:operation> -<!-- #### getNames #### //--> - <wsdl:operation name="getNames"> - <wsdl:documentation> + <wsdl:input message="tns:userExistsRequest" /> + <wsdl:output message="tns:userExistsResponse" /> + <wsdl:fault name="authenticationFault" message="tns:authenticationFault" /> + </wsdl:operation> + <wsdl:operation name="getNames"> + <wsdl:documentation> Returns user records for a list of ePPNs - <ul><li><b>Input Parameters</b> + <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> + <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> + <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> + </li> + </ul> </wsdl:documentation> - <wsdl:input message="tns:getNamesRequest"/> - <wsdl:output message="tns:getNamesResponse"/> - </wsdl:operation> -<!-- #### getIDs #### //--> - <wsdl:operation name="getIDs"> - <wsdl:documentation> + <wsdl:input message="tns:getNamesRequest" /> + <wsdl:output message="tns:getNamesResponse" /> + </wsdl:operation> + <wsdl:operation name="getIDs"> + <wsdl:documentation> Returns user records for a name or mail address. - <ul><li><b>Input Parameters</b> + <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> + <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> + <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> + </li> + </ul> </wsdl:documentation> - <wsdl:input message="tns:getIDsRequest"/> - <wsdl:output message="tns:getIDsResponse"/> - </wsdl:operation> -<!-- #### getObjects #### //--> - <wsdl:operation name="getObjects"> - <wsdl:documentation> + <wsdl:input message="tns:getIDsRequest" /> + <wsdl:output message="tns:getIDsResponse" /> + </wsdl:operation> + <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> + <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> + <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 + <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> + multiple times</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> + <wsdl:input message="tns:getObjectsRequest" /> + <wsdl:output message="tns:getObjectsResponse" /> + </wsdl:operation> + <wsdl:operation name="tgCheckAccess"> + <wsdl:documentation> Returns access decision for given operation on given resource for session. - <ul><li><b>Input Parameters</b> + <ul> + <li> + <b>Input Parameters</b> tgCheckAccessRequest, with elements - <ul><li>auth - String, SessionID of user (or service) that + <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> + 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> + </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, + <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> + otherwise</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> + <wsdl:input message="tns:tgCheckAccessRequest" /> + <wsdl:output message="tns:tgCheckAccessResponse" /> + <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault" /> + </wsdl:operation> + <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 @@ -1390,190 +1169,216 @@ <em>username</em> has some role in. - <ul><li><b>Input Parameters</b> + <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 + <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> + 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 + <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> + 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> + <wsdl:input message="tns:tgAssignedRolesRequest" /> + <wsdl:output message="tns:tgAssignedRolesResponse" /> + </wsdl:operation> + <wsdl:operation name="tgAssignedProjects"> + <wsdl:documentation> Returns projectIDs of all projects the user has some role in. - <ul><li><b>Input Parameters</b> + <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> + <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> + <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 + <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 + 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> + leader)</li> + </ul> + </li> + </ul> + </li> + <li> + <b>Output Parameters</b> rolesetResponse, with element - <ul><li>role - String with projectID (no full-qualified role + <ul> + <li>role - String with projectID (no full-qualified role name is - needed here). Can occur multiple times.</li></ul></li></ul> + 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> + <wsdl:input message="tns:tgAssignedProjectsRequest" /> + <wsdl:output message="tns:tgAssignedProjectsResponse" /> + </wsdl:operation> + <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> + <ul> + <li> + <b>Input Parameters</b> getAllProjectsRequest, with elements - <ul><li>auth - String, SessionID of user that wants to query + <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> + publicly</li> + <li>log - String for log information, optional</li> + </ul> + </li> + <li> + <b>Output Parameters</b> getAllProjectsResponse, with element - <ul><li> + <ul> + <li> project - projectInfo, can occur multiple times. - <br/> + <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 + <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> + 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> + <wsdl:input message="tns:getAllProjectsRequest" /> + <wsdl:output message="tns:getAllProjectsResponse" /> + </wsdl:operation> + <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> + <ul> + <li> + <b>Input Parameters</b> getAllProjectsRequest, with elements - <ul><li>auth - String, SessionID of user that wants to query + <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> + publicly</li> + <li>log - String for log information, optional</li> + </ul> + </li> + <li> + <b>Output Parameters</b> getDeactivatedProjectsResponse, with element - <ul><li> + <ul> + <li> project - projectInfo, can occur multiple times. - <br/> + <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 + <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> + 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> + <wsdl:input message="tns:getDeactivatedProjectsRequest" /> + <wsdl:output message="tns:getDeactivatedProjectsResponse" /> + </wsdl:operation> + <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> + <ul> + <li> + <b>Input Parameters</b> getLeaderRequest, with elements - <ul><li>auth - String, SessionID of user that wants to query + <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> + 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 + <ul> + <li>username - String holding ePPN of user, can occur multiple times. - </li></ul></li></ul> + </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> + <wsdl:input message="tns:getLeaderRequest" /> + <wsdl:output message="tns:getLeaderResponse" /> + </wsdl:operation> + <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 @@ -1582,269 +1387,794 @@ resources, and the subset of this list that matches will be returned. - <ul><li><b>Input Parameters</b> + <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 + <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> + 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 + <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> + occur multiple times.</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> + <wsdl:input message="tns:filterBySidRequest" /> + <wsdl:output message="tns:filterBySidResponse" /> + <wsdl:fault name="authenticationFault" message="tns:authenticationFault" /> + </wsdl:operation> + <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> + <ul> + <li> + <b>Input Parameters</b> getOwnerRequest, with elements - <ul><li>auth - String, SessionID of user that wants to query + <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> + 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> + <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> + <wsdl:input message="tns:getOwnerRequest" /> + <wsdl:output message="tns:getOwnerResponse" /> + <wsdl:fault name="authenticationFault" message="tns:authenticationFault" /> + </wsdl:operation> + <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> + <ul> + <li> + <b>Input Parameters</b> getMembersRequest, with elements - <ul><li>auth - String, SessionID of user that wants to query + <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> + 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 + <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> + 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> + <wsdl:input message="tns:getMembersRequest" /> + <wsdl:output message="tns:getMembersResponse" /> + <wsdl:fault name="authenticationFault" message="tns:authenticationFault" /> + </wsdl:operation> + <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> + <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> + <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> + <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> + <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> + <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> + <ul> + <li> + <b>Input Parameters</b> getFriendsRequest, with element - <ul><li>auth - String, SessionID of user that wants to query + <ul> + <li>auth - String, SessionID of user that wants to query for - friends</li></ul></li><li><b>Output Parameters</b> + 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> + <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> + </li> + </ul> </wsdl:documentation> - <wsdl:input message="tns:getFriendsRequest"/> - <wsdl:output message="tns:getFriendsResponse"/> - </wsdl:operation> -<!-- #### getRights #### //--> - <wsdl:operation name="getRights"> - <wsdl:documentation> + <wsdl:input message="tns:getFriendsRequest" /> + <wsdl:output message="tns:getFriendsResponse" /> + </wsdl:operation> + <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> + <ul> + <li> + <b>Input Parameters</b> getRightsRequest, with elements - <ul><li>auth - String, SessionID of user that wants to query + <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 + 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> + 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> + <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> + <wsdl:input message="tns:getRightsRequest" /> + <wsdl:output message="tns:getRightsResponse" /> + <wsdl:fault name="authenticationFault" message="tns:authenticationFault" /> + </wsdl:operation> + <wsdl:operation name="isPublic"> + <wsdl:documentation> Returns status of isPublic flag for a TextGridObject. - <ul><li><b>Input Parameters</b> + <ul> + <li> + <b>Input Parameters</b> isPublicRequest, with elements - <ul><li>auth - String, SessionID of user that wants to + <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> + 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 + <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> + 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> + <wsdl:input message="tns:isPublicRequest" /> + <wsdl:output message="tns:isPublicResponse" /> + </wsdl:operation> + <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> + <ul> + <li> + <b>Input Parameters</b> getNumberOfResourcesRequest, with elements - <ul><li>auth - String, SessionID of user that wants to + <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> + 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> + <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> + <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> + <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> + <wsdl:operation name="getSupportedUserAttributes"> + <wsdl:documentation>TODO</wsdl:documentation> + <wsdl:input message="tns:getSupportedUserAttributesRequest" /> + <wsdl:output message="tns:getSupportedUserAttributesResponse" /> + </wsdl:operation> + <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> + + <!-- ############################################################### --> + <!-- ## Port-Type-Definitionen --> + <!-- ############################################################### --> + + <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:getNumberOfResourcesRequest"/> - <wsdl:output message="tns:getNumberOfResourcesResponse"/> - </wsdl:operation> -<!-- #### deactivateProject #### //--> - <wsdl:operation name="deactivateProject"> - <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 @@ -1854,721 +2184,558 @@ that the project can be re-activated by manual modification of the database. - <ul><li><b>Input Parameters</b> + <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> + <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, + <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> + 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> + <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> + <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> + <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, + <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> + 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> + <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> + <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> + <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, + <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> + otherwise</li> + </ul> + </li> + <li> + <b>Faults</b> + <ul> + <li>authenticationFault</li> + <li>notEmptyFault</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> + <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> -<!-- #### 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> + <!-- ################################################################### --> + <!-- ## Binding --> + <!-- ################################################################### --> -<!-- #### 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> + <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"> + <soap:fault use="literal" name="unknownResourceFault" /> + </wsdl:fault> + </wsdl:operation> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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> + <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:fault name="authenticationFault"> + <soap:fault use="literal" name="authenticationFault" /> + </wsdl:fault> + </wsdl:operation> + <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> + <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> -<!-- #### 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> + <!-- ################################################################### --> + <!-- ## Service-Definition --> + <!-- ################################################################### --> - </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: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>