diff --git a/admin/api_keys.php b/admin/api_keys.php index ae531ea..a2bbbfb 100644 --- a/admin/api_keys.php +++ b/admin/api_keys.php @@ -28,10 +28,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['create_key'])) { if ($name === '') { $error = __('error_name_req'); } else { + $scope = ($_POST['scope'] ?? 'write') === 'read' ? 'read' : 'write'; + $rate = max(0, (int)($_POST['rate_limit'] ?? 0)); $k = ApiKey::generate(); $db->execute( - "INSERT INTO api_keys (name, key_prefix, key_hash, created_by) VALUES (?, ?, ?, ?)", - [$name, $k['prefix'], $k['hash'], $_SESSION['user_id']] + "INSERT INTO api_keys (name, key_prefix, key_hash, scope, rate_limit, created_by) VALUES (?, ?, ?, ?, ?, ?)", + [$name, $k['prefix'], $k['hash'], $scope, $rate, $_SESSION['user_id']] ); $auth->writeAuditLog($_SESSION['user_id'], 'api_key_create', 'api_key', null, "API-Key '$name' erstellt"); $newKey = $k['plain']; @@ -104,10 +106,21 @@ code { font-family:monospace; background:var(--bg-hover); padding:2px 6px; borde