+ if (isset($colconf['visible'])) {
+ if ($colconf['visible'] == 'admin' and empty($User['admin'])) {
+ $colconf['visible'] = FALSE;
+ continue;
+ }
+ }
+ else {
+ $colconf['visible'] = TRUE;
+ }
+
+ if (!isset($colconf['filename'])) {
+ continue; # exceptional storage
+ }
+
+ if (isset($colconf['values'])) {
+ if (!file_exists($colconf['filename'])) {
+ $colconf['visible'] = FALSE;
+ continue;
+ }
+ $tags = [];
+ foreach (glob($colconf['filename'] . '/*') as $tag) {
+ $tagname = pathinfo($tag, PATHINFO_BASENAME);
+ $target = "$tag/{$user['name']}";
+ $val = file_exists($target);
+ $tagopt = &$colconf['values'][$tagname] ?: [];
+ $tagopt['value'] = $val;
+ if (!is_writable($tag)) {
+ continue; # locked tag directory
+ }
+ if ($val and !is_writable($target)) {
+ continue; # existing file locked
+ }
+ $tagopt['target'] = $target;
+ }
+ }
+