public WebRole getRole(long id) { for (WebRole wr : roles) { if (wr.getId() == id) return wr; } return null; }
public WebChannel getChannel(long id) { for (WebChannel wc : channels) { if (wc.getId() == id) return wc; } return null; }
public JSONObject toJson() { JSONObject data = new JSONObject(); data.put("Id", id); data.put("Name", name); data.put("IconUrl", iconUrl); data.put("Settings", settings.toJson()); if (botNick != null && !botNick.equals("")) data.put("BotNick", botNick); data.put("ManageServer", manageServer); data.put("DiscalRole", discalRole); JSONArray jRoles = new JSONArray(); for (WebRole wr : roles) { jRoles.put(wr.toJson()); } data.put("Roles", jRoles); JSONArray jChannels = new JSONArray(); for (WebChannel wc : channels) { jChannels.put(wc.toJson()); } data.put("Channels", jChannels); JSONArray jAnnouncements = new JSONArray(); for (Announcement a : announcements) { jAnnouncements.put(a.toJson()); } data.put("Announcements", jAnnouncements); data.put("Calendar", calendar.toJson()); return data; }
if (g.isManageServer()) { g.setBotNick(queryParams.get("bot-nick")); data.put("Reason", CrossTalkReason.UPDATE.name()); data.put("Realm", DisCalRealm.BOT_SETTINGS); data.put("Guild-Id", g.getId()); data.put("Bot-Nick", g.getBotNick()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); g.getSettings().setPrefix(queryParams.get("prefix")); DatabaseManager.getManager().updateSettings(g.getSettings()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); g.getSettings().setLang(queryParams.get("lang")); DatabaseManager.getManager().updateSettings(g.getSettings()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); WebRole role = g.getRole((Long.valueOf(queryParams.get("con-role")))); for (WebRole wr : g.getRoles()) { wr.setControlRole(false); role.setControlRole(true);
public static AuthenticationState authenticate(HttpServletRequest request) { if (!request.getMethod().equalsIgnoreCase("POST")) { Logger.getLogger().api("Denied '" + request.getMethod() + "' access", request.getRemoteAddr()); return new AuthenticationState(false).setStatus(405).setReason("Method not allowed"); return new AuthenticationState(true).setStatus(200).setReason("Success"); } else { Logger.getLogger().api("User using embed", request.getRemoteAddr(), request.getServerName(), request.getPathInfo()); return new AuthenticationState(true).setStatus(200).setReason("Success"); } else { UserAPIAccount acc = DatabaseManager.getManager().getAPIAccount(key); if (acc != null) { if (acc.isBlocked()) { Logger.getLogger().api("Attempted to use blocked API Key: " + acc.getAPIKey(), request.getRemoteAddr()); return new AuthenticationState(false).setStatus(401).setReason("Unauthorized"); } else { acc.setUses(acc.getUses() + 1); DatabaseManager.getManager().updateAPIAccount(acc); return new AuthenticationState(true).setStatus(200).setReason("Success"); return new AuthenticationState(false).setStatus(401).setReason("Unauthorized"); return new AuthenticationState(false).setStatus(400).setReason("Bad Request");
if (!authState.isSuccess()) { response.setStatus(authState.getStatus()); response.setContentType("application/json"); return authState.toJson(); Map m = DiscordAccountHandler.getHandler().getAccount(request); WebGuild g = (WebGuild) m.get("selected"); g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); settings = g.getSettings(); } else { long guildId = requestBody.getLong("guild_id");
@PostMapping(value = "/delete/calendar") public static String deleteCalendar(HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, String> queryParams) { try { //TODO: Handle multiple calendars... //String calId = request.queryParams("calendar-id"); Map m = DiscordAccountHandler.getHandler().getAccount(request); WebGuild g = (WebGuild) m.get("selected"); if (g.isManageServer()) { CalendarData data = DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId())); GuildSettings settings = DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())); CalendarUtils.deleteCalendar(data, settings); g.setCalendar(new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId())), DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())))); response.sendRedirect("/dashboard/guild/calendar"); return "redirect:/dashboard/guild/calendar"; } else { response.sendRedirect("/dashboard/guild/calendar"); return "redirect:/dashboard/guild/calendar"; } } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to delete/remove calendar!", e, DashboardHandler.class); response.setContentType("application/json"); response.setStatus(500); return ResponseUtils.getJsonResponseMessage("Internal Server Error"); } }
public WebGuild fromGuild(IGuild g) { id = g.getStringID(); name = g.getName(); iconUrl = g.getIconURL(); botNick = g.getClient().getOurUser().getNicknameForGuild(g); settings = DatabaseManager.getManager().getSettings(g.getLongID()); //Handle lists and stuffs for (IRole r : g.getRoles()) { roles.add(new WebRole().fromRole(r, settings)); } WebChannel all = new WebChannel(); all.setId(0); all.setName("All Channels"); all.setDiscalChannel(settings.getDiscalChannel().equalsIgnoreCase("all")); channels.add(all); for (IChannel c : g.getChannels()) { channels.add(new WebChannel().fromChannel(c, settings)); } announcements.addAll(DatabaseManager.getManager().getAnnouncements(g.getLongID())); calendar = new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Long.valueOf(id)), settings); return this; }
public static List<WebGuild> getGuilds(String userId, IDiscordClient client) { List<WebGuild> guilds = new ArrayList<>(); for (IGuild g : client.getGuilds()) { for (IUser m : g.getUsers()) { if (m.getStringID().equals(userId)) { WebGuild wg = new WebGuild().fromGuild(g); wg.setManageServer(PermissionChecker.hasManageServerRole(g, m)); wg.setDiscalRole(PermissionChecker.hasSufficientRole(g, m)); guilds.add(wg); } } } return guilds; } }
roles.add(new WebRole().fromJson(jRoles.getJSONObject(i))); channels.add(new WebChannel().fromJson(jChannels.getJSONObject(i))); calendar = new WebCalendar().fromJson(data.getJSONObject("Calendar"));
public UserAPIAccount getAPIAccount(String APIKey) { try { if (databaseInfo.getMySQL().checkConnection()) { String dataTableName = String.format("%sapi", databaseInfo.getPrefix()); String query = "SELECT * FROM " + dataTableName + " WHERE API_KEY = ?"; PreparedStatement statement = databaseInfo.getConnection().prepareStatement(query); statement.setString(1, APIKey); ResultSet res = statement.executeQuery(); boolean hasStuff = res.next(); if (hasStuff && res.getString("API_KEY") != null) { UserAPIAccount account = new UserAPIAccount(); account.setAPIKey(APIKey); account.setUserId(res.getString("USER_ID")); account.setBlocked(res.getBoolean("BLOCKED")); account.setTimeIssued(res.getLong("TIME_ISSUED")); account.setUses(res.getInt("USES")); statement.close(); return account; } else { //Data not present. statement.close(); return null; } } } catch (SQLException e) { Logger.getLogger().exception(null, "Failed to get API Account.", e, this.getClass()); } return null; }
@PostMapping(value = "/delete/announcement") public static String deleteAnnouncement(HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, String> queryParams) { try { String announcementId = queryParams.get("id"); Map m = DiscordAccountHandler.getHandler().getAccount(request); WebGuild g = (WebGuild) m.get("selected"); if (g.isManageServer()) { DatabaseManager.getManager().deleteAnnouncement(announcementId); //Update announcements list to display correctly. g.getAnnouncements().clear(); g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Long.valueOf(g.getId()))); } response.sendRedirect("/dashboard/guild/announcements"); return "redirect:/dashboard/guild/announcements"; } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to delete announcement!", e, DashboardHandler.class); response.setContentType("application/json"); response.setStatus(500); return ResponseUtils.getJsonResponseMessage("Internal Server Error"); } }
if (g.isManageServer()) { g.setBotNick(queryParams.get("bot-nick")); data.put("Reason", CrossTalkReason.UPDATE.name()); data.put("Realm", DisCalRealm.BOT_SETTINGS); data.put("Guild-Id", g.getId()); data.put("Bot-Nick", g.getBotNick()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); g.getSettings().setPrefix(queryParams.get("prefix")); DatabaseManager.getManager().updateSettings(g.getSettings()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); g.getSettings().setLang(queryParams.get("lang")); DatabaseManager.getManager().updateSettings(g.getSettings()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); WebRole role = g.getRole((Long.valueOf(queryParams.get("con-role")))); for (WebRole wr : g.getRoles()) { wr.setControlRole(false); role.setControlRole(true);
public static AuthenticationState authenticate(HttpServletRequest request) { if (!request.getMethod().equalsIgnoreCase("POST")) { Logger.getLogger().api("Denied '" + request.getMethod() + "' access", request.getRemoteAddr()); return new AuthenticationState(false).setStatus(405).setReason("Method not allowed"); return new AuthenticationState(true).setStatus(200).setReason("Success"); } else { Logger.getLogger().api("User using embed", request.getRemoteAddr(), request.getServerName(), request.getPathInfo()); return new AuthenticationState(true).setStatus(200).setReason("Success"); } else { UserAPIAccount acc = DatabaseManager.getManager().getAPIAccount(key); if (acc != null) { if (acc.isBlocked()) { Logger.getLogger().api("Attempted to use blocked API Key: " + acc.getAPIKey(), request.getRemoteAddr()); return new AuthenticationState(false).setStatus(401).setReason("Unauthorized"); } else { acc.setUses(acc.getUses() + 1); DatabaseManager.getManager().updateAPIAccount(acc); return new AuthenticationState(true).setStatus(200).setReason("Success"); return new AuthenticationState(false).setStatus(401).setReason("Unauthorized"); return new AuthenticationState(false).setStatus(400).setReason("Bad Request");
if (!authState.isSuccess()) { response.setStatus(authState.getStatus()); response.setContentType("application/json"); return authState.toJson(); Map m = DiscordAccountHandler.getHandler().getAccount(request); WebGuild g = (WebGuild) m.get("selected"); g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); settings = g.getSettings(); } else { long guildId = requestBody.getLong("guild_id");
@PostMapping(value = "/delete/calendar") public static String deleteCalendar(HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, String> queryParams) { try { //TODO: Handle multiple calendars... //String calId = request.queryParams("calendar-id"); Map m = DiscordAccountHandler.getHandler().getAccount(request); WebGuild g = (WebGuild) m.get("selected"); if (g.isManageServer()) { CalendarData data = DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId())); GuildSettings settings = DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())); CalendarUtils.deleteCalendar(data, settings); g.setCalendar(new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId())), DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())))); response.sendRedirect("/dashboard/guild/calendar"); return "redirect:/dashboard/guild/calendar"; } else { response.sendRedirect("/dashboard/guild/calendar"); return "redirect:/dashboard/guild/calendar"; } } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to delete/remove calendar!", e, DashboardHandler.class); response.setContentType("application/json"); response.setStatus(500); return ResponseUtils.getJsonResponseMessage("Internal Server Error"); } }
if (g.isManageServer()) { g.setBotNick(queryParams.get("bot-nick")); data.put("Reason", CrossTalkReason.UPDATE.name()); data.put("Realm", DisCalRealm.BOT_SETTINGS); data.put("Guild-Id", g.getId()); data.put("Bot-Nick", g.getBotNick()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); g.getSettings().setPrefix(queryParams.get("prefix")); DatabaseManager.getManager().updateSettings(g.getSettings()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); g.getSettings().setLang(queryParams.get("lang")); DatabaseManager.getManager().updateSettings(g.getSettings()); if (g.isManageServer()) { g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); WebRole role = g.getRole((Long.valueOf(queryParams.get("con-role")))); for (WebRole wr : g.getRoles()) { wr.setControlRole(false); role.setControlRole(true);
public static AuthenticationState authenticate(HttpServletRequest request) { if (!request.getMethod().equalsIgnoreCase("POST")) { Logger.getLogger().api("Denied '" + request.getMethod() + "' access", request.getRemoteAddr()); return new AuthenticationState(false).setStatus(405).setReason("Method not allowed"); return new AuthenticationState(true).setStatus(200).setReason("Success"); } else { Logger.getLogger().api("User using embed", request.getRemoteAddr(), request.getServerName(), request.getPathInfo()); return new AuthenticationState(true).setStatus(200).setReason("Success"); } else { UserAPIAccount acc = DatabaseManager.getManager().getAPIAccount(key); if (acc != null) { if (acc.isBlocked()) { Logger.getLogger().api("Attempted to use blocked API Key: " + acc.getAPIKey(), request.getRemoteAddr()); return new AuthenticationState(false).setStatus(401).setReason("Unauthorized"); } else { acc.setUses(acc.getUses() + 1); DatabaseManager.getManager().updateAPIAccount(acc); return new AuthenticationState(true).setStatus(200).setReason("Success"); return new AuthenticationState(false).setStatus(401).setReason("Unauthorized"); return new AuthenticationState(false).setStatus(400).setReason("Bad Request");
if (!authState.isSuccess()) { response.setStatus(authState.getStatus()); response.setContentType("application/json"); return authState.toJson(); Map m = DiscordAccountHandler.getHandler().getAccount(request); WebGuild g = (WebGuild) m.get("selected"); g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))); settings = g.getSettings(); } else { long guildId = requestBody.getLong("guild_id");
@PostMapping(value = "/delete/calendar") public static String deleteCalendar(HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, String> queryParams) { try { //TODO: Handle multiple calendars... //String calId = request.queryParams("calendar-id"); Map m = DiscordAccountHandler.getHandler().getAccount(request); WebGuild g = (WebGuild) m.get("selected"); if (g.isManageServer()) { CalendarData data = DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId())); GuildSettings settings = DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())); CalendarUtils.deleteCalendar(data, settings); g.setCalendar(new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId())), DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())))); response.sendRedirect("/dashboard/guild/calendar"); return "redirect:/dashboard/guild/calendar"; } else { response.sendRedirect("/dashboard/guild/calendar"); return "redirect:/dashboard/guild/calendar"; } } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to delete/remove calendar!", e, DashboardHandler.class); response.setContentType("application/json"); response.setStatus(500); return ResponseUtils.getJsonResponseMessage("Internal Server Error"); } }