96 lines
3.3 KiB
PHP
96 lines
3.3 KiB
PHP
<?php
|
|
|
|
if (!defined('DC_CONTEXT_ADMIN')) { return; }
|
|
|
|
|
|
$apiKey = new ApiKey;
|
|
|
|
// Setting default parameters if missing configuration
|
|
$core->blog->settings->addNamespace('rest');
|
|
if (is_null($core->blog->settings->rest->rest_active)) {
|
|
try {
|
|
$core->blog->settings->rest->put('rest_active',false,'boolean',true);
|
|
$core->blog->settings->rest->put('rest_is_open',false,'boolean',true);
|
|
$core->blog->settings->rest->put('rest_send_cors_headers',true,'boolean',true);
|
|
$core->blog->triggerBlog();
|
|
http::redirect($p_url);
|
|
}
|
|
catch (Exception $e) {
|
|
$core->error->add($e->getMessage());
|
|
}
|
|
}
|
|
// Getting current parameters
|
|
$active = (boolean)$core->blog->settings->rest->rest_active;
|
|
$openApi = (boolean)$core->blog->settings->rest->rest_is_open;
|
|
$sendHeaders =(boolean)$core->blog->settings->rest->rest_send_cors_headers;
|
|
|
|
//Sousmission Formulaire parametres
|
|
if ((!empty($_POST['saveconfig'])) && ($core->auth->isSuperAdmin())) {
|
|
try
|
|
{
|
|
$core->blog->settings->addNameSpace('rest');
|
|
$active = (empty($_POST['active'])) ? false : true;
|
|
$core->blog->settings->rest->put('rest_active',$active,'boolean');
|
|
|
|
$openApi = (empty($_POST['open'])) ? false : true;
|
|
$core->blog->settings->rest->put('rest_is_open',$openApi,'boolean');
|
|
|
|
$sendHeaders = (empty($_POST['sendHeaders'])) ? false : true;
|
|
$core->blog->settings->rest->put('rest_send_cors_headers',$sendHeaders,'boolean');
|
|
|
|
dcPage::addSuccessNotice(__('Configuration successfully updated.'));
|
|
http::redirect($p_url);
|
|
}catch (Exception $e)
|
|
{
|
|
$core->error->add($e->getMessage());
|
|
}
|
|
}
|
|
//Sousmission Formulaire Reset API Key
|
|
if(!empty($_POST['resetApiKey'])){
|
|
$core->blog->settings->addNameSpace('rest');
|
|
$apiKey -> new_key($core->auth->userID());
|
|
dcPage::addSuccessNotice(__('Your new key is').' '.$apiKey->key);
|
|
}
|
|
|
|
|
|
?>
|
|
<html>
|
|
<head>
|
|
<title><?php echo __('REST API configuration'); ?></title>
|
|
</head>
|
|
<body>
|
|
<h2>Documentation</h2>
|
|
<p><a href="<?php echo $core->blog->url."rest/documentation" . '">' . __('Documentation and test interface Swagger UI') .'</a></p>'; ?>
|
|
<h2><?php echo __('Your API key');?></h2>
|
|
<?php echo $apiKey-> get_dc_admin_form($core->auth->userID()); ?>
|
|
|
|
<?php
|
|
//Seulement si administrateur:
|
|
if($core->auth->isSuperAdmin()):
|
|
?>
|
|
<h2><?php echo __('Rest API configuration'); ?></h2>
|
|
<form method="post" action="<?php http::getSelfURI(); ?>">
|
|
<p>
|
|
<?php echo form::checkbox('active', 1, $active); ?>
|
|
<label class="classic" for="active"> <?php echo __('Enable REST API');?></label>
|
|
</p>
|
|
<p>
|
|
<?php echo form::checkbox('open', 1, $openApi); ?>
|
|
<label class="classic" for="open"> <?php echo __('API is open without key');?></label>
|
|
</p>
|
|
<p class="info"><?php echo __("If checked, few methods as GET will be allowed to externals users without API key. However, they won't be able to request for non public content."); ?></p>
|
|
<?php echo $core->formNonce(); ?>
|
|
<p>
|
|
<?php echo form::checkbox('sendHeaders', 1, $sendHeaders); ?>
|
|
<label class="classic" for="sendHeaders"> <?php echo __('Send Coors headers');?></label>
|
|
</p>
|
|
<p>
|
|
<input type="submit" name="saveconfig" value="<?php echo __('Save configuration'); ?>" />
|
|
</p>
|
|
|
|
</from>
|
|
<?php
|
|
endif;
|
|
?>
|
|
</body>
|
|
</html>
|