From 78b16e01364fdf7ec22fc6f86c604f69ce2a66be Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 28 Nov 2023 09:26:59 +0800 Subject: [PATCH] * userControl: refactor the deny method. --- module/user/control.php | 35 ++++++++++++++++++----------------- module/user/ui/deny.html.php | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/module/user/control.php b/module/user/control.php index 8079425620..e1153ae3a9 100755 --- a/module/user/control.php +++ b/module/user/control.php @@ -732,44 +732,45 @@ class user extends control } /** + * 拒绝访问页面。 * Deny page. * * @param string $module * @param string $method - * @param string $refererBeforeDeny the referer of the denied page. + * @param string $referer the referer of the denied page. * @access public * @return void */ - public function deny($module, $method, $refererBeforeDeny = '') + public function deny(string $module, string $method, string $referer = '') { - $this->setReferer(); - $this->view->title = $this->lang->user->deny; - $this->view->module = $module; - $this->view->method = $method; - $this->view->denyPage = $this->referer; // The denied page. - $this->view->refererBeforeDeny = $refererBeforeDeny; // The referer of the denied page. - if($module == 'requirement') $this->app->loadLang('story'); - if($module != 'requirement') $this->app->loadLang($module); + $this->userZen->setReferer(); + + $module = strtolower($module); + $method = strtolower($method); $this->app->loadLang('my'); + $this->app->loadLang($module == 'requirement' ? 'story' : $module); - /* Check deny type. */ - $rights = $this->app->user->rights['rights']; - $acls = $this->app->user->rights['acls']; - - $module = strtolower($module); - $method = strtolower($method); - + /* 判断禁止访问的类型。*/ + /* Judge the type of deny. */ $denyType = 'nopriv'; + $rights = $this->app->user->rights['rights']; + $acls = $this->app->user->rights['acls']; if(isset($rights[$module][$method])) { $menu = isset($this->lang->navGroup->$module) ? $this->lang->navGroup->$module : $module; $menu = strtolower($menu); if(!isset($acls['views'][$menu])) $denyType = 'noview'; + $this->view->menu = $menu; } + $this->view->title = $this->lang->user->deny; + $this->view->module = $module; + $this->view->method = $method; + $this->view->denyPage = $this->referer; // The denied page. + $this->view->referer = $referer; // The referer of the denied page. $this->view->denyType = $denyType; $this->display(); diff --git a/module/user/ui/deny.html.php b/module/user/ui/deny.html.php index a26d67e04c..7150b56172 100644 --- a/module/user/ui/deny.html.php +++ b/module/user/ui/deny.html.php @@ -45,7 +45,7 @@ panel set::title($app->user->account . ' ' . $lang->user->deny), set::footerActions (array( - $refererBeforeDeny ? array('url' => helper::safe64Decode($refererBeforeDeny), 'text' => $lang->user->goback) : array('back' => 'APP', 'text' => $lang->user->goback), + $referer ? array('url' => helper::safe64Decode($referer), 'text' => $lang->user->goback) : array('back' => 'APP', 'text' => $lang->user->goback), array('data-url' => createLink('user', 'logout', "referer=" . helper::safe64Encode($denyPage)), 'class' => 'primary', 'text' => $lang->user->relogin, 'onclick' => 'locateLogin(this)') )), set::footerClass('justify-center'),