diff --git a/html/forms/token-item-create.inc.php b/html/forms/token-item-create.inc.php new file mode 100644 index 0000000000..dc6da67c38 --- /dev/null +++ b/html/forms/token-item-create.inc.php @@ -0,0 +1,44 @@ + + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if(!is_numeric($_POST['user_id']) || !isset($_POST['token'])) +{ + echo('ERROR: error with data, please ensure a valid user and token have been specified.'); + exit; +} +elseif(strlen($_POST['token']) > 32) +{ + echo('ERROR: The token is more than 32 characters'); + exit; +} +elseif(strlen($_POST['token']) < 16) +{ + echo('ERROR: The token is less than 16 characters'); + exit; +} +else +{ + $create = dbInsert(array('user_id' => $_POST['user_id'], 'token_hash' => $_POST['token'], 'description' => $_POST['description']), 'api_tokens'); + if($create > '0') + { + echo('API token has been created'); + $_SESSION['api_token'] = TRUE; + exit; + } + else + { + echo('ERROR: An error occurred creating the API token'); + exit; + } +} diff --git a/html/forms/token-item-remove.inc.php b/html/forms/token-item-remove.inc.php new file mode 100644 index 0000000000..1b4522f39d --- /dev/null +++ b/html/forms/token-item-remove.inc.php @@ -0,0 +1,36 @@ + + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if(!is_numeric($_POST['token_id'])) +{ + echo('error with data'); + exit; +} +else +{ + if($_POST['confirm'] == 'yes') + { + $delete = dbDelete('api_tokens', '`id` = ?', array($_POST['token_id'])); + if($delete > '0') + { + echo('API token has been removed'); + exit; + } + else + { + echo('An error occurred removing the API token'); + exit; + } + } +} diff --git a/html/pages/api-access.inc.php b/html/pages/api-access.inc.php index 5f1ed58be7..adfb69e3b2 100644 --- a/html/pages/api-access.inc.php +++ b/html/pages/api-access.inc.php @@ -14,26 +14,109 @@ if ($_SESSION['userlevel'] == '10') { +if(empty($_POST['token'])) { + $_POST['token'] = bin2hex(openssl_random_pseudo_bytes(16)); +} ?>
+'); + if($_SESSION['api_token'] === TRUE) + { + echo(" + "); + unset($_SESSION['api_token']); + } +echo(' +| '.$api['username'].' | '.$api['token_hash'].' | '.$api['description'].' | - | Delete | +