diff --git a/Web/Models/Entities/Club.php b/Web/Models/Entities/Club.php
index 31485129..2de240e0 100644
--- a/Web/Models/Entities/Club.php
+++ b/Web/Models/Entities/Club.php
@@ -401,6 +401,11 @@ class Club extends RowModel
return (object) $res;
}
+ function isAnonCommentsAllowed(): bool
+ {
+ return (bool) $this->getRecord()->allow_anon_comments;
+ }
+
use Traits\TBackDrops;
use Traits\TSubscribable;
}
diff --git a/Web/Models/Entities/User.php b/Web/Models/Entities/User.php
index e5b8da06..efbf5cd9 100644
--- a/Web/Models/Entities/User.php
+++ b/Web/Models/Entities/User.php
@@ -1237,6 +1237,11 @@ class User extends RowModel
return $res;
}
+
+ function isAnonCommentsAllowed(): bool
+ {
+ return (bool) $this->getRecord()->allow_anon_comments;
+ }
use Traits\TBackDrops;
use Traits\TSubscribable;
diff --git a/Web/Presenters/CommentPresenter.php b/Web/Presenters/CommentPresenter.php
index cb0efd0d..cb1c04a8 100644
--- a/Web/Presenters/CommentPresenter.php
+++ b/Web/Presenters/CommentPresenter.php
@@ -57,6 +57,8 @@ final class CommentPresenter extends OpenVKPresenter
if($_FILES["_vid_attachment"] && OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading'])
$this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator.");
+ $anon = OPENVK_ROOT_CONF["openvk"]["preferences"]["wall"]["anonymousPosting"]["enable"] && $this->postParam("anon") === "on" && $entity->getWallOwner()->isAnonCommentsAllowed();
+
$flags = 0;
if($this->postParam("as_group") === "on" && !is_null($club) && $club->canBeModifiedBy($this->user->identity))
$flags |= 0b10000000;
@@ -98,9 +100,10 @@ final class CommentPresenter extends OpenVKPresenter
$comment->setModel(get_class($entity));
$comment->setTarget($entity->getId());
$comment->setContent($this->postParam("text"));
+ $comment->setAnonymous($anon);
$comment->setCreated(time());
$comment->setFlags($flags);
- $comment->save();
+ $comment->save();
} catch (\LengthException $ex) {
$this->flashFail("err", "Не удалось опубликовать комментарий", "Комментарий слишком большой.");
}
diff --git a/Web/Presenters/GroupPresenter.php b/Web/Presenters/GroupPresenter.php
index d8fbcb79..0a77e8df 100644
--- a/Web/Presenters/GroupPresenter.php
+++ b/Web/Presenters/GroupPresenter.php
@@ -219,6 +219,7 @@ final class GroupPresenter extends OpenVKPresenter
$club->setEveryone_Can_Create_Topics(empty($this->postParam("everyone_can_create_topics")) ? 0 : 1);
$club->setDisplay_Topics_Above_Wall(empty($this->postParam("display_topics_above_wall")) ? 0 : 1);
$club->setHide_From_Global_Feed(empty($this->postParam("hide_from_global_feed")) ? 0 : 1);
+ $club->setAllow_Anon_Comments(empty($this->postParam("allow_anon_comments")) ? 0 : 1);
$website = $this->postParam("website") ?? "";
if(empty($website))
diff --git a/Web/Presenters/UserPresenter.php b/Web/Presenters/UserPresenter.php
index 9cfa3654..590a456c 100644
--- a/Web/Presenters/UserPresenter.php
+++ b/Web/Presenters/UserPresenter.php
@@ -418,6 +418,8 @@ final class UserPresenter extends OpenVKPresenter
if(!$user->setShortCode(empty($this->postParam("sc")) ? NULL : $this->postParam("sc")))
$this->flashFail("err", tr("error"), tr("error_shorturl_incorrect"));
+
+ $user->setAllow_Anon_Comments(empty($this->postParam("allow_anon_comments")) ? 0 : 1);
} else if($_GET['act'] === "privacy") {
$settings = [
"page.read",
diff --git a/Web/Presenters/templates/Group/Edit.xml b/Web/Presenters/templates/Group/Edit.xml
index 22f0b490..28231d13 100644
--- a/Web/Presenters/templates/Group/Edit.xml
+++ b/Web/Presenters/templates/Group/Edit.xml
@@ -101,7 +101,14 @@
{_group_dont_display_administrators_list}
-
+