Files

116 lines
4.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use App\Admin;
use App\AdminModuleAction;
use App\AdminRole;
use App\AdminRolePermission;
use Closure;
use Illuminate\Support\Facades\Route;
class AdminAuthenticate
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$admin = session()->get('admin_username');
if (empty($admin)) {
//return response()->json(['error' => '999', 'message' => '请先登录']);
return redirect('/superdad');
}
// if (Session::getId()!=Auth::user()->last_session){
// }
$admin_user = Admin::where('username', $admin)->select()->first();
if(session() -> getId() != $admin_user -> session_id){
session()->put('admin_username', '');
session()->put('admin_id', '');
session()->put('admin_role_id','');
session()->put('admin_is_super', '');
return redirect('/superdad');
}
$admin_role = AdminRole::where('id', $admin_user->role_id)->first();
$admin_permit = AdminRolePermission::where('role_id', $admin_user->role_id)->get();
$arr = [];
foreach ($admin_permit as $v) {
$arr[] = $v['action'];
if ($v['action'] == 'admin/user/list') {
$arr[] = 'admin/user/cash_info';
$arr[] = 'admin/user/cash_info_international';
}
if ($v['action'] == 'admin/invite/childs') { // 可以查看关系图时也要赋下面的权限
$arr[] = 'admin/invite/getTop';
$arr[] = 'admin/invite/getSon';
}
if ($v['action'] == 'admin/micro_order') {
$arr[] = 'admin/micro_order_list';
}
if ($v['action'] == 'admin/deposit/config/view') {
$arr[] = 'admin/deposit/config';
}
if ($v['action'] == 'admin/currency/deposit_order') {
$arr[] = 'admin/currency/deposit_order/list';
}
if ($v['action'] == 'admin/bind_box/index') {
$arr[] = 'admin/bind_box/list';
}
if ($v['action'] == 'admin/bind_box/order') {
$arr[] = 'admin/bind_box/orderList';
}
if ($v['action'] == 'admin/bind_box/quotation') {
$arr[] = 'admin/bind_box/quotationList';
}
if ($v['action'] == 'admin/bind_box/rarity_house') {
$arr[] = 'admin/bind_box/rarity_house_list';
}
if ($v['action'] == 'admin/bind_box/success_order') {
$arr[] = 'admin/bind_box/success_order_list';
}
if ($v['action'] == 'admin/dual/index') {
$arr[] = 'admin/dual_list';
}
if ($v['action'] == 'admin/dual/order') {
$arr[] = 'admin/dual/order_lists';
}
if ($v['action'] == 'admin/currency') {
$arr[] = 'admin/currency_list';
}
if ($v['action'] == 'admin/currency/match') {
$arr[] = 'admin/currency/match_list';
}
if ($v['action'] == 'admin/currency/project/view') {
$arr[] = 'admin/currency/project/list';
}
if ($v['action'] == 'admin/user/charge_req') {
$arr[] = 'admin/user/charge_list';
}
if ($v['action'] == 'admin/wallet/index') {
$arr[] = 'admin/wallet/list';
}
}
// print_r($arr);exit();
$name = Route::getCurrentRoute()->uri();
if ($admin_role['is_super'] != 1 && (!in_array($name, $arr))) {
//return response()->json(['type'=>'997','message'=>'权限不够!']);
if($request->ajax()){
return response()->json(['type'=>'997','message'=>'权限不够!']);
}
abort(403, '权限不够');
}
//dd($name);
return $next($request);
}
}