From 9ebd495dbece65e84c9f3847cce3aba3f4b4b57f Mon Sep 17 00:00:00 2001 From: n1rwana <93197434+n1rwana@users.noreply.github.com> Date: Sat, 3 Sep 2022 20:44:58 +0300 Subject: [PATCH 1/3] Admins can view deleted users pages --- Web/Presenters/UserPresenter.php | 36 +++++++++++++++----------- Web/Presenters/templates/User/View.xml | 3 +++ openvk-example.yml | 1 + 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/Web/Presenters/UserPresenter.php b/Web/Presenters/UserPresenter.php index 6871b90e2..31905c2d7 100644 --- a/Web/Presenters/UserPresenter.php +++ b/Web/Presenters/UserPresenter.php @@ -28,23 +28,29 @@ function __construct(Users $users) function renderView(int $id): void { $user = $this->users->get($id); - if(!$user || $user->isDeleted()) { - if($user->isDeactivated()) { - $this->template->_template = "User/deactivated.xml"; - - $this->template->user = $user; + $canViewDeleted = $this->user->identity->getChandlerUser()->can("access")->model("admin")->whichBelongsTo(NULL) === OPENVK_ROOT_CONF["openvk"]["preferences"]["security"]["adminsCanViewDeletedUsers"]; + + if ($user === NULL) { + $this->template->_template = "User/deleted.xml"; + } else { + if ($user->isDeleted() AND !$canViewDeleted) { + if ($user->isDeactivated()) { + $this->template->_template = "User/deactivated.xml"; + + $this->template->user = $user; + } else { + $this->template->_template = "User/deleted.xml"; + } } else { - $this->template->_template = "User/deleted.xml"; + $this->template->albums = (new Albums)->getUserAlbums($user); + $this->template->albumsCount = (new Albums)->getUserAlbumsCount($user); + $this->template->videos = (new Videos)->getByUser($user, 1, 2); + $this->template->videosCount = (new Videos)->getUserVideosCount($user); + $this->template->notes = (new Notes)->getUserNotes($user, 1, 4); + $this->template->notesCount = (new Notes)->getUserNotesCount($user); + + $this->template->user = $user; } - } else { - $this->template->albums = (new Albums)->getUserAlbums($user); - $this->template->albumsCount = (new Albums)->getUserAlbumsCount($user); - $this->template->videos = (new Videos)->getByUser($user, 1, 2); - $this->template->videosCount = (new Videos)->getUserVideosCount($user); - $this->template->notes = (new Notes)->getUserNotes($user, 1, 4); - $this->template->notesCount = (new Notes)->getUserNotesCount($user); - - $this->template->user = $user; } } diff --git a/Web/Presenters/templates/User/View.xml b/Web/Presenters/templates/User/View.xml index a2b8cb0d8..1dfcd1ae0 100644 --- a/Web/Presenters/templates/User/View.xml +++ b/Web/Presenters/templates/User/View.xml @@ -355,6 +355,9 @@
{strpos($alert, "@") === 0 ? tr(substr($alert, 1)) : $alert}
+
+ Вы просматриваете страницу удалённого пользователя. +
{var $thatIsThisUser = isset($thisUser) && $user->getId() == $thisUser->getId()}