所以我在CodeIgniter中创建我的第一个项目,我想知道是否有一种有效的方式来强制用户限制,基于他们属于哪个用户组。CodeIgniter通过会话的用户权限
此应用程序中有3个用户组(管理员,教师和学生),每个用户组都有自己的权限。什么是实施这个最好的方法?
目前我只是把它放到会话变量中,几乎在每个页面上读取它。有东西告诉我必须有更简单的方法来做到这一点?
在此先感谢。
亲切的问候
格伦
所以我在CodeIgniter中创建我的第一个项目,我想知道是否有一种有效的方式来强制用户限制,基于他们属于哪个用户组。CodeIgniter通过会话的用户权限
此应用程序中有3个用户组(管理员,教师和学生),每个用户组都有自己的权限。什么是实施这个最好的方法?
目前我只是把它放到会话变量中,几乎在每个页面上读取它。有东西告诉我必须有更简单的方法来做到这一点?
在此先感谢。
亲切的问候
格伦
用户表中的一个简单的组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的实现更灵活的权限,这可能是更适合的路线。对于你当前的情况,在构造函数或方法中进行通用检查就可以了。
如果你把它放到你的控制器的构造函数,它就会叫出每一页上,但你不必调用它每次使用方法。
在数据库表中使用组标识。并将其存储到会话中。并使用此组ID检查授权和身份验证。