在laravel中创建管理员权限部分

时间:2014-11-05 14:58:19

标签: laravel-4

我创建了几个页面,他们是用户,组和权限。 我希望管理员能够通过权限页面创建组并设置这些组可以执行的操作。

因此,在权限页面上,我会列出用户可以执行的操作,例如:添加内容,删除内容。

如果我检查添加内容框,则该组只能添加内容而不能删除内容。

我遇到的问题是我不知道去哪里寻找有关如何去做的信息。我已经设置了数据库,我想也许会话和路由是可行的,但我不确定。

1 个答案:

答案 0 :(得分:0)

框架是解决这个复杂问题的方法。我正在为我的工作开展一个非常相似的项目(一个基于用户角色/权限做不同事情的仪表板),我发现如果不使用框架就很难管理。我强烈推荐Cartalyst / Sentry。它将复杂的数据库操作(如检查权限,更新权限,创建组等)转换为简单的操作。以下是手册的链接:

Cartalyst/Sentry

它已经为您创建了一个数据库后端(并且可以修改),因此您只需按照安装说明操作并查看文档即可更好地理解。在您的示例中,它就像创建组及其权限一样简单:

// Define permissions (1 is allowed, 0 is not allowed)
$permissions = array('content.create' => 1, 'content.delete' => 1, etc etc...));
$group = Sentry::createGroup(array('name' => 'Admin', 'permissions' => $permissions));

创建用户并将其添加到组中:

$user = Sentry::createUser(array('email' => 'test@test.com', 'first_name' => ..., etc));
$group = Sentry::findGroupByName('Admin');
$user->addGroup($group);

然后在路由期间检查他们的权限:

$user = Sentry::check(); // Aka get the current user.
if($user->hasAccess('content.create'){ 
    // Continue
} else {
    // Redirect to error page, etc
}

现在这是对系统的简要概述,我假设你知道如何使用控制器和路由,但是我可以使用它,我相信你会看到这个框架在使用Laravel时有多强大。

希望有所帮助!

然后检查用户是否