2013-02-28 120 views
0

所以我在CodeIgniter中创建我的第一个项目,我想知道是否有一种有效的方式来强制用户限制,基于他们属于哪个用户组。CodeIgniter通过会话的用户权限

此应用程序中有3个用户组(管理员,教师和学生),每个用户组都有自己的权限。什么是实施这个最好的方法?

目前我只是把它放到会话变量中,几乎在每个页面上读取它。有东西告诉我必须有更简单的方法来做到这一点?

在此先感谢。

亲切的问候

格伦

回答

0

用户表中的一个简单的组ID对于您的应用程序听起来会很好。然后你可以像鲶鱼说的那样做,并在控制器构造函数或特定的方法本身中进行检查。

将来实现像“权限”或“角色”或“范围”这样的另一个表格将允许您在应用程序内创建细粒度权限。看到这样实现的OAuth服务器(https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-Server

function user_get($id) 
{ 
    $this->load->library('oauth_resource_server'); 
    if (! $this->oauth_resource_server->has_scope(array('user.details', 'another.scope'))) 
    { 
     // Error logic here - "access token does not have correct permission to user this API method" 
    } 

    // API code here 
} 

当你需要真正的微调权限,或希望当您创建的RESTful API的实现更灵活的权限,这可能是更适合的路线。对于你当前的情况,在构造函数或方法中进行通用检查就可以了。

0

如果你把它放到你的控制器的构造函数,它就会叫出每一页上,但你不必调用它每次使用方法。

1

在数据库表中使用组标识。并将其存储到会话中。并使用此组ID检查授权和身份验证。