laravel权限管理实操01
2019-08-08 21:35
1066 查看
[code]<?php namespace App\Http\Controllers\Admin; use App\Role; use App\User; use Gregwar\Captcha\CaptchaBuilder; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Pagination\Paginator; use Illuminate\Support\Facades\DB; class AdminController extends Controller { // public function login(Request $request){ if($request->isMethod('POST')){ $code = $request->input('code'); $_code = $request->session()->get('adminCode'); if($_code!=$code){ return response()->json(['status'=>'false','message'=>'验证码错误!']); } $username = trim($request->input('username')); $password = sha1(md5(trim($request->input('password')))); $user = User::whereRaw('username =? AND password = ?',[$username,$password])->first(); // if(false==$user){ $ret = ['status'=>'false','message'=>'用户名和密码错误!']; }else{ $request->session()->put('admin_id',$user->id); $request->session()->put('admin_username',$user->username); $salt = sha1($user->id.time().$user->username); User::where('id',$user->id)->update(['salt'=>$salt]); $request->session()->put('salt', $salt); $ret = ['status'=>'success','message'=>'登录完成!']; } return response()->json($ret); } return view('admin.login'); } public function index(){ return view('admin.index'); } public function info(){ return '欢迎来到后台!'; } public function role(){ $roles = Role::all(); return view('admin.role',['roles'=>$roles]); } public function roleadd(Request $request){ if($request->isMethod('post')){ $name = $request->input('name'); //$ret = DB::table('role')->insert(['name'=>$name,'status'=>1]); $ret = Role::create(['name'=>$name,'status'=>1]); if($ret){ $ret = ['status'=>'success']; }else{ $ret = ['status'=>'false']; } return $ret; } return view('admin.roleadd'); } //角色修改 public function roleedit(Request $request){ $id = $request->input('id'); if($request->isMethod('post')){ $name = $request->input('name'); $role = Role::find($id); $role->name = trim($request->input('name')); $res = $role->save(); if($res){ $ret = ['status'=>'success']; }else{ $ret = ['status'=>'false']; } return $ret; //dd($data); } $role = Role::find($id); return view('admin.role-edit',['role'=>$role]); } //角色权限设置方法 public function roleset(Request $request){ $id = $request->input('id'); if($request->isMethod('post')){ $role_id = $request->input('id'); $accessId = $request->input('accessId',[]); //先把已有的功能权限取出 $TakenAccess = DB::table('role_access')->where('role_id', $role_id)->get(); $TakenAccess= $TakenAccess->toArray(); $TakenId = array_column($TakenAccess,'access_id'); //dd($TakenId); //新id在已有的ID上做对比将老的id取出,然后删除 $deleteId = array_diff($TakenId,$accessId); //dd($deleteId); foreach ($deleteId as $v){ DB::table('role_access')->where('access_id',$v)->delete(); } //exit(); //新功能点 //dd($TakenId); $_NewaccessId = array_diff($accessId,$TakenId);//$accessId; //$_NewaccessId = $accessId; //保存新功能ID foreach ($_NewaccessId as $v){ DB::table('role_access')->insert([ 'role_id'=>$role_id, 'access_id'=>$v, ]); } return response()->json(['status'=>'success']); } $role = DB::table('role')->where('id',$id)->first(); if(false==$role){ return redirect()->Route('role-home'); } $access = DB::table('access')->where('status',1)->get(); $TakenAccess = DB::table('role_access')->where('role_id',$id)->get(); $TakenAccess= $TakenAccess->toArray(); $TakenId = array_column($TakenAccess,'access_id'); //dd($TakenId); return view('admin.role-set',['role'=>$role,'access'=>$access,'Taken'=>$TakenId]); } //功能管理 public function access(Request $request){ $access = DB::table('access')->get(); return view('admin.access-list',['access'=>$access]); } public function accessadd(Request $request){ if($request->isMethod('post')){ $title = $request->input('title'); $route = trim($request->input('route')); $res = DB::table('access')->insert(['title'=>$title,'route'=>$route,'status'=>1]); if($res){ $ret = ['status'=>'success','message'=>'增加完成!']; }else{ $ret = ['status'=>'false','message'=>'增加失败!']; } return response()->json($ret);//json_encode($ret); } return view('admin.access-add'); } public function accessEdit(Request $request){ $id = $request->input('id'); if($request->isMethod('post')){ $title = $request->input('title'); $route = trim($request->input('route')); $id = trim($request->input('id')); $num = DB::table('access')->where('id',$id)->update(['title'=>$title,'route'=>$route]); if(!$num){ $ret = ['status'=>'false']; }else{ $ret = ['status'=>'success']; } return response()->json($ret); } $access = DB::table('access')->where('id',$id)->first(); return view('admin.access-edit',['access'=>$access]); } //RBAC用户管理 public function userHome(Request $request){ $users = DB::table('user')->whereRaw('manage=? OR is_admin=?',[1,1])->get(); //dd($users); return view('admin.user-home',['users'=>$users]); } public function logout(Request $request){ $request->session()->flush(); return redirect()->Route('admin-login'); } public function tips(){ return view('tips'); } public function userSet(Request $request){ $user_id = $request->input('id'); if($request->isMethod('post')){ $truename =$request->input('name'); $roleId = $request->input('roleId',[]); $user_id = $request->input('id'); $user = User::find($user_id); $user->truename = $truename; $user->save(); $_roleId = DB::table('role_user')->where('user_id',$user_id)->get(); $_roleId = array_column($_roleId->toArray(),'role_id'); //delete old roler 删除老的角色 $_oldRoleId = array_diff($_roleId,$roleId); foreach ($_oldRoleId as $v){ DB::table('role_user')->whereRaw('user_id=? AND role_id=?',[$user_id,$v])->delete(); } $_newRoleId = array_diff($roleId,$_roleId); //dd($_newRoleId); foreach ($_newRoleId as $v){ DB::table('role_user')->insert(['user_id'=>$user_id,'role_id'=>$v]); } return response()->json(['status'=>'success']); } $user = User::find($user_id); $roles = DB::table('role')->get(); $TakenRole = DB::table('role_user')->where('user_id',$user_id)->get(); $TakenRole = $TakenRole->toArray(); $TakenId = array_column($TakenRole,'role_id'); //dd($TakenId); $data = ['user'=>$user,'roles'=>$roles,'TakenId'=>$TakenId]; return view('admin.user-set',$data); } public function userAdd(Request $request){ if($request->isMethod('post')){ $inputUser = $request->input('email'); $trunename = $request->input('name'); $roleids = $request->input('roleId',[]); $user = User::whereRaw('email=? OR username=?',[$inputUser,$inputUser])->first(); if(false ==$user){ return response()->json(['status'=>'false','message'=>'用户不存在!']); }else{ $user_id = $user->id; } $res = User::where('id',$user_id)->update(['manage'=>1,'truename'=>$trunename]); foreach ($roleids as $v){ DB::table('role_user')->insert(['user_id'=>$user_id,'role_id'=>$v]); } return response()->json(['status'=>'success','messa 3ff7 ge'=>'增加成功!']); } $roles = DB::table('role')->get();//';' return view('admin.user-add',['roles'=>$roles,'access'=>[]]); } public function Captcha(Request $request) { //生成验证码图片的Builder对象,配置相应属性 //$builder = new CaptchaBuilder; $builder = new CaptchaBuilder(); //可以设置图片宽高及字体 $builder->build($width = 120, $height = 50, $font = null); //获取验证码的内容 $phrase = $builder->getPhrase(); //把内容存入session //Session::flash('milkcaptcha', $phrase); $request->session()->put('adminCode',$phrase); //生成图片 header("Cache-Control: no-cache, must-revalidate"); header('Content-Type: image/jpeg'); $builder->output(); } }
相关文章推荐
- (01)权限管理模块整体开发定位
- Laravel框架实现的rbac权限管理操作示例
- Linux基础入门及系统管理01-Linux运维必备知识-用户及权限详解10
- (01)大型信息化系统组件 - 通用权限管理模块整体开发定位
- laravel 权限管理
- Laravel 实现简单Rbac 权限管理
- laravel5.1的用户权限管理的实现
- 从零开始——基于角色的权限管理01
- 从零开始——基于角色的权限管理01(补充)
- laravel entrust 权限管理
- laravel中角色与权限的管理
- laravel学习笔记------使用 Entrust 扩展包在 Laravel 5 中实现 RBAC 权限管理
- Django实战1-权限管理功能实现-01:搭建开发环境
- linux 实操 - 12. 组管理和权限管理
- Linux基础入门及系统管理01-Linux操作系统权限及权限管理12
- laravel权限验证实操02
- B-S模式中OA框架之权限管理系统-01
- Laravel 5.* 安装 Sentry 用户权限管理依赖包
- Laravel Permission 实现 RBAC 权限实操详解
- laravel entrust权限系统,管理角色添加删除用户