2014-11-01 14 views
0

我试图创建从我的Linux命令行CKAN数据集(包)之间的关系用下面的命令如何在没有API密钥的情况下禁用CKAN package_relationship_create API函数执行?

curl -v http://192.168.1.200/ckan/api/action/package_relationship_create -d '{"subject":"rkb-explorer-irit","object":"rkb-explorer-wiki","type":"dependency_of","comment":"some comment"}' -H "Authorization:76985a7a-f550-4b8d-8352-d7b828460fdc" 

,并与下面的PHP代码

 $postFields = array("subject" => $subject, "object" => $object, "type" => $type, "comment" => $comment); 

     $ch = curl_init($url); 

     $options = array( 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_HTTPHEADER => array('Content-type: application/json'), 
     CURLOPT_POST => true, 
     CURLOPT_POSTFIELDS => json_encode($postFields), 
     CURLOPT_HTTPAUTH => $apiKey 
     ); 

     curl_setopt_array($ch, $options); 

     $result = curl_exec($ch); 

和它的作品。但我有一个授权问题。无论我是否提供API密钥,都会创建关系!

那么,如何配置我的CKAN来禁用这种情况?当我尝试从命令行创建没有API密钥的数据集时,它拒绝我,这种情况是可以的。

正如我所说,我想禁用任何创建,更新或删除错误的API和没有API的行动。我如何做到这一点?

+0

有人帮忙? – milic 2014-11-03 16:01:45

回答

0

您可以编写一个IAuthFunctions插件,将授权行为更改为您想要的。请参阅文档中的CKAN扩展部分,其中包含一个示例IAuthFunctions插件。

相关问题