diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/profiles/LocalProfilesProvider.java b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/profiles/LocalProfilesProvider.java index e7b7e662..f0b83016 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/profiles/LocalProfilesProvider.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/profiles/LocalProfilesProvider.java @@ -79,7 +79,25 @@ public void delete(UncompletedProfile profile) { @Override public Set getProfiles(Client client) { - return new HashSet<>(profilesMap.values()); + if(client == null) { + return new HashSet<>(profilesMap.values()); + } + if(!client.isAuth) { + return new HashSet<>(); + } + Set profiles = new HashSet<>(); + for(var p : profilesMap.entrySet()) { + var uuid = p.getKey(); + var profile = p.getValue(); + if(profile.getProfile() != null && profile.getProfile().isLimited()) { + if(client.isAuth && client.permissions != null && client.permissions.hasPerm(String.format("launchserver.profile.%s.show", uuid))) { + profiles.add(profile); + } + } else { + profiles.add(profile); + } + } + return profiles; } @Override