Skip to content

Commit 4087c1c

Browse files
author
david
committed
Refactor permission handling logic in GroupManager classes
Update the `addPermission` method to delegate to `setPermission` for consistency. Modify `setPermission` to handle permission state checks and removal/addition of permissions correctly, ensuring accurate toggle behavior.
1 parent 68b1e55 commit 4087c1c

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

plugin/src/main/java/net/thenextlvl/service/model/group/GroupManagerGroup.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,7 @@ public TriState checkPermission(String permission) {
8686

8787
@Override
8888
public boolean addPermission(String permission) {
89-
if (!checkPermission(permission).equals(TriState.NOT_SET)) return false;
90-
group().addPermission(permission);
91-
return true;
89+
return setPermission(permission, true);
9290
}
9391

9492
@Override
@@ -98,8 +96,11 @@ public boolean removePermission(String permission) {
9896

9997
@Override
10098
public boolean setPermission(String permission, boolean value) {
101-
removePermission(!value ? "-" + permission : permission);
102-
return value ? addPermission(permission) : addPermission("-" + permission);
99+
var state = checkPermission(permission).toBoolean();
100+
if (state != null && state.equals(value)) return false;
101+
removePermission(value ? "-" + permission : permission);
102+
group().addPermission(!value ? "-" + permission : permission);
103+
return true;
103104
}
104105

105106
@Override

plugin/src/main/java/net/thenextlvl/service/model/permission/GroupManagerPermissionHolder.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ public TriState checkPermission(String permission) {
3434

3535
@Override
3636
public boolean addPermission(String permission) {
37-
if (!checkPermission(permission).equals(TriState.NOT_SET)) return false;
38-
user().addPermission(permission);
39-
return true;
37+
return setPermission(permission, true);
4038
}
4139

4240
@Override
@@ -46,7 +44,11 @@ public boolean removePermission(String permission) {
4644

4745
@Override
4846
public boolean setPermission(String permission, boolean value) {
49-
return false;
47+
var state = checkPermission(permission).toBoolean();
48+
if (state != null && state.equals(value)) return false;
49+
removePermission(value ? "-" + permission : permission);
50+
user().addPermission(!value ? "-" + permission : permission);
51+
return true;
5052
}
5153

5254
@Override

0 commit comments

Comments
 (0)