Always use wrapper to lock collection

Also run the hook after creation of the principal collection.
This commit is contained in:
Unrud 2016-08-07 17:14:47 +02:00 committed by GitHub
parent 4236077b04
commit ee5b8facda

View File

@ -284,12 +284,12 @@ class Application:
if user and is_authenticated: if user and is_authenticated:
principal_path = "/%s/" % user principal_path = "/%s/" % user
if self.authorized(user, principal_path, "w"): if self.authorized(user, principal_path, "w"):
with self.Collection.acquire_lock("r"): with self._lock_collection("r", user):
principal = next( principal = next(
self.Collection.discover(principal_path, depth="1"), self.Collection.discover(principal_path, depth="1"),
None) None)
if not principal: if not principal:
with self.Collection.acquire_lock("w"): with self._lock_collection("w", user):
self.Collection.create_collection(principal_path) self.Collection.create_collection(principal_path)
# Get content # Get content