From 457357480791d92de9775c1274bfbd2b4a33423a Mon Sep 17 00:00:00 2001 From: Toxo2 Date: Thu, 25 Feb 2021 19:09:01 +0700 Subject: [PATCH 1/3] isFullDelete flag in SiteConfig --- docker/config.properties | 22 +++++---- .../java/ru/org/linux/spring/SiteConfig.java | 13 +++++ .../org/linux/user/DeregisterController.java | 49 +++++++++++++------ .../user/DeregisterRequestValidator.java | 15 ++++-- .../webapp/WEB-INF/config.properties.dist | 2 + src/main/webapp/WEB-INF/jsp/deregister.jsp | 22 ++++++--- src/main/webapp/WEB-INF/jsp/edit-profile.jsp | 8 +-- 7 files changed, 90 insertions(+), 41 deletions(-) diff --git a/docker/config.properties b/docker/config.properties index a54836ad08..48c15d5d79 100644 --- a/docker/config.properties +++ b/docker/config.properties @@ -24,28 +24,30 @@ Secret=secret recaptcha.private=6LcdM0oUAAAAANYhnHF3jmD1r1TvkiyPaWHjC83x recaptcha.public=6LcdM0oUAAAAAD2T-0ZW2HPkqZ5nFi1Y52U7BOMI +user.FullDelete = false + EnableHsts=false # admin.emailAddress=bugz@linux.org.ru admin.emailAddress=specify_your_real_email_if_you_want_receive_messages -# разрешение модераторам на редактирование комментов пользователей +# \u00d1\u0080\u00d0\u00b0\u00d0\u00b7\u00d1\u0080\u00d0\u00b5\u00d1\u0088\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bc\u00d0\u00be\u00d0\u00b4\u00d0\u00b5\u00d1\u0080\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d0\u00b0\u00d0\u00bc \u00d0\u00bd\u00d0\u00b0 \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00be\u00d0\u00b2 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9 comment.isModeratorAllowedToEdit=false -# время (в минутах), в течении которого с момента создания коммента его -# можно редактировать (не распространяется на модераторов). -# если не установлено или равно 0, то редактировать можно будет всегда. +# \u00d0\u00b2\u00d1\u0080\u00d0\u00b5\u00d0\u00bc\u00d1\u008f (\u00d0\u00b2 \u00d0\u00bc\u00d0\u00b8\u00d0\u00bd\u00d1\u0083\u00d1\u0082\u00d0\u00b0\u00d1\u0085), \u00d0\u00b2 \u00d1\u0082\u00d0\u00b5\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b8 \u00d0\u00ba\u00d0\u00be\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d0\u00be\u00d0\u00b3\u00d0\u00be \u00d1\u0081 \u00d0\u00bc\u00d0\u00be\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0 \u00d0\u00b5\u00d0\u00b3\u00d0\u00be +# \u00d0\u00bc\u00d0\u00be\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c (\u00d0\u00bd\u00d0\u00b5 \u00d1\u0080\u00d0\u00b0\u00d1\u0081\u00d0\u00bf\u00d1\u0080\u00d0\u00be\u00d1\u0081\u00d1\u0082\u00d1\u0080\u00d0\u00b0\u00d0\u00bd\u00d1\u008f\u00d0\u00b5\u00d1\u0082\u00d1\u0081\u00d1\u008f \u00d0\u00bd\u00d0\u00b0 \u00d0\u00bc\u00d0\u00be\u00d0\u00b4\u00d0\u00b5\u00d1\u0080\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d0\u00be\u00d0\u00b2). +# \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d0\u00bd\u00d0\u00b5 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00b8\u00d0\u00bb\u00d0\u00b8 \u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00bd\u00d0\u00be 0, \u00d1\u0082\u00d0\u00be \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00bc\u00d0\u00be\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d0\u00b1\u00d1\u0083\u00d0\u00b4\u00d0\u00b5\u00d1\u0082 \u00d0\u00b2\u00d1\u0081\u00d0\u00b5\u00d0\u00b3\u00d0\u00b4\u00d0\u00b0. comment.expireMinutesForEdit=30 -# разрешить редактировать комментарии, которые имеют ответы +# \u00d1\u0080\u00d0\u00b0\u00d0\u00b7\u00d1\u0080\u00d0\u00b5\u00d1\u0088\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0\u00d1\u0080\u00d0\u00b8\u00d0\u00b8, \u00d0\u00ba\u00d0\u00be\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d1\u008b\u00d0\u00b5 \u00d0\u00b8\u00d0\u00bc\u00d0\u00b5\u00d1\u008e\u00d1\u0082 \u00d0\u00be\u00d1\u0082\u00d0\u00b2\u00d0\u00b5\u00d1\u0082\u00d1\u008b comment.isEditingAllowedIfAnswersExists=false -# сколько скора должно быть у пользователя, чтобы он смог -# редактировать комментарии если не установлено, -# то редактировать могут все. Если установлено огромное -# число, то комментарии будут фактически отключены +# \u00d1\u0081\u00d0\u00ba\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00ba\u00d0\u00be \u00d1\u0081\u00d0\u00ba\u00d0\u00be\u00d1\u0080\u00d0\u00b0 \u00d0\u00b4\u00d0\u00be\u00d0\u00bb\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d1\u008c \u00d1\u0083 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f, \u00d1\u0087\u00d1\u0082\u00d0\u00be\u00d0\u00b1\u00d1\u008b \u00d0\u00be\u00d0\u00bd \u00d1\u0081\u00d0\u00bc\u00d0\u00be\u00d0\u00b3 +# \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0\u00d1\u0080\u00d0\u00b8\u00d0\u00b8 \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d0\u00bd\u00d0\u00b5 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00be, +# \u00d1\u0082\u00d0\u00be \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00bc\u00d0\u00be\u00d0\u00b3\u00d1\u0083\u00d1\u0082 \u00d0\u00b2\u00d1\u0081\u00d0\u00b5. \u00d0\u0095\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00be\u00d0\u00b3\u00d1\u0080\u00d0\u00be\u00d0\u00bc\u00d0\u00bd\u00d0\u00be\u00d0\u00b5 +# \u00d1\u0087\u00d0\u00b8\u00d1\u0081\u00d0\u00bb\u00d0\u00be, \u00d1\u0082\u00d0\u00be \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0\u00d1\u0080\u00d0\u00b8\u00d0\u00b8 \u00d0\u00b1\u00d1\u0083\u00d0\u00b4\u00d1\u0083\u00d1\u0082 \u00d1\u0084\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0087\u00d0\u00b5\u00d1\u0081\u00d0\u00ba\u00d0\u00b8 \u00d0\u00be\u00d1\u0082\u00d0\u00ba\u00d0\u00bb\u00d1\u008e\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d1\u008b comment.scoreValueForEditing=45 -# "embedded" или host:port +# "embedded" \u00d0\u00b8\u00d0\u00bb\u00d0\u00b8 host:port Elasticsearch=embedded jdbc.url=jdbc:postgresql://db:5432/lor?stringtype=unspecified diff --git a/src/main/java/ru/org/linux/spring/SiteConfig.java b/src/main/java/ru/org/linux/spring/SiteConfig.java index b8a436f21f..36b0045ad4 100644 --- a/src/main/java/ru/org/linux/spring/SiteConfig.java +++ b/src/main/java/ru/org/linux/spring/SiteConfig.java @@ -182,4 +182,17 @@ public Integer getCommentScoreValueForEditing() { } return Integer.valueOf(property); } + + /** + * Полное удаление аккаунта, с переносом сообщений к Delete. + * + * @return true если разрешено, иначе false + */ + public Boolean isUserFullDelete() { + String property = properties.getProperty("user.FullDelete"); + if (property == null) { + return false; + } + return Boolean.valueOf(property); + } } diff --git a/src/main/java/ru/org/linux/user/DeregisterController.java b/src/main/java/ru/org/linux/user/DeregisterController.java index 25ee0a2362..5e6b3afd46 100644 --- a/src/main/java/ru/org/linux/user/DeregisterController.java +++ b/src/main/java/ru/org/linux/user/DeregisterController.java @@ -49,14 +49,18 @@ public class DeregisterController { @Autowired private ElasticsearchIndexService indexService; + + private boolean isFullDelete; @RequestMapping(value = "/deregister.jsp", method = {RequestMethod.GET, RequestMethod.HEAD}) public ModelAndView show( HttpServletRequest request, @ModelAttribute("form") DeregisterRequest form ) { - + Template tmpl = Template.getTemplate(request); + isFullDelete = tmpl.getConfig().isUserFullDelete(); + if (!tmpl.isSessionAuthorized()) { throw new AccessViolationException("Not authorized"); } @@ -64,12 +68,19 @@ public ModelAndView show( User user = tmpl.getCurrentUser(); user.checkAnonymous(); + String msgDereg1, msgDereg2; + if(isFullDelete) { + msgDereg1 = "Удаление"; msgDereg2 = "удалить"; + }else{ + msgDereg1 = "Блокировка"; msgDereg2 = "заблокировать"; + } + if (user.getScore() < 100) { - throw new AccessViolationException("Удаление аккаунта недоступно для пользователей со score < 100"); + throw new AccessViolationException(msgDereg1 + " аккаунта недоступно для пользователей со score < 100"); } if (user.isAdministrator() || user.isModerator()) { - throw new AccessViolationException("Нельзя удалить модераторский аккаунт"); + throw new AccessViolationException("Нельзя " + msgDereg2 + " модераторский аккаунт"); } return new ModelAndView("deregister"); @@ -83,6 +94,7 @@ public ModelAndView deregister( ) { Template tmpl = Template.getTemplate(request); + isFullDelete = tmpl.getConfig().isUserFullDelete(); if (!tmpl.isSessionAuthorized()) { throw new AccessViolationException("Not authorized"); @@ -91,8 +103,15 @@ public ModelAndView deregister( User user = tmpl.getCurrentUser(); user.checkAnonymous(); + String msgDereg1, msgDereg2, msgDereg3; + if(isFullDelete) { + msgDereg1 = "Удаление"; msgDereg2 = "удалить"; msgDereg3 = "самостоятельное удаление"; + }else{ + msgDereg1 = "Блокировка"; msgDereg2 = "заблокировать"; msgDereg3 = "самостоятельная блокировка"; + } + if (user.getScore() < 100) { - throw new AccessViolationException("Удаление аккаунта недоступно для пользователей со score < 100"); + throw new AccessViolationException(msgDereg1 + " аккаунта недоступно для пользователей со score < 100"); } if (!user.matchPassword(form.getPassword())) { @@ -100,7 +119,7 @@ public ModelAndView deregister( } if (user.isAdministrator() || user.isModerator()) { - throw new AccessViolationException("Нельзя удалить модераторский аккаунт"); + throw new AccessViolationException("Нельзя " + msgDereg2 + " модераторский аккаунт"); } if (errors.hasErrors()) { @@ -108,33 +127,33 @@ public ModelAndView deregister( } // Move messages -/* - List movedComments = commentDao.getAllByUser(user); - List movedTopics = topicDao.getAllByUser(user); + if (isFullDelete) { + List movedComments = commentDao.getAllByUser(user); + List movedTopics = topicDao.getAllByUser(user); - userDao.moveMessages(user.getId(), userDao.findUserId("Deleted")); + userDao.moveMessages(user.getId(), userDao.findUserId("Deleted")); - indexService.reindexComments(movedComments); - indexService.reindexTopics(movedTopics); -*/ + indexService.reindexComments(movedComments); + indexService.reindexTopics(movedTopics); + } // Remove user info userDao.resetUserpic(user, user); userDao.updateUser(user, "", "", null, "", null, ""); // Block account - userDao.block(user, user, "самостоятельная блокировка аккаунта"); + userDao.block(user, user, msgDereg3 + " аккаунта"); return new ModelAndView( "action-done", "message", - "Удаление пользователя прошло успешно." + msgDereg1 + " пользователя прошло успешно." ); } @InitBinder("form") public void requestValidator(WebDataBinder binder) { - binder.setValidator(new DeregisterRequestValidator()); + binder.setValidator(new DeregisterRequestValidator(isFullDelete)); binder.setBindingErrorProcessor(new ExceptionBindingErrorProcessor()); } } diff --git a/src/main/java/ru/org/linux/user/DeregisterRequestValidator.java b/src/main/java/ru/org/linux/user/DeregisterRequestValidator.java index e2d88e650c..88cc940caf 100644 --- a/src/main/java/ru/org/linux/user/DeregisterRequestValidator.java +++ b/src/main/java/ru/org/linux/user/DeregisterRequestValidator.java @@ -19,6 +19,10 @@ import org.springframework.validation.Validator; public class DeregisterRequestValidator implements Validator { + public DeregisterRequestValidator(boolean isFullDelete) { + this.isFullDelete = isFullDelete; + } + private boolean isFullDelete; @Override public boolean supports(Class aClass) { return DeregisterRequest.class.equals(aClass); @@ -28,16 +32,17 @@ public boolean supports(Class aClass) { public void validate(Object o, Errors errors) { DeregisterRequest form = (DeregisterRequest) o; + String msgDereg; + if(isFullDelete) msgDereg = "с удалением"; else msgDereg = "с блокировкой"; + if (!form.getAcceptBlock()) { - errors.reject("acceptBlock", null, "Вы не согласились с блокировкой аккаунта"); + errors.reject("acceptBlock", null, "Вы не согласились " + msgDereg + " аккаунта"); } -/* - if (!form.getAcceptMoveToDeleted()) { + if(isFullDelete && !form.getAcceptMoveToDeleted()) { errors.reject("acceptMoveToDeleted", null, "Вы не согласились с передачей всех сообщений специальному пользователю"); } -*/ - + if (!form.getAcceptOneway()) { errors.reject("acceptOneway", null, "Вы не согласились с невозможностью восстановления аккаунта"); } diff --git a/src/main/webapp/WEB-INF/config.properties.dist b/src/main/webapp/WEB-INF/config.properties.dist index ee64459d30..436d019fa2 100644 --- a/src/main/webapp/WEB-INF/config.properties.dist +++ b/src/main/webapp/WEB-INF/config.properties.dist @@ -24,6 +24,8 @@ Secret=secret recaptcha.private=6LcdM0oUAAAAANYhnHF3jmD1r1TvkiyPaWHjC83x recaptcha.public=6LcdM0oUAAAAAD2T-0ZW2HPkqZ5nFi1Y52U7BOMI +user.FullDelete = false + EnableHsts=false # admin.emailAddress=bugz@linux.org.ru admin.emailAddress=specify_your_real_email_if_you_want_receive_messages diff --git a/src/main/webapp/WEB-INF/jsp/deregister.jsp b/src/main/webapp/WEB-INF/jsp/deregister.jsp index 1388b51a80..47edf5de0b 100644 --- a/src/main/webapp/WEB-INF/jsp/deregister.jsp +++ b/src/main/webapp/WEB-INF/jsp/deregister.jsp @@ -18,12 +18,19 @@ --%> -Удаление пользователя + + + + +${msgDereg2} пользователя -

