From 321ea884eb9b3b31c5887ab61607eb99387ef38e Mon Sep 17 00:00:00 2001 From: Visman Date: Wed, 5 Sep 2018 14:48:40 +0700 Subject: [PATCH] + canViewIP for User model --- app/Controllers/Routing.php | 7 +++++-- app/Models/Pages/Admin/Users/Result.php | 2 +- app/Models/Pages/Admin/Users/View.php | 2 +- app/Models/Rules/Profile.php | 2 +- app/Models/User/Model.php | 10 ++++++++++ 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/Controllers/Routing.php b/app/Controllers/Routing.php index 74cc9186..1c608314 100644 --- a/app/Controllers/Routing.php +++ b/app/Controllers/Routing.php @@ -126,6 +126,11 @@ class Routing $r->add(['GET', 'POST'], '/admin/users', 'AdminUsers:view', 'AdminUsers'); $r->add(['GET', 'POST'], '/admin/users/result/{data}[/{page:[1-9]\d*}]', 'AdminUsersResult:view', 'AdminUsersResult'); + + if ($user->canViewIP) { + $r->add('GET', '/admin/get/host/{ip:[0-9a-fA-F:.]+}', 'AdminHost:view', 'AdminHost'); + $r->add('GET', '/admin/users/user/{id:[2-9]|[1-9]\d+}[/{page:[1-9]\d*}]', 'AdminUsersStat:view', 'AdminUserStat'); + } } // только админ if ($user->isAdmin) { @@ -148,8 +153,6 @@ class Routing $r->add('POST', '/admin/maintenance/rebuild', 'AdminMaintenance:rebuild', 'AdminMaintenanceRebuild'); $r->add('GET', '/admin/maintenance/rebuild/{token}/{clear:[01]}/{limit:[1-9]\d*}/{start:[1-9]\d*}', 'AdminMaintenance:rebuild', 'AdminRebuildIndex' ); - $r->add('GET', '/admin/get/host/{ip:[0-9a-fA-F:.]+}', 'AdminHost:view', 'AdminHost'); - $r->add('GET', '/admin/users/user/{id:[2-9]|[1-9]\d+}[/{page:[1-9]\d*}]', 'AdminUsersStat:view', 'AdminUserStat'); } $uri = $_SERVER['REQUEST_URI']; diff --git a/app/Models/Pages/Admin/Users/Result.php b/app/Models/Pages/Admin/Users/Result.php index c1f017df..061223e3 100644 --- a/app/Models/Pages/Admin/Users/Result.php +++ b/app/Models/Pages/Admin/Users/Result.php @@ -23,7 +23,7 @@ class Result extends Users } if (isset($data['ip'])) { - if (! $this->user->isAdmin) { + if (! $this->user->canViewIP) { return $this->c->Message->message('Bad request'); } diff --git a/app/Models/Pages/Admin/Users/View.php b/app/Models/Pages/Admin/Users/View.php index 1a5c453d..b5790a01 100644 --- a/app/Models/Pages/Admin/Users/View.php +++ b/app/Models/Pages/Admin/Users/View.php @@ -120,7 +120,7 @@ class View extends Users $this->aIndex = 'users'; $this->formSearch = $this->form($data); - if ($this->user->isAdmin) { + if ($this->user->canViewIP) { $this->formIP = $this->formIP($data); } diff --git a/app/Models/Rules/Profile.php b/app/Models/Rules/Profile.php index 64de51db..441bc4e9 100644 --- a/app/Models/Rules/Profile.php +++ b/app/Models/Rules/Profile.php @@ -85,7 +85,7 @@ class Profile extends Rules protected function getviewIP() { - return $this->user->isAdmin; + return $this->user->canViewIP; } protected function getuseAvatar() diff --git a/app/Models/User/Model.php b/app/Models/User/Model.php index ca80244e..90480583 100644 --- a/app/Models/User/Model.php +++ b/app/Models/User/Model.php @@ -309,4 +309,14 @@ class Model extends DataModel { return (int) (empty($this->a['disp_posts']) ? $this->c->config->o_disp_posts_default : $this->a['disp_posts']); } + + /** + * Статус показа ip пользователей + * + * @return bool + */ + protected function getcanViewIP() + { + return $this->isAdmin; + } }