Merge pull request #233 from simoleo89/fix/permissions-inputs

fix(permissions): fail closed on stale ranks
This commit is contained in:
DuckieTM
2026-06-17 10:03:05 +02:00
committed by GitHub
5 changed files with 98 additions and 9 deletions
@@ -0,0 +1,21 @@
package com.eu.habbo.habbohotel.permissions;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class PermissionSettingContractTest {
@Test
void unknownPermissionValuesFailClosed() {
assertEquals(PermissionSetting.DISALLOWED, PermissionSetting.fromString(null));
assertEquals(PermissionSetting.DISALLOWED, PermissionSetting.fromString(""));
assertEquals(PermissionSetting.DISALLOWED, PermissionSetting.fromString("999"));
}
@Test
void knownPermissionValuesMapToExplicitSettings() {
assertEquals(PermissionSetting.ALLOWED, PermissionSetting.fromString("1"));
assertEquals(PermissionSetting.ROOM_OWNER, PermissionSetting.fromString("2"));
}
}
@@ -0,0 +1,35 @@
package com.eu.habbo.habbohotel.permissions;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
class RankPermissionContractTest {
@Test
void missingPermissionsFailClosed() {
Rank rank = new Rank(1);
assertFalse(rank.hasPermission(null, false));
assertFalse(rank.hasPermission("", false));
assertFalse(rank.hasPermission("acc_supporttool", false));
}
@Test
void roomOwnerPermissionOnlyPassesWithRoomRights() {
Rank rank = new Rank(1);
rank.setPermission("acc_placefurni", PermissionSetting.ROOM_OWNER);
assertFalse(rank.hasPermission("acc_placefurni", false));
assertTrue(rank.hasPermission("acc_placefurni", true));
}
@Test
void allowedPermissionPassesWithoutRoomRights() {
Rank rank = new Rank(1);
rank.setPermission("acc_supporttool", PermissionSetting.ALLOWED);
assertTrue(rank.hasPermission("acc_supporttool", false));
}
}