Skip to content

v3.1.1 — Conflicting group rights across folder levels

Choose a tag to compare

@Rikdekker Rikdekker released this 24 Sep 05:08
· 35 commits to main since this release

Fixed

Conflicting group rights still cancelled each other out across folder levels. (#116)

3.1.0 merged ACL rules that sat on the same path, but that is not the shape administrators actually produce — they set a right on a department folder and another on the space above it. Those per-path results were still folded onto each other in path order, so the deeper rule decided the outcome and one of the user's two groups was ignored.

groupfolders combines inherited rules in two ways, switched by the acl-inherit-per-user app config, and IntraVox implemented only the default one without ever reading the setting. It now reads it and reproduces both modes, so an intranet agrees with the file list beside it either way.

Two further divergences from upstream came out of the same reading:

  • a per-user rule was applied last and allowed to overwrite the group rules; upstream puts the user mapping in the same pool, where allow still beats deny;
  • rules were matched on the mapping id alone, so a group and a Team sharing an id string were folded into one accumulator. They are two id spaces and are now kept apart, which also keeps a federated user@remote uid on its own.

Verified against a live Nextcloud with groupfolders ACLs on: IntraVox equals ACLManager & folder-grant in both modes on the reported rule shape (update denied in path mode, allowed in per-mapping mode), matching what Files shows the user.

Worth checking on your install: whether acl-inherit-per-user is on decides whether an allow from one group survives a deny from another deeper down. It is off by default, which is groupfolders' own default and what Files does.

Changed

Dutch, French and Spanish are complete again. The 28 feed strings that shipped untranslated in 3.1.0 are translated, along with the older gaps Spanish still carried: 137 strings in total, all three languages at 1409/1409. German reached 100% through the community in the same window.


Full changelog: https://github.com/nextcloud/IntraVox/blob/main/CHANGELOG.md