-
Notifications
You must be signed in to change notification settings - Fork 41
Description
Thanks for the already good documentation. It helps with the most common administration tasks for this plugin. It should be enough for most users, but for more advanced users it lacks documentation of the permission prioritization and what effects the priority calculation.
Example
For permission debugging it's very important to understand which permissions are higher weighted than others.
For example: What is the priority list here for Testuser1 at Server1 in World1:
USER: Testuser1
test.awithTRUEfor GLOBAL ⁽¹⁾test.*withFALSEfor Server1.World1 ⁽²⁾test{a-c}withTRUEfor Server1 ⁽³⁾group.rang1(PRIMARY GROUP) [LEVEL: 30] ⁽⁴⁾group.rang2[LEVEL: 10] ⁽⁵⁾
RANG: group.rang1
weight.30test.awithTRUEfor GLOBAL ⁽⁶⁾*withFALSEfor Server1.(World1|World2) ⁽⁷⁾test{b-c}withTRUEfor Server1 ⁽⁸⁾
RANG: group.rang2
weight.10test.(a|d)withTRUEfor (Server1|Server2) ⁽⁹⁾test.*withTRUEfor GLOBAL ⁽¹⁰⁾group.rang3[LEVEL: 20] ⁽¹¹⁾
RANG: group.rang3
weight.20test.*withTRUEfor Server1.World1 ⁽¹²⁾test.awithFALSEfor GLOBAL ⁽¹³⁾testwithFALSEfor GLOBAL ⁽¹⁴⁾
It's hard (or for me: impossible) to say how the plugin would apply the permissions in the current context, without testing it out first. Of course, that is an extreme example, but it helps to understand how hard the analysis of permission problems can be, especially with the amount of different configuration settings, player contexts and everything else that can affect the calculation.
In this case, I defined the following configuration options:
- Usage of BungeeCord: Yes
primary-group-calculation: parents-by-weightinheritance-traversal-algorithm: depth-first-pre-order(I'm not sure if it's important. Does it only have a performance impact?)include-global: trueinclude-global-world: trueapply-global-groups: trueapply-global-world-groups: truemeta-value-selection-default: inheritance(I'm not sure how it affects the result.)apply-wildcards: trueapply-regex: trueapply-shorthand: trueapply-bukkit-child-permissions: true(It may be only important for theplugin.ymlof a plugin. So it has no effect in this case.)apply-bukkit-default-permissions: true(It may be only important for theplugin.ymlof a plugin. So it has no effect in this case.)
Priority (what we know)
So basically, I know the follow priorities, based on the configuration and the wiki article on https://luckperms.net/wiki/Advanced-Setup as well as my own experience with Minecraft permission systems, especially with LuckPerms:
- PLAYER permission > GROUP permission
- GLOBAL > SERVER > WORLD
test.*>test(because it is more detailed)test.a>test.*(because it is more detailed)test.a.*>test.*(because it is more detailed)- positive permission [
TRUE] > negative permission [FALSE] (older version of LP had an option for thisapply-default-negated-permissions-before-wildcards) - group wights:
weight.30>weight.20>weight.10 - temporary permission > non-temporary permission
- temporary permission for
1 hour> non-temporary permission for1 day
The article https://luckperms.net/wiki/Advanced-Setup is a good documentation, but it doesn't describe the order of the checks. What happens if I combine two or more of these points (for example: temporary GLOBAL permission for 1 hour vs. temporary PLAYER permission for 1 day)?
Some suggestions for existing wiki articles
https://luckperms.net/wiki/Configuration#meta-value-selection-default and https://luckperms.net/wiki/Configuration#meta-value-selection
I think they need improved descriptions: Is max-homes an example-permission like max-homes.<number> or a meta value like a prefix / expiration time? Maybe first write a definition of meta value and a link to https://luckperms.net/wiki/Meta-Commands or similar would be useful.
https://luckperms.net/wiki/Configuration#apply-bukkit-attachment-permissions
I think you should reference the player.addAttachment(); method in the description to make it more clear what you mean with "are able to add their own »permission attachment« to players".
Ideas for the wiki articles
- A documentation of the calculation process as text or diagram.
- Splitting the https://luckperms.net/wiki/Advanced-Setup article in two sites:
Advanced-Setup(= Shorthand Permissions, Regex, Wildcards) andPermission Calculationand sort both to "Features".