diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php index 6af77aad6685df88d72bf675e53d5f88236b060e..d63f9496f177784c9a704c3c61f1c67c5faefd06 100755 --- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgExtra.class.php @@ -479,9 +479,41 @@ class TgExtra { $result = new resourcesetResponse(); // The return-result $filter = ""; // RBAC-filter $arrResource = Array(); // Resoult of the RBAC-search + $arrSessionRole = Array(); // The active roles of the session $i = 0; // Loop + $arrSessionRole = $this->rbac->sessionRoles( $inRequest->auth, false ); + + + $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); + $filter .= "(tgprojectid=" . $inRequest->project . ")"; + $filter .= "(|"; + + + for( $i = 0; $i < sizeof( $arrSessionRole ); $i++ ) { + + $filter .= "(rbacPermission=" . $arrSessionRole[$i] . ":-:read)"; + + } + + + $filter .= "))"; + + + $arrResource = $this->connection['resource']->search( $this->rbac->getConfiguration()->getValue( "resource", "base" ), + $filter, "sub", + Array( $this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" ), + $this->rbac->getConfiguration()->getValue( "resource", "namingattribute" ) ) ); + + for( $i = 0; $i < sizeof( $arrResource ); $i++ ) { + + $result->resource[] = $arrResource[$i][$this->rbac->getConfiguration()->getValue( "resource", "aliasattribute" )][0]; + + } + + +/* $filter = "(&" . $this->rbac->getConfiguration()->getValue( "resource", "filter" ); $filter .= "(tgprojectid=" . $inRequest->project . "))"; @@ -502,7 +534,7 @@ class TgExtra { } } - +*/ return $result; diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgSystem.class.php b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgSystem.class.php index 6157e34ed3e76828811624dfca0d085f7cd4aa6c..88d71ef5a001a384e0642a65d61efa26f93665a1 100755 --- a/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgSystem.class.php +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/TgSystem.class.php @@ -62,7 +62,7 @@ class TgSystem { // PHP creates an array! if( isset( $inRequest->roleset ) ) { - is_array( $inRequest->roleset ) ? $arrRole = $inRequest->roleset : array_push( &$arrRole, $inRequest->roleset ); + is_array( $inRequest->roleset ) ? $arrRole = $inRequest->roleset : $arrRole[] = $inRequest->roleset; } diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/phpinfo.php b/info.textgrid.middleware.tgauth.rbac/rbacSoap/phpinfo.php new file mode 100755 index 0000000000000000000000000000000000000000..cf6086080afbe99c14fae13df55267063246b755 --- /dev/null +++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/phpinfo.php @@ -0,0 +1,3 @@ +<?php +phpinfo(); +?>