question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Config option to choose between depth-first and breadth-first inheritance resolution

See original GitHub issue

LuckPerms-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:closed
  • Created 6 years ago
  • Comments:16 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
BrainStonecommented, Jan 27, 2018

Specific permissions override wildcard permissions. See this page for all details: https://github.com/lucko/LuckPerms/wiki/Advanced-Setup#permission-calculation

1reaction
luckocommented, Feb 10, 2018

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, then builder, then member, then donor.

This is because the deeper inheritance tree behind the builder group (in this case member) is resolved, before the algorithm backtracks and checks on donor.

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.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Config option to choose between depth-first and breadth-first ...
This means that when the primary group is builder, the inheritance is resolved in this order: Player's own permissions , then builder ,...
Read more >
Is mro order depth-first or breadth-first? - python - Stack Overflow
The C3 linearisation is neither depth-first nor breadth-first in complex multiple inheritance hierarchies. In some sense, it is:.
Read more >
Configuration | Wiki - LuckPerms
LuckPerms will attempt to resolve configuration settings from various sources ... This is chosen by default when the option is set to 'none'...
Read more >
Models - Django documentation
Models¶. A model is the single, definitive source of information about your data. It contains the essential fields and behaviors of the data...
Read more >
Breadth-First Search (BFS) and Depth-First Search (DFS) for ...
Breadth-First Search and Depth-First Search are two techniques of traversing graphs and trees. In this tutorial, we will focus mainly on BFS ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found