2014-11-01 36 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插件。

相關問題