MCPcopy Create free account
hub / github.com/error311/FileRise / deleteTree

Method deleteTree

src/FileRise/Support/ACL.php:313–340  ·  view source on GitHub ↗

Remove explicit ACL entries for a folder subtree. */

(string $folder)

Source from the content-addressed store, hash-verified

311
312 /** Remove explicit ACL entries for a folder subtree. */
313 public static function deleteTree(string $folder): array
314 {
315 $prefix = self::normalizeFolder($folder);
316 if ($prefix === '' || $prefix === 'root') {
317 return ['changed' => false, 'removed' => 0];
318 }
319
320 $acl = self::$cache ?? self::loadFresh();
321 if (!isset($acl['folders']) || !is_array($acl['folders'])) {
322 return ['changed' => false, 'removed' => 0];
323 }
324
325 $needle = $prefix . '/';
326 $removed = 0;
327 foreach (array_keys($acl['folders']) as $key) {
328 if ($key === $prefix || strpos($key, $needle) === 0) {
329 unset($acl['folders'][$key]);
330 $removed++;
331 }
332 }
333
334 if ($removed > 0) {
335 self::save($acl);
336 return ['changed' => true, 'removed' => $removed];
337 }
338
339 return ['changed' => false, 'removed' => 0];
340 }
341
342 private static function loadFresh(): array
343 {

Callers 3

deleteFolderMethod · 0.80

Calls 3

normalizeFolderMethod · 0.95
loadFreshMethod · 0.95
saveMethod · 0.95

Tested by

no test coverage detected