jeroen-g/laravel-auth

此包已被废弃,不再维护。未建议替代包。

laravel认证的一个简单扩展。

v1.0-beta 2014-03-10 22:14 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:32:01 UTC


README

仅为Laravel的一个认证包。

Build Status Scrutinizer Quality Score Latest Stable Version

安装

将此行添加到您的composer.json

"jeroen-g/laravel-auth": "dev-master"

然后更新Composer

composer update

app/config/app.php中添加服务提供者

'JeroenG\LaravelAuth\LaravelAuthServiceProvider',

最后一件要做的事情是将迁移应用到创建用户、角色和权限的表

php artisan migrate --package="jeroen-g/laravel-auth"

使用方法

检查用户是否有权限

if(Auth::can('edit'))
{
	// show a form to edit stuff.
}

检查用户是否有角色

if(Auth::is('Moderator'))
{
	// Show a form to edit stuff, if the 'Moderator' role has the 'edit' permission.
}

检查用户是否为管理员

要使用此功能,请确保给用户分配“管理员”角色。

Auth::isAdmin();

例如,您可以使用此功能创建一个过滤器来保护您的后端。

Route::filter('auth.admin', function()
{
	if ( ! Auth::isAdmin()) return Redirect::to('login');
});

获取所有可用的角色/权限/用户

Auth::allRoles();

Auth::allPermissions();

Auth::allUsers();

//Example of both optional parameter
Auth::allUsers('json', true);

两者都接受两个可选参数,即返回结果的格式:数组、对象或JSON。默认返回数组。第二个参数是一个布尔值,将其设置为true,如果您想包含已删除的项目。

将角色/权限分配给用户

Auth::giveRole('Member', 2);

Auth::givePermission('edit', 2);

在这两种情况下,第二个参数是用户ID。这是可选的,如果没有传递,则使用登录用户的ID。

将权限分配给角色

Auth::giveRolePermission('edit', 'Admin');

第一个参数是权限,第二个是角色。要检查角色是否具有特定的权限,可以使用roleCan()函数。

Auth::roleCan('Admin', 'edit');

从用户/角色中移除角色/权限

Auth::takeRole('Member', 2);

Auth::takePermission('edit', 2);

Auth::takeRolePermission('edit', 'Admin');

检查角色/权限/用户是否存在

Auth::roleExists('Admin');

Auth::permissionExists('edit');

Auth::userExists(2);

所有三个函数都接受一个第二个参数,即truefalse,这决定了是否也会使用已删除的条目(已删除的条目是从数据库中软删除的,见下文)。

添加新的角色/权限/用户

// Name, description, level (any number)
Auth::addRole('Admin', 'One Role To Rule Them All', 10);

// Name, description
Auth::addPermission('edit', 'Ability to edit stuff');

// Username, password, email
Auth::addUser('Jeroen', 'password123', 'jeroen@example.com');

删除角色/权限/用户

Auth::deleteRole('Moderator');

Auth::deletePermission('edit', true);

Auth::deleteUser(2);

所有三个函数都接受第二个参数。这个布尔值表示是否应该使用强制方式删除(默认设置为false)(角色/权限/用户)。软删除(即非强制方式)将不会包含在每次对数据库的请求中(除非另有说明)。然而,它们可以被恢复。