@ -12,13 +12,14 @@ use NCU\Security\Signature\Exceptions\IdentityNotFoundException;
use NCU\Security\Signature\Exceptions\SignatoryException ;
use OC\OCM\OCMSignatoryManager ;
use OCP\Capabilities\ICapability ;
use OCP\Capabilities\IInitialStateExcludedCapability ;
use OCP\IAppConfig ;
use OCP\IURLGenerator ;
use OCP\OCM\Exceptions\OCMArgumentException ;
use OCP\OCM\IOCMProvider ;
use Psr\Log\LoggerInterface ;
class Capabilities implements ICapability {
class Capabilities implements ICapability , IInitialStateExcludedCapability {
public const API_VERSION = '1.1' ; // informative, real version.
public function __construct (
@ -54,15 +55,13 @@ class Capabilities implements ICapability {
*/
public function getCapabilities () {
$url = $this -> urlGenerator -> linkToRouteAbsolute ( 'cloud_federation_api.requesthandlercontroller.addShare' );
$this -> provider -> setEnabled ( true );
$this -> provider -> setApiVersion ( self :: API_VERSION );
$pos = strrpos ( $url , '/' );
if ( $pos === false ) {
throw new OCMArgumentException ( 'generated route should contains a slash character' );
throw new OCMArgumentException ( 'generated route should contain a slash character' );
}
$this -> provider -> setEnabled ( true );
$this -> provider -> setApiVersion ( self :: API_VERSION );
$this -> provider -> setEndPoint ( substr ( $url , 0 , $pos ));
$resource = $this -> provider -> createNewResourceType ();
@ -87,6 +86,6 @@ class Capabilities implements ICapability {
$this -> logger -> warning ( 'cannot generate local signatory' , [ 'exception' => $e ]);
}
return [ 'ocm' => json_decode ( json_encode ( $this -> provider -> jsonSerialize ()), true )];
return [ 'ocm' => $this -> provider -> jsonSerialize ()];
}
}