Password has been changed.
"; String hash = userService.getHashByUID(visitor.getUid()); Cookie c = new Cookie("hash", hash); c.setMaxAge(365 * 24 * 60 * 60); response.addCookie(c); } break; case "main": NotifyOpts opts = new NotifyOpts(); opts.setRepliesEnabled(StringUtils.isNotEmpty(request.getParameter("jnotify"))); opts.setSubscriptionsEnabled(StringUtils.isNotEmpty(request.getParameter("subscr_notify"))); opts.setRecommendationsEnabled(StringUtils.isNotEmpty(request.getParameter("recomm"))); if (subscriptionService.setNotifyOptions(visitor, opts)) { result = "Notification options has been updated
"; } break; case "about": UserInfo info = new UserInfo(); info.setFullName(request.getParameter("fullname")); info.setCountry(request.getParameter("country")); info.setUrl(request.getParameter("url")); info.setDescription(request.getParameter("descr")); String avatarTmpPath = HttpUtils.receiveMultiPartFile(avatar, tmpDir).getHost(); if (StringUtils.isNotEmpty(avatarTmpPath)) { ImageUtils.saveAvatar(avatarTmpPath, visitor.getUid(), tmpDir, imgDir); } if (userService.updateUserInfo(visitor, info)) { applicationEventPublisher.publishEvent(new UserUpdatedEvent(this, visitor)); result = String.format("Your info is updated.
", visitor.getName()); } break; case "jid-del": // FIXME: stop using ugnich-csv in parameters String[] params = request.getParameter("delete").split(";", 2); boolean res = false; if (params[0].equals("xmpp")) { res = userService.deleteJID(visitor.getUid(), params[1]); } else if (params[0].equals("xmpp-unauth")) { res = userService.unauthJID(visitor.getUid(), params[1]); } if (res) { result = "Deleted. Back.
"; } else { result = "Error
"; } break; case "email-add": if (!emailService.verifyAddressByCode(visitor.getUid(), request.getParameter("account"))) { String authCode = HashUtils.generateHash(8); if (emailService.addVerificationCode(visitor.getUid(), request.getParameter("account"), authCode)) { Session session = Session.getDefaultInstance(System.getProperties()); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("noreply@mail.juick.com")); message.addRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("account"))); message.setSubject("Juick authorization link"); message.setText(String.format("Follow link to attach this email to Juick account:\n" + "http://juick.com/settings?page=auth-email&code=%s\n\n" + "If you don't know, what this mean - just ignore this mail.\n", authCode)); Transport.send(message); result = "Authorization link has been sent to your email. Follow it to proceed.
" + ""; } catch (MessagingException ex) { logger.error("mail exception", ex); throw new HttpBadRequestException(); } } } break; case "email-del": if (emailService.deleteEmail(visitor.getUid(), request.getParameter("account"))) { result = "Deleted. Back.
"; } else { result = "An error occured while deleting.
"; } break; case "email-subscr": if (emailService.setNotificationsEmail(visitor.getUid(), request.getParameter("account"))) { result = String.format("Saved! Will send notifications to %s." + "
", request.getParameter("account")); } else { result = "Disabled.
"; } break; case "twitter-del": crosspostService.deleteTwitterToken(visitor.getUid()); for (Cookie cookie : request.getCookies()) { if (cookie.getName().equals("request_token")) { cookie.setMaxAge(0); response.addCookie(cookie); } if (cookie.getName().equals("request_token_secret")) { cookie.setMaxAge(0); response.addCookie(cookie); } } result = ""; break; case "telegram-del": telegramService.deleteTelegramUser(visitor.getUid()); telegramService.getTelegramIdentifiers(Collections.singletonList(visitor)).forEach(t -> { telegramService.deleteChat(t); }); result = ""; break; case "facebook-disable": crosspostService.disableFBCrosspost(visitor.getUid()); result = ""; break; case "facebook-enable": crosspostService.enableFBCrosspost(visitor.getUid()); result = ""; break; case "vk-del": crosspostService.deleteVKUser(visitor.getUid()); result = ""; break; default: throw new HttpBadRequestException(); } model.addAttribute("title", "Настройки"); model.addAttribute("visitor", visitor); model.addAttribute("result", result); return "views/settings_result"; } }