diff --git a/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.java b/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.java index 31661242..b505ab1f 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.java +++ b/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.java @@ -21,7 +21,6 @@ package de.steamwar.sql; import de.steamwar.sql.internal.*; import lombok.Getter; -import lombok.SneakyThrows; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; @@ -34,6 +33,7 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.logging.Level; import java.util.stream.Collectors; +import java.util.stream.Stream; public class SteamwarUser { private static final SecureRandom random = new SecureRandom(); @@ -61,7 +61,7 @@ public class SteamwarUser { private static final SelectStatement byName = table.selectFields("UserName"); private static final SelectStatement byDiscord = table.selectFields("DiscordId"); private static final SelectStatement byTeam = table.selectFields("Team"); - private static final SelectStatement getServerTeam = new SelectStatement<>(table, "SELECT * FROM UserData WHERE UserGroup != 'Member' AND UserGroup != 'YouTuber'"); + private static final SelectStatement getUsersWithPerm = new SelectStatement<>(table, "SELECT S.* FROM UserData S JOIN UserPerm P ON S.id = P.User WHERE P.Perm = ?"); private static final Statement updateName = table.update(Table.PRIMARY, "UserName"); private static final Statement updatePassword = table.update(Table.PRIMARY, "Password"); @@ -138,10 +138,21 @@ public class SteamwarUser { } } - public static List getServerTeam() { - return getServerTeam.listSelect(); + public static List getUsersWithPerm(UserPerm userPerm) { + return getUsersWithPerm.listSelect(userPerm); } + public static List getServerTeam() { + return Stream.of(getUsersWithPerm(UserPerm.PREFIX_ADMIN), + getUsersWithPerm(UserPerm.PREFIX_DEVELOPER), + getUsersWithPerm(UserPerm.PREFIX_MODERATOR), + getUsersWithPerm(UserPerm.PREFIX_SUPPORTER), + getUsersWithPerm(UserPerm.PREFIX_BUILDER) + ) + .flatMap(Collection::stream) + .collect(Collectors.toList()); + } + public static List getTeam(int teamId) { return byTeam.listSelect(teamId); }