This commit is contained in:
n1rwana 2022-09-04 00:30:01 +03:00
parent 0c65856108
commit a11cb49b60
12 changed files with 114 additions and 108 deletions

View file

@ -43,6 +43,8 @@ final class Users extends VKAPIRequestHandler
"last_name" => $usr->getLastName(), "last_name" => $usr->getLastName(),
"is_closed" => (new Blacklists)->isBanned($usr, $authuser), "is_closed" => (new Blacklists)->isBanned($usr, $authuser),
"can_access_closed" => !(new Blacklists)->isBanned($usr, $authuser), "can_access_closed" => !(new Blacklists)->isBanned($usr, $authuser),
"blacklisted" => (new Blacklists)->isBanned($usr, $authuser),
"blacklisted_by_me" => (new Blacklists)->isBanned($authuser, $usr)
]; ];
$flds = explode(',', $fields); $flds = explode(',', $fields);

View file

@ -439,10 +439,7 @@ class User extends RowModel
else if($user->getId() === $this->getId()) else if($user->getId() === $this->getId())
return true; return true;
else if ((new Blacklists)->isBanned($this, $user)) { else if ((new Blacklists)->isBanned($this, $user)) {
if ($user->isAdmin() && !OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"]) return $user->isAdmin() && !OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"];
return true;
return false;
} }
switch($permStatus) { switch($permStatus) {

View file

@ -13,7 +13,7 @@ final class BlacklistPresenter extends OpenVKPresenter
$this->blacklists = $blacklists; $this->blacklists = $blacklists;
} }
function renderAddToBl(): void function renderAddToBlacklist(): void
{ {
$this->willExecuteWriteAction(); $this->willExecuteWriteAction();
$this->assertUserLoggedIn(); $this->assertUserLoggedIn();
@ -29,7 +29,7 @@ final class BlacklistPresenter extends OpenVKPresenter
$this->flashFail("succ", "Успех", $target->getCanonicalName() . " занесён в чёрный список."); $this->flashFail("succ", "Успех", $target->getCanonicalName() . " занесён в чёрный список.");
} }
function renderRemoveFromBl(): void function renderRemoveFromBlacklist(): void
{ {
$this->willExecuteWriteAction(); $this->willExecuteWriteAction();
$this->assertUserLoggedIn(); $this->assertUserLoggedIn();

View file

@ -1,6 +1,6 @@
<?php declare(strict_types=1); <?php declare(strict_types=1);
namespace openvk\Web\Presenters; namespace openvk\Web\Presenters;
use openvk\Web\Models\Repositories\{Users, Notes, Blacklists}; use openvk\Web\Models\Repositories\{Users, Notes};
use openvk\Web\Models\Entities\Note; use openvk\Web\Models\Entities\Note;
final class NotesPresenter extends OpenVKPresenter final class NotesPresenter extends OpenVKPresenter

View file

@ -139,7 +139,7 @@ final class PhotosPresenter extends OpenVKPresenter
if ((new Blacklists)->isBanned($album->getOwner(), $this->user->identity)) { if ((new Blacklists)->isBanned($album->getOwner(), $this->user->identity)) {
if (!$this->user->identity->isAdmin() OR $this->user->identity->isAdmin() AND OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"]) if (!$this->user->identity->isAdmin() OR $this->user->identity->isAdmin() AND OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"])
$this->flashFail("err", tr("forbidden"), "Пользователь внёс Вас в чёрный список."); $this->flashFail("err", tr("forbidden"), tr("user_blacklisted_you"));
} }
if($owner > 0 /* bc we currently don't have perms for clubs */) { if($owner > 0 /* bc we currently don't have perms for clubs */) {
@ -166,7 +166,7 @@ final class PhotosPresenter extends OpenVKPresenter
if ((new Blacklists)->isBanned($photo->getOwner(), $this->user->identity)) { if ((new Blacklists)->isBanned($photo->getOwner(), $this->user->identity)) {
if (!$this->user->identity->isAdmin() OR $this->user->identity->isAdmin() AND OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"]) if (!$this->user->identity->isAdmin() OR $this->user->identity->isAdmin() AND OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"])
$this->flashFail("err", tr("forbidden"), "Пользователь внёс Вас в чёрный список."); $this->flashFail("err", tr("forbidden"), tr("user_blacklisted_you"));
} }
if(!is_null($this->queryParam("from"))) { if(!is_null($this->queryParam("from"))) {

View file

@ -35,10 +35,10 @@ final class UserPresenter extends OpenVKPresenter
if ($this->blacklists->isBanned($user, $this->user->identity)) { if ($this->blacklists->isBanned($user, $this->user->identity)) {
if ($this->user->identity->isAdmin()) { if ($this->user->identity->isAdmin()) {
if (OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"]) { if (OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["blacklists"]["applyToAdmins"]) {
$this->flashFail("err", tr("forbidden"), "Пользователь внёс Вас в чёрный список."); $this->flashFail("err", tr("forbidden"), tr("user_blacklisted_you"));
} }
} else { } else {
$this->flashFail("err", tr("forbidden"), "Пользователь внёс Вас в чёрный список."); $this->flashFail("err", tr("forbidden"), tr("user_blacklisted_you"));
} }
} }

View file

@ -41,7 +41,7 @@ final class VideosPresenter extends OpenVKPresenter
if(!$user) $this->notFound(); if(!$user) $this->notFound();
if(!$user->getPrivacyPermission('videos.read', $this->user->identity ?? NULL)) { if(!$user->getPrivacyPermission('videos.read', $this->user->identity ?? NULL)) {
if ((new Blacklists)->isBanned($user, $this->user->identity)) if ((new Blacklists)->isBanned($user, $this->user->identity))
$this->flashFail("err", tr("forbidden"), "Пользователь внёс Вас в чёрный список."); $this->flashFail("err", tr("forbidden"), tr("user_blacklisted_you"));
$this->flashFail("err", tr("forbidden"), tr("forbidden_comment")); $this->flashFail("err", tr("forbidden"), tr("forbidden_comment"));
} }

View file

@ -28,7 +28,7 @@
<a n:attr="id => ($isInterface ? 'act_tab_a' : 'ki')" href="/settings?act=interface">{_interface}</a> <a n:attr="id => ($isInterface ? 'act_tab_a' : 'ki')" href="/settings?act=interface">{_interface}</a>
</div> </div>
<div n:attr="id => ($isBlackList ? 'activetabs' : 'ki')" class="tab"> <div n:attr="id => ($isBlackList ? 'activetabs' : 'ki')" class="tab">
<a n:attr="id => ($isBlackList ? 'act_tab_a' : 'ki')" href="/settings?act=blacklist">Чёрный список</a> <a n:attr="id => ($isBlackList ? 'act_tab_a' : 'ki')" href="/settings?act=blacklist">{_blacklist}</a>
</div> </div>
</div> </div>

View file

@ -368,9 +368,9 @@
<div class="right_big_block"> <div class="right_big_block">
<div class="page_info"> <div class="page_info">
<div n:if="$isBlacklistedByThem AND $thisUser->isAdmin() AND $thisUser->getId() !== $user->getId()" class="user-alert"> <div n:if="$isBlacklistedByThem AND $thisUser->isAdmin() AND $thisUser->getId() !== $user->getId()" class="user-alert">
<b>Будьте осторожны с этой информацией:</b> <b>{admin_privacy_warning}:</b>
<br/> <br/>
Пользователь внёс Вас в чёрный список {_user_blacklisted_you}
</div> </div>
<div n:if="!is_null($alert = $user->getAlert())" class="user-alert">{strpos($alert, "@") === 0 ? tr(substr($alert, 1)) : $alert}</div> <div n:if="!is_null($alert = $user->getAlert())" class="user-alert">{strpos($alert, "@") === 0 ? tr(substr($alert, 1)) : $alert}</div>
{var $thatIsThisUser = isset($thisUser) && $user->getId() == $thisUser->getId()} {var $thatIsThisUser = isset($thisUser) && $user->getId() == $thisUser->getId()}

View file

@ -98,9 +98,9 @@ routes:
- url: "/setSub/v4/club" - url: "/setSub/v4/club"
handler: "Group->attend" handler: "Group->attend"
- url: "/removeFromBl" - url: "/removeFromBl"
handler: "Blacklist->removeFromBl" handler: "Blacklist->removeFromBlacklist"
- url: "/addToBl" - url: "/addToBl"
handler: "Blacklist->addToBl" handler: "Blacklist->addToBlacklist"
- url: "/groups/{num}/setNewOwner/{num}" - url: "/groups/{num}/setNewOwner/{num}"
handler: "Group->changeOwner" handler: "Group->changeOwner"
- url: "/comment{num}/like" - url: "/comment{num}/like"

View file

@ -1111,6 +1111,8 @@
"admin_commerce_disabled" = "Коммерция отключена системным администратором"; "admin_commerce_disabled" = "Коммерция отключена системным администратором";
"admin_commerce_disabled_desc" = "Настройки ваучеров и подарков будут сохранены, но не будут оказывать никакого влияния."; "admin_commerce_disabled_desc" = "Настройки ваучеров и подарков будут сохранены, но не будут оказывать никакого влияния.";
"admin_privacy_warning" = "Будьте осторожны с этой информацией";
/* Paginator (deprecated) */ /* Paginator (deprecated) */
"paginator_back" = "Назад"; "paginator_back" = "Назад";
@ -1174,3 +1176,8 @@
"cookies_popup_content" = "Все дети любят печенье, поэтому этот веб-сайт использует Cookies для того, чтобы идентифицировать вашу сессию и ничего более. Ознакомьтесь с нашей <a href='/privacy'>политикой конфиденциальности</a> для получения дополнительной информации."; "cookies_popup_content" = "Все дети любят печенье, поэтому этот веб-сайт использует Cookies для того, чтобы идентифицировать вашу сессию и ничего более. Ознакомьтесь с нашей <a href='/privacy'>политикой конфиденциальности</a> для получения дополнительной информации.";
"cookies_popup_agree" = "Согласен"; "cookies_popup_agree" = "Согласен";
/* Blacklist */
"blacklist" = "Чёрный список";
"user_blacklisted_you" = "Пользователь внёс Вас в чёрный список.";