implemented a comprehensive Nextcloud file sharing system with support for user, group, and public link shares with gating based on server-side permissions; added sharing management interfaces including a share sheet; updated the file list with visual badges for incoming shares and improved OCS API response handling.

This commit is contained in:
2026-06-02 21:42:08 +02:00
parent b6d06dd3b4
commit baa26a6e79
33 changed files with 2453 additions and 29 deletions
@@ -0,0 +1,18 @@
import '../webdav/queries/list_files/cacheable_file.dart';
/// Converts a [CacheableFile.path] (relative to the WebDAV files root, folders
/// ending in `/`) into the path the OCS `files_sharing` API expects: rooted
/// with a single leading slash and without a trailing slash on folders.
///
/// Examples:
/// '' -> '/' (files root)
/// 'Documents/x.pdf' -> '/Documents/x.pdf'
/// 'Documents/' -> '/Documents'
/// '/Shared/a/' -> '/Shared/a'
String ocsPathFor(String webdavPath) {
final trimmed = webdavPath.replaceAll(RegExp(r'^/+|/+$'), '');
return trimmed.isEmpty ? '/' : '/$trimmed';
}
/// Convenience wrapper for a [CacheableFile].
String ocsPathOf(CacheableFile file) => ocsPathFor(file.path);