Удаление пользователя

+

${msgDereg2} пользователя

-Аккаунт становится недоступен для входа<%--, все сообщения переходят к специальному пользователю--%>. +Аккаунт становится недоступен для входа + + , все сообщения переходят к специальному пользователю. +

@@ -39,23 +46,22 @@
-
-
- +
diff --git a/src/main/webapp/WEB-INF/jsp/edit-profile.jsp b/src/main/webapp/WEB-INF/jsp/edit-profile.jsp index c09d226964..65437d470a 100644 --- a/src/main/webapp/WEB-INF/jsp/edit-profile.jsp +++ b/src/main/webapp/WEB-INF/jsp/edit-profile.jsp @@ -163,13 +163,15 @@ $script.ready('plugins', function() {

Другие настройки

+ + From 90b09a0e638dc63fd397a758997b8e7affbfa3b5 Mon Sep 17 00:00:00 2001 From: Toxo2 Date: Thu, 25 Feb 2021 19:23:16 +0700 Subject: [PATCH 2/3] isFullDelete flag in SiteConfig --- docker/config.properties | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docker/config.properties b/docker/config.properties index 48c15d5d79..de19578799 100644 --- a/docker/config.properties +++ b/docker/config.properties @@ -30,24 +30,24 @@ EnableHsts=false # admin.emailAddress=bugz@linux.org.ru admin.emailAddress=specify_your_real_email_if_you_want_receive_messages -# \u00d1\u0080\u00d0\u00b0\u00d0\u00b7\u00d1\u0080\u00d0\u00b5\u00d1\u0088\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00bc\u00d0\u00be\u00d0\u00b4\u00d0\u00b5\u00d1\u0080\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d0\u00b0\u00d0\u00bc \u00d0\u00bd\u00d0\u00b0 \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00be\u00d0\u00b2 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d0\u00b5\u00d0\u00b9 +# разрешение модераторам на редактирование комментов пользователей comment.isModeratorAllowedToEdit=false -# \u00d0\u00b2\u00d1\u0080\u00d0\u00b5\u00d0\u00bc\u00d1\u008f (\u00d0\u00b2 \u00d0\u00bc\u00d0\u00b8\u00d0\u00bd\u00d1\u0083\u00d1\u0082\u00d0\u00b0\u00d1\u0085), \u00d0\u00b2 \u00d1\u0082\u00d0\u00b5\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b8 \u00d0\u00ba\u00d0\u00be\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d0\u00be\u00d0\u00b3\u00d0\u00be \u00d1\u0081 \u00d0\u00bc\u00d0\u00be\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0 \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0 \u00d0\u00b5\u00d0\u00b3\u00d0\u00be -# \u00d0\u00bc\u00d0\u00be\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c (\u00d0\u00bd\u00d0\u00b5 \u00d1\u0080\u00d0\u00b0\u00d1\u0081\u00d0\u00bf\u00d1\u0080\u00d0\u00be\u00d1\u0081\u00d1\u0082\u00d1\u0080\u00d0\u00b0\u00d0\u00bd\u00d1\u008f\u00d0\u00b5\u00d1\u0082\u00d1\u0081\u00d1\u008f \u00d0\u00bd\u00d0\u00b0 \u00d0\u00bc\u00d0\u00be\u00d0\u00b4\u00d0\u00b5\u00d1\u0080\u00d0\u00b0\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d0\u00be\u00d0\u00b2). -# \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d0\u00bd\u00d0\u00b5 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00b8\u00d0\u00bb\u00d0\u00b8 \u00d1\u0080\u00d0\u00b0\u00d0\u00b2\u00d0\u00bd\u00d0\u00be 0, \u00d1\u0082\u00d0\u00be \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00bc\u00d0\u00be\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d0\u00b1\u00d1\u0083\u00d0\u00b4\u00d0\u00b5\u00d1\u0082 \u00d0\u00b2\u00d1\u0081\u00d0\u00b5\u00d0\u00b3\u00d0\u00b4\u00d0\u00b0. +# время (в минутах), в течении которого с момента создания коммента его +# можно редактировать (не распространяется на модераторов). +# если не установлено или равно 0, то редактировать можно будет всегда. comment.expireMinutesForEdit=30 -# \u00d1\u0080\u00d0\u00b0\u00d0\u00b7\u00d1\u0080\u00d0\u00b5\u00d1\u0088\u00d0\u00b8\u00d1\u0082\u00d1\u008c \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0\u00d1\u0080\u00d0\u00b8\u00d0\u00b8, \u00d0\u00ba\u00d0\u00be\u00d1\u0082\u00d0\u00be\u00d1\u0080\u00d1\u008b\u00d0\u00b5 \u00d0\u00b8\u00d0\u00bc\u00d0\u00b5\u00d1\u008e\u00d1\u0082 \u00d0\u00be\u00d1\u0082\u00d0\u00b2\u00d0\u00b5\u00d1\u0082\u00d1\u008b +# разрешить редактировать комментарии, которые имеют ответы comment.isEditingAllowedIfAnswersExists=false -# \u00d1\u0081\u00d0\u00ba\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00ba\u00d0\u00be \u00d1\u0081\u00d0\u00ba\u00d0\u00be\u00d1\u0080\u00d0\u00b0 \u00d0\u00b4\u00d0\u00be\u00d0\u00bb\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d0\u00b1\u00d1\u008b\u00d1\u0082\u00d1\u008c \u00d1\u0083 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u008c\u00d0\u00b7\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d0\u00b5\u00d0\u00bb\u00d1\u008f, \u00d1\u0087\u00d1\u0082\u00d0\u00be\u00d0\u00b1\u00d1\u008b \u00d0\u00be\u00d0\u00bd \u00d1\u0081\u00d0\u00bc\u00d0\u00be\u00d0\u00b3 -# \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0\u00d1\u0080\u00d0\u00b8\u00d0\u00b8 \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d0\u00bd\u00d0\u00b5 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00be, -# \u00d1\u0082\u00d0\u00be \u00d1\u0080\u00d0\u00b5\u00d0\u00b4\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0080\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d1\u0082\u00d1\u008c \u00d0\u00bc\u00d0\u00be\u00d0\u00b3\u00d1\u0083\u00d1\u0082 \u00d0\u00b2\u00d1\u0081\u00d0\u00b5. \u00d0\u0095\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d1\u0083\u00d1\u0081\u00d1\u0082\u00d0\u00b0\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00bb\u00d0\u00b5\u00d0\u00bd\u00d0\u00be \u00d0\u00be\u00d0\u00b3\u00d1\u0080\u00d0\u00be\u00d0\u00bc\u00d0\u00bd\u00d0\u00be\u00d0\u00b5 -# \u00d1\u0087\u00d0\u00b8\u00d1\u0081\u00d0\u00bb\u00d0\u00be, \u00d1\u0082\u00d0\u00be \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0082\u00d0\u00b0\u00d1\u0080\u00d0\u00b8\u00d0\u00b8 \u00d0\u00b1\u00d1\u0083\u00d0\u00b4\u00d1\u0083\u00d1\u0082 \u00d1\u0084\u00d0\u00b0\u00d0\u00ba\u00d1\u0082\u00d0\u00b8\u00d1\u0087\u00d0\u00b5\u00d1\u0081\u00d0\u00ba\u00d0\u00b8 \u00d0\u00be\u00d1\u0082\u00d0\u00ba\u00d0\u00bb\u00d1\u008e\u00d1\u0087\u00d0\u00b5\u00d0\u00bd\u00d1\u008b +# сколько скора должно быть у пользователя, чтобы он смог +# редактировать комментарии если не установлено, +# то редактировать могут все. Если установлено огромное +# число, то комментарии будут фактически отключены comment.scoreValueForEditing=45 -# "embedded" \u00d0\u00b8\u00d0\u00bb\u00d0\u00b8 host:port +# "embedded" или host:port Elasticsearch=embedded jdbc.url=jdbc:postgresql://db:5432/lor?stringtype=unspecified From 34f22edcd1ac4bca7d597e223efda66eb835ff8d Mon Sep 17 00:00:00 2001 From: Toxo2 Date: Fri, 26 Feb 2021 11:30:38 +0700 Subject: [PATCH 3/3] Aligning lists in messages --- src/main/webapp/sass/tango/_style.scss | 2 +- src/main/webapp/sass/waltz/style.scss | 2 +- src/main/webapp/sass/zomg_ponies/style.scss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/sass/tango/_style.scss b/src/main/webapp/sass/tango/_style.scss index 56df941cc1..0e31013fff 100644 --- a/src/main/webapp/sass/tango/_style.scss +++ b/src/main/webapp/sass/tango/_style.scss @@ -105,8 +105,8 @@ p { } #bd li { - margin-left: 2em; list-style: inherit; + list-style-position: inside; } #bd .sign { diff --git a/src/main/webapp/sass/waltz/style.scss b/src/main/webapp/sass/waltz/style.scss index 63c2e13f4b..c845dc18f6 100644 --- a/src/main/webapp/sass/waltz/style.scss +++ b/src/main/webapp/sass/waltz/style.scss @@ -129,8 +129,8 @@ p { } #bd li { - margin-left: 2em; list-style: inherit; + list-style-position: inside; } #bd .sign { diff --git a/src/main/webapp/sass/zomg_ponies/style.scss b/src/main/webapp/sass/zomg_ponies/style.scss index ed29f32a9a..62876c8626 100644 --- a/src/main/webapp/sass/zomg_ponies/style.scss +++ b/src/main/webapp/sass/zomg_ponies/style.scss @@ -269,8 +269,8 @@ div.msg-top-header{ } #bd li { - margin-left: 2em; list-style: inherit; + list-style-position: inside; } #bd .sign {