diff --git a/Web/Models/Entities/User.php b/Web/Models/Entities/User.php index 0e85d775..131c9bdd 100644 --- a/Web/Models/Entities/User.php +++ b/Web/Models/Entities/User.php @@ -372,6 +372,7 @@ class User extends RowModel "friends.read", "friends.add", "wall.write", + "messages.write", ], ])->get($id); } @@ -756,6 +757,7 @@ class User extends RowModel "friends.read", "friends.add", "wall.write", + "messages.write", ], ])->set($id, $status)->toInteger()); } diff --git a/Web/Presenters/MessengerPresenter.php b/Web/Presenters/MessengerPresenter.php index 9f0066ad..fdcb934e 100644 --- a/Web/Presenters/MessengerPresenter.php +++ b/Web/Presenters/MessengerPresenter.php @@ -124,7 +124,7 @@ final class MessengerPresenter extends OpenVKPresenter } $sel = $this->getCorrespondent($sel); - if($sel->getId() !== $this->user->id && $sel->getSubscriptionStatus($this->user->identity) !== 3) + if($sel->getId() !== $this->user->id && !$sel->getPrivacyPermission('messages.write', $this->user->identity)) exit(header("HTTP/1.1 403 Forbidden")); $cor = new Correspondence($this->user->identity, $sel); diff --git a/Web/Presenters/UserPresenter.php b/Web/Presenters/UserPresenter.php index 43f4100d..fde2ad01 100644 --- a/Web/Presenters/UserPresenter.php +++ b/Web/Presenters/UserPresenter.php @@ -329,6 +329,7 @@ final class UserPresenter extends OpenVKPresenter "friends.read", "friends.add", "wall.write", + "messages.write", ]; foreach($settings as $setting) { $input = $this->postParam(str_replace(".", "_", $setting)); diff --git a/Web/Presenters/templates/Messenger/App.xml b/Web/Presenters/templates/Messenger/App.xml index 79f95a16..cb23ca79 100644 --- a/Web/Presenters/templates/Messenger/App.xml +++ b/Web/Presenters/templates/Messenger/App.xml @@ -43,7 +43,7 @@
- {if $correspondent->getId() === $thisUser->getId() || ($correspondent->getSubscriptionStatus($thisUser) === 3)} + {if $correspondent->getId() === $thisUser->getId() || $correspondent->getPrivacyPermission('messages.write', $thisUser)} {$thisUser->getCanonicalName()}