牛骨文教育服务平台(让学习变的简单)
博文笔记

laravel entrust 权限管理

创建时间:2017-04-05 投稿人: 浏览次数:129

最近在用laravel做权限管理,用的是entrust扩展,所以总结了一下用法.我是根据自己的思路理解的ertrust来写的,当然可以根据自己的需求去做

创建用户

DB::table("users")->insert(
                [
                    "name" => "admin",
                    "email" => "admin@qq.com",
                    "mobile" => "10136989522",
                    "password" => bcrypt("123456"),
                    "sex"=>"男",
                    "birthday"=>"2000-01-20",
                    "address_province"=>"北京市",
                    "address_city"=>"北京市",
                    "address_district"=>"朝阳区",
                    "active" => true,
                    "created_at" => new DateTime(),
        ]);


创建超级管理员角色

$SuperAdmin = new Role();
$SuperAdmin->name = "SuperAdmin";
$SuperAdmin->display_name = "超级管理员";
$SuperAdmin->description = "网站最高权利者.管理网站用户和员工,及进行系统设置,网站维护";
$SuperAdmin->save();

创建后台管理员角色

$admin = new Role();
$admin->name = "admin";
$admin->display_name = "登录后台";
$admin->description = "只能登录后台";
$admin->save();

创建用户管理权限及二级添加用户权限

$user= new Permission();
$user->name = "user";
$user->display_name = "用户管理权限";
$user->description = "后台用户管理所有权限";
$user->fid = 0;
$user->save();

$adduser= new Permission();
$adduser->name = "adduser";
$adduser->display_name = "添加用户权限";
$adduser->description = "后台添加用户权限";
$adduser->fid = $user->id;
$adduser->save();

给用户添加角色

$adminUser = User::where("name", "admin")->first();
//赋予所有的角色
$adminRoles  = Role::select("id")->get()->toArray();
$adminUser->attachRoles($adminRoles);
//赋予单一的角色
$adminRole  = Role::where("name","admin")->get();
$adminUser->attachRoles($adminRole);

删除用户角色

$user = User::find($id);
$user->detachRoles();//删除所有角色
$user->attachRoles($roles);//赋予新的角色

给角色添加权限

$owner = Role::where("name","SuperAdmin")->first();
//添加所有的权限
$createPost  = Permission::select("id")->get()->toArray();
$owner->attachPermissions($createPost);
//添加单一的权限
$createPost  = Permission::where("name","admin")->first();
$owner->attachPermission($createPost);
删除角色的权限

$role=Role::find("id");
$oldPermissions=$role->getPermissionIds();
$role->detachPermissions($oldPermissions);
 本文自己整理原创未经同意严禁转发






声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。