adriangalilea
03/13/2024, 9:28 AMvroldanbet
03/13/2024, 10:39 AMvroldanbet
03/13/2024, 10:50 AMlocation->view_up
. The recursion is introduced via view_self = edit + reader
, as edit
causes the traversal of the folder to start moving down to children, which will find the same document that initiated the traversal.
A way to solve this is to not create the "joint" permission, only up and down permissions, and then use BulkCheckPermission
to always send 2 checks, one in one direction, and the other in the other direction.adriangalilea
03/13/2024, 10:56 AMadriangalilea
03/13/2024, 10:57 AMadriangalilea
03/13/2024, 10:58 AMvroldanbet
03/13/2024, 11:30 AMvroldanbet
03/13/2024, 11:31 AMvroldanbet
03/13/2024, 11:35 AMvroldanbet
03/13/2024, 11:37 AMuser:someone
has access to folder:foo
because they have access to one of foo indirect children
zed permission check folder:foo view_down user:someone --explain
true
โ folder:foo view_down (11.2ms)
โโโ โ folder:bar view_down (6.4ms)
โ โโโ โ document:x view_down (3.2ms)
โ โ โโโ โ document:x reader (99.84ยตs)
โ โ โโโ user:someone
โ โโโ โจ folder:bar reader (99.84ยตs)
โโโ โจ folder:foo reader (99.84ยตs)
โโโ โจ folder:foo edit_down (9.900032ms)
โโโ โจ folder:bar edit_down (4.499968ms)
โ โโโ โจ document:x edit_down (699.904ยตs)
โ โ โโโ โจ document:x editor (0s)
โ โ โโโ โจ document:x admin_down (300.032ยตs)
โ โ โโโ โจ document:x owner (100.096ยตs)
โ โ โโโ โจ document:x adminer (99.84ยตs)
โ โโโ โจ folder:bar editor (0s)
โ โโโ โจ folder:bar admin_down (1.6ms)
โ โโโ โจ document:x admin_down (300.032ยตs)
โ โ โโโ โจ document:x owner (0s)
โ โ โโโ โจ document:x adminer (0s)
โ โโโ โจ folder:bar owner (0s)
โ โโโ โจ folder:bar adminer (0s)
โโโ โจ folder:foo editor (100.096ยตs)
โโโ โจ folder:foo admin_down (5.999872ms)
โโโ โจ folder:bar admin_down (5.199872ms)
โ โโโ โจ document:x admin_down (1.299968ms)
โ โ โโโ โจ document:x owner (100.096ยตs)
โ โ โโโ โจ document:x adminer (0s)
โ โโโ โจ folder:bar owner (0s)
โ โโโ โจ folder:bar adminer (0s)
โโโ โจ folder:foo owner (100.096ยตs)
โโโ โจ folder:foo adminer (0s)
vroldanbet
03/13/2024, 11:39 AM--explain
does not seem to show the traversed path when there is recursion, even when the error message itself suggests to use --explain
, that seems unexpected.
If it did, it would show how you are going from document
back to parent folder
and then again to child document
, which recurses until reaching max depth limit of 50adriangalilea
03/13/2024, 11:58 AMadriangalilea
03/13/2024, 12:00 PMadriangalilea
03/13/2024, 12:03 PMadriangalilea
03/13/2024, 12:03 PMadriangalilea
03/13/2024, 12:09 PMvroldanbet
03/13/2024, 6:44 PMvroldanbet
03/13/2024, 6:46 PMadriangalilea
03/13/2024, 10:38 PM