WebGuild wg = new WebGuild().fromJson(data.getJSONObject("Guild")); wg.setDiscalRole(data.getBoolean("Sufficient-Role")); wg.setManageServer(data.getBoolean("Manager-Server")); if (!(wg.isManageServer() || wg.isDiscalRole())) {
@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); g.getSettings().setControlRole("everyone");
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; } }
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");
WebGuild g = (WebGuild) m.get("selected"); if (g.isDiscalRole()) { Calendar calendar = new Calendar(); calendar.setSummary(name); calendar.setTimeZone(tz.replace("___", "/")); try { com.google.api.services.calendar.Calendar service = CalendarAuth.getCalendarService(g.getSettings()); rule.setScope(scope).setRole("reader"); service.acl().insert(confirmed.getId(), rule).execute(); CalendarData calendarData = new CalendarData(Long.valueOf(g.getId()), 1); calendarData.setCalendarId(confirmed.getId()); calendarData.setCalendarAddress(confirmed.getId()); g.setCalendar(new WebCalendar().fromCalendar(calendarData, g.getSettings())); } catch (Exception ex) { Logger.getLogger().exception(null, "[WEB] Failed to confirm calendar.", ex, DashboardHandler.class);
JSONObject data = ServerSocketHandler.sendAndReceive(requestBody); WebGuild wg = new WebGuild().fromJson(data.getJSONObject("Guild")); m.put("embed", wg); } catch (IOException e) { Logger.getLogger().exception(null, "[Embed] Failed to get guild!", e, this.getClass()); m.put("embed", new WebGuild()); JSONObject data = ServerSocketHandler.sendAndReceive(requestBody); WebGuild wg = new WebGuild().fromJson(data.getJSONObject("Guild")); m.put("embed", wg); } catch (IOException e) { Logger.getLogger().exception(null, "[Embed] Failed to get guild!", e, this.getClass()); m.put("embed", new WebGuild());
@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"); } }
WebGuild g = (WebGuild) m.get("selected"); if (g.isDiscalRole()) { Announcement a = new Announcement(Long.valueOf(g.getId())); a.setAnnouncementChannelId(channelId); a.setMinutesBefore(Integer.valueOf(minutesRaw)); g.getAnnouncements().clear(); g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Long.valueOf(g.getId())));
if (g.isDiscalRole()) { try { Calendar cal = CalendarAuth.getCalendarService(g.getSettings()).calendars().get(g.getCalendar().getId()).execute(); cal.setSummary(queryParams.get("cal-name")); CalendarAuth.getCalendarService(g.getSettings()).calendars().update(g.getCalendar().getId(), cal).execute(); g.getCalendar().setName(queryParams.get("cal-name")); } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to update calendar name", e, DashboardHandler.class); if (g.isDiscalRole()) { try { Calendar cal = CalendarAuth.getCalendarService(g.getSettings()).calendars().get(g.getCalendar().getId()).execute(); cal.setDescription(queryParams.get("cal-desc")); CalendarAuth.getCalendarService(g.getSettings()).calendars().update(g.getCalendar().getId(), cal).execute(); g.getCalendar().setDescription(queryParams.get("cal-desc")); } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to update calendar description", e, DashboardHandler.class); if (g.isDiscalRole()) { try { Calendar cal = CalendarAuth.getCalendarService(g.getSettings()).calendars().get(g.getCalendar().getId()).execute(); cal.setTimeZone(queryParams.get("cal-tz").replace("___", "/")); CalendarAuth.getCalendarService(g.getSettings()).calendars().update(g.getCalendar().getId(), cal).execute(); g.getCalendar().setTimezone(queryParams.get("cal-tz")); } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to update calendar timezone", e, DashboardHandler.class);
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");
WebGuild g = (WebGuild) m.get("selected"); if (g.isDiscalRole()) { Calendar calendar = new Calendar(); calendar.setSummary(name); calendar.setTimeZone(tz.replace("___", "/")); try { com.google.api.services.calendar.Calendar service = CalendarAuth.getCalendarService(g.getSettings()); rule.setScope(scope).setRole("reader"); service.acl().insert(confirmed.getId(), rule).execute(); CalendarData calendarData = new CalendarData(Long.valueOf(g.getId()), 1); calendarData.setCalendarId(confirmed.getId()); calendarData.setCalendarAddress(confirmed.getId()); g.setCalendar(new WebCalendar().fromCalendar(calendarData, g.getSettings())); } catch (Exception ex) { Logger.getLogger().exception(null, "[WEB] Failed to confirm calendar.", ex, DashboardHandler.class);
JSONObject data = ServerSocketHandler.sendAndReceive(requestBody); WebGuild wg = new WebGuild().fromJson(data.getJSONObject("Guild")); m.put("embed", wg); } catch (IOException e) { Logger.getLogger().exception(null, "[Embed] Failed to get guild!", e, this.getClass()); m.put("embed", new WebGuild()); JSONObject data = ServerSocketHandler.sendAndReceive(requestBody); WebGuild wg = new WebGuild().fromJson(data.getJSONObject("Guild")); m.put("embed", wg); } catch (IOException e) { Logger.getLogger().exception(null, "[Embed] Failed to get guild!", e, this.getClass()); m.put("embed", new WebGuild());
@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"); } }
WebGuild g = (WebGuild) m.get("selected"); if (g.isDiscalRole()) { Announcement a = new Announcement(Long.valueOf(g.getId())); a.setAnnouncementChannelId(channelId); a.setMinutesBefore(Integer.valueOf(minutesRaw)); g.getAnnouncements().clear(); g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Long.valueOf(g.getId())));
if (g.isDiscalRole()) { try { Calendar cal = CalendarAuth.getCalendarService(g.getSettings()).calendars().get(g.getCalendar().getId()).execute(); cal.setSummary(queryParams.get("cal-name")); CalendarAuth.getCalendarService(g.getSettings()).calendars().update(g.getCalendar().getId(), cal).execute(); g.getCalendar().setName(queryParams.get("cal-name")); } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to update calendar name", e, DashboardHandler.class); if (g.isDiscalRole()) { try { Calendar cal = CalendarAuth.getCalendarService(g.getSettings()).calendars().get(g.getCalendar().getId()).execute(); cal.setDescription(queryParams.get("cal-desc")); CalendarAuth.getCalendarService(g.getSettings()).calendars().update(g.getCalendar().getId(), cal).execute(); g.getCalendar().setDescription(queryParams.get("cal-desc")); } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to update calendar description", e, DashboardHandler.class); if (g.isDiscalRole()) { try { Calendar cal = CalendarAuth.getCalendarService(g.getSettings()).calendars().get(g.getCalendar().getId()).execute(); cal.setTimeZone(queryParams.get("cal-tz").replace("___", "/")); CalendarAuth.getCalendarService(g.getSettings()).calendars().update(g.getCalendar().getId(), cal).execute(); g.getCalendar().setTimezone(queryParams.get("cal-tz")); } catch (Exception e) { Logger.getLogger().exception(null, "[WEB] Failed to update calendar timezone", e, DashboardHandler.class);
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); g.getSettings().setControlRole("everyone");
WebGuild wg = new WebGuild().fromJson(data.getJSONObject("Guild")); wg.setDiscalRole(data.getBoolean("Sufficient-Role")); wg.setManageServer(data.getBoolean("Manager-Server")); if (!(wg.isManageServer() || wg.isDiscalRole())) {
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/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"); } }