Config option to choose between depth-first and breadth-first inheritance resolution
See original GitHub issueLuckPerms-Bukkit-4.0.117 (dev 516) Paper dev 1317 (Spigot 1.12.2)
@lucko Global permissions seem to have a higher priority than individual world ones. I have a group that is given worldedit permissions. These permissions are given globally so they can use worldedit in any world. I also negate the worldedit permissions in a specific world with a wildcard because I do not want those players to be able to use worldedit in that world. However, they are still able to make a selection with the worldedit wand, as well as use worldedit commands (i.e. /cut
) in that world.
LP verbose reports they still have permission to use that worldedit command / utility. Thus this leads me to believe that the global inherited permissions are receiving a higher priority over individual world defined ones.
Group permissions. https://paste.ubuntu.com/26468886/
Issue Analytics
- State:
- Created 6 years ago
- Comments:16 (4 by maintainers)
Specific permissions override wildcard permissions. See this page for all details: https://github.com/lucko/LuckPerms/wiki/Advanced-Setup#permission-calculation
Ah okay, I see the issue then.
LuckPerms currently uses depth-first search to resolve inheritance rules.
https://en.wikipedia.org/wiki/Depth-first_search
This means that when the primary group is builder, the inheritance is resolved in this order:
Player's own permissions
, thenbuilder
, thenmember
, thendonor
.This is because the deeper inheritance tree behind the
builder
group (in this case member) is resolved, before the algorithm backtracks and checks ondonor
.What you’re effectively requesting is an option to use a breadth-first search.
https://en.wikipedia.org/wiki/Breadth-first_search
I think that’s a valid request - but it will require quite a bit of work to support it.