我只是在寻找阻止无权查看特定页面的用户的方法。我尝试在我的后端控制器内部的 codeigniter 核心文件夹中组合一个函数,并让我的所有后端控制器扩展它。我想把这个函数放在它们里面,以保持把这个函数放在每个控制器里面的 DRY 原则。
我正在寻找一种不同的编写函数的方式,或者只是关于我应该如何处理函数的不同想法。
public function view_allowed($user_data)
{
if ($user_data->role_id != 4)
{
return false;
}
return true;
}
有了这个,我只需在其他控制器的结构中调用该函数并执行 if 语句,如果它返回 false 则直接到其他页面,该页面会说他们没有正确的信用来查看该页面。
有任何问题、意见和疑虑吗?
编辑 2:
我不得不进行编辑,因为我正在考虑这会做什么。我想要做的目的是在每个控制器构造上运行普通用户不应该能够查看并且只有管理员可以查看的功能。因此,如果我执行以下操作,如果用户无法查看该页面,它将如何知道重定向到不同的页面。
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Recent_activities extends Backend_Controller
{
/**
* Load the parent construct and any additional models, helper, libraries available.
* @return void
*/
public function __construct()
{
parent::__construct();
$view_allowed = view_allowed($user_data);
}
public function index()
{
$this->breadcrumb->add_crumb('<li><a href="' . site_url() .
'control-panel/activities/recent-activities">Activities</a></li>');
$this->breadcrumb->add_crumb('Recent Activites');
$activities = $this->user->get_all();
$this->template
->title('Recent Activites')
->build('recent_activities_view');
}
}