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