diff --git a/nc-connector-edit-data.php b/nc-connector-edit-data.php new file mode 100644 index 0000000..99e82f8 --- /dev/null +++ b/nc-connector-edit-data.php @@ -0,0 +1,84 @@ +'Bratonien Tools ist nicht aktiv.')); + exit; +} +if (!function_exists('is_admin') || !is_admin()) +{ + http_response_code(403); + echo json_encode(array('error'=>'Administratorrechte erforderlich.')); + exit; +} + +require_once(BRATONIEN_TOOLS_PATH.'include/nc_connector.inc.php'); +require_once(BRATONIEN_TOOLS_PATH.'include/nc_connector_manage.inc.php'); +require_once(BRATONIEN_TOOLS_PATH.'include/nc_connector_connection_scope.inc.php'); + +$id = (int)($_GET['connection_id'] ?? 0); +$connection = bratonien_tools_nc_connector_connection($id, true); +if (!$connection) +{ + http_response_code(404); + echo json_encode(array('error'=>'Connector-Verbindung wurde nicht gefunden.')); + exit; +} + +$config = isset($connection['config']) && is_array($connection['config']) ? $connection['config'] : array(); +$credentials = array(); +try +{ + $credentials = bratonien_tools_nc_connector_scoped_secret($connection); +} +catch (Throwable $e) +{ + $credentials = array(); +} + +$storages = array(); +foreach ((array)($config['storages'] ?? array()) as $storage) +{ + $storages[] = array( + 'storage_id'=>(string)($storage['storage_id'] ?? ''), + 'source_prefix'=>(string)($storage['source_prefix'] ?? ''), + 'local_mount'=>(string)($storage['local_mount'] ?? ''), + ); +} + +$payload = array( + 'id'=>(int)$connection['id'], + 'name'=>(string)$connection['name'], + 'adapter'=>(string)$connection['adapter'], + 'enabled'=>(bool)$connection['enabled'], + 'takeover_state'=>(string)$connection['takeover_state'], + 'source_mode'=>(string)($config['source_mode'] ?? ''), + 'legacy'=>array( + 'host'=>(string)($config['host'] ?? ''), + 'port'=>(string)($config['port'] ?? '5432'), + 'database'=>(string)($config['database'] ?? ''), + 'user'=>(string)($config['user'] ?? ''), + 'has_db_password'=>trim((string)($credentials['db_password'] ?? '')) !== '', + 'source_view'=>(string)($config['source_view'] ?? ''), + 'activity_view'=>(string)($config['activity_view'] ?? ''), + 'gallery_root'=>(string)($config['gallery_root'] ?? ''), + 'quiet_seconds'=>(int)($config['quiet_seconds'] ?? 120), + 'max_wait_seconds'=>(int)($config['max_wait_seconds'] ?? 900), + 'full_sync_seconds'=>(int)($config['full_sync_seconds'] ?? 86400), + 'storages'=>$storages, + ), +); + +echo json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);