core (memory): files are now public by default except for those in root directory:

using public permissions by default makes permissions change more easy as we don't have to
recursively change all permissions of sub files when changing directory. Root directories
are private by default.
This commit is contained in:
Goffi 2020-08-01 16:02:41 +02:00
commit 800fbd3f7c
2 changed files with 10 additions and 2 deletions

View file

@ -1222,7 +1222,15 @@ class Memory(object):
perm_data = file_data["access"][perm]
perm_type = perm_data["type"]
except KeyError:
raise exceptions.PermissionError()
# No permission is set.
# If we are in a root file/directory, we deny access
# otherwise, we use public permission, as the parent directory will
# block anyway, this avoid to have to recursively change permissions for
# all sub directories/files when modifying a permission
if not file_data.get('parent'):
raise exceptions.PermissionError()
else:
perm_type == C.ACCESS_TYPE_PUBLIC
if perm_type == C.ACCESS_TYPE_PUBLIC:
continue
elif perm_type == C.ACCESS_TYPE_WHITELIST:

View file

@ -1426,7 +1426,7 @@ class Updater(object):
)
statements.extend([
f"INSERT INTO files({cols}) SELECT {old_cols} FROM files_old",
f"DROP TABLE files_old",
"DROP TABLE files_old",
])
statements.extend(Updater.indexData2Raw(index))
return statements