Mercurial > libervia-backend
changeset 3317:83f25da66bec
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.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 01 Aug 2020 16:02:41 +0200 |
parents | 5369ce5bcecf |
children | 460606155bec |
files | sat/memory/memory.py sat/memory/sqlite.py |
diffstat | 2 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/sat/memory/memory.py Sat Aug 01 15:59:49 2020 +0200 +++ b/sat/memory/memory.py Sat Aug 01 16:02:41 2020 +0200 @@ -1222,7 +1222,15 @@ 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:
--- a/sat/memory/sqlite.py Sat Aug 01 15:59:49 2020 +0200 +++ b/sat/memory/sqlite.py Sat Aug 01 16:02:41 2020 +0200 @@ -1426,7 +1426,7 @@ ) 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