如何使用codeigniter在php中执行权限?
我已经用Codeigniter框架构建了包含主题、用户、评论、用户配置文件和会话的小型php脚本,但我现在不知道如何为用户授予权限 我的意思是如何使只有注册的人才能添加主题和评论之类的东西 我试着通过训练来达到目的如何使用codeigniter在php中执行权限?,php,codeigniter,Php,Codeigniter,我已经用Codeigniter框架构建了包含主题、用户、评论、用户配置文件和会话的小型php脚本,但我现在不知道如何为用户授予权限 我的意思是如何使只有注册的人才能添加主题和评论之类的东西 我试着通过训练来达到目的 if($this->session->userdata('is_logged_in')) { // here something like add topic or comment buttons } 我说得对吗?这是做权限的唯一方法吗?或者还有其他更好的方
if($this->session->userdata('is_logged_in'))
{
// here something like add topic or comment buttons
}
我说得对吗?这是做权限的唯一方法吗?或者还有其他更好的方法吗?您没有提到您使用的CI版本,但对于2.x(CodeIgniter v3要求类名为ucfirst()),我发现ion_auth非常好,并且非常易于设置。你可以在这里买到。 它有一些不错的功能,您可以通过指定的组或主“登录”方法限制某些视图/页面或方法 要放入构造中的脚本非常简单
if (!$this->ion_auth->logged_in()){
redirect('auth/login', 'refresh');
}
我不认为这样的东西在ci中是可用的,但您可以通过使用user\u type或对您的用户进行分类来实现 类似于管理员用户\u type=“admin”或1 对于客户用户\u type=“客户”或2
我在2年前就实现了这个东西,到现在为止,它从来没有遇到任何问题,甚至进一步的修改,比如创建另一个组,都非常简单。我看到数据库中已经有一个名为“users”的表,添加一个新列,我们称之为“privilege”,它将包含用户权限的代码,假设0代表管理员,1代表客户,2代表来宾…等等 假设只有管理员和客户可以发表评论,那么您的代码将检查用户权限并做出相应的决定 伪代码:
if($this->session->userdata('is_logged_in'))
{
// let say the user_id is loaded in the session
$user_id = $this->session->userdata('user_id');
$this->load->model('user_mdl');
$user_priv = $this->user_mdl->get_user_priv($user_id);
if($user_priv == 0 or $user_priv == 1)
{
// here something like add topic or comment buttons
}
else
{
// sorry you don't have permission to do comment or something interesting
}
}
如果希望规范化它,而不是在users表中设置列,您还可以创建一个新的表“privileges”,并将它(通过外键)链接到用户
希望有帮助
干杯 如果不知道用户部分(即用户表和相关模型控制器)是如何制作的,就很难说了。但您的代码是实现它的好方法。