Explorar o código

相册加权限

moshaorui hai 3 días
pai
achega
6e4de5eaab

+ 1 - 3
app/Http/Controllers/AuthController.php

@@ -38,10 +38,8 @@ class AuthController extends BaseController
         //去除空格
         $credentials = array_map('trim', $credentials);
 
-
         if (Auth::guard('web')->attempt($credentials, false)) {
-
-
+          //  $request->session()->regenerate();
             // 登录成功
             return ['status'=>'success','message'=>'登录成功'];
         }

+ 41 - 22
app/Http/Controllers/Controller.php

@@ -16,34 +16,53 @@ class Controller extends BaseController
 
     public function __construct()
     {
-        // 一次性查询所有文件夹
-        $folders = SiteAlbumFolder::all();
-        // 构建父子关系树
-        $fid = isset($_GET['fid'])? $_GET['fid'] : 0;
-        $result = SiteAlbumFolder::buildTree($folders);
-        $result = $result->toArray();
-        foreach ($result as $key => $item) {
-            $checked = false;
-            foreach ($item['children'] as $child) {
-                if ($fid == $child['id']) {
-                    $checked = true;
-                }
-                foreach ($child['children'] as $subChild) {
-                    if ($fid == $subChild['id']) {
+        $this->middleware(function ($request, $next) {
+            $user = Auth::guard('web')->user();
+            $permission = $user->permission;
+            if (!$permission) {
+                $permission = [];
+            } else {
+                $permission = json_decode($permission, true);
+            }
+            // 一次性查询所有文件夹
+            $folders = SiteAlbumFolder::all();
+            if ($permission) {
+                $folders = $folders->filter(function ($folder) use ($permission) {
+                    return in_array($folder->id, $permission);
+                });
+            }
+            //dd($permission);
+
+            if (empty($folders->count())) {
+                die('未授权,请联系管理员');
+            }
+            // 构建父子关系树
+            $fid = isset($_GET['fid'])? $_GET['fid'] : 0;
+            $result = SiteAlbumFolder::buildTree($folders);
+            $result = $result->toArray();
+            foreach ($result as $key => $item) {
+                $checked = false;
+                foreach ($item['children'] as $child) {
+                    if ($fid == $child['id']) {
                         $checked = true;
                     }
+                    foreach ($child['children'] as $subChild) {
+                        if ($fid == $subChild['id']) {
+                            $checked = true;
+                        }
+                    }
                 }
+                if ($fid == $item['id']) {
+                    $checked = true;
+                }
+                $result[$key]['checked'] = $checked;
             }
-            if ($fid == $item['id']) {
-                $checked = true;
-            }
-            $result[$key]['checked'] = $checked;
-        }
-
-        //dd($result);
-        $this->foldersTree = $result;
 
+            //dd($result);
+            $this->foldersTree = $result;
 
+            return $next($request);
+        });
 
 
     }

+ 5 - 2
app/Http/Controllers/HomeController.php

@@ -32,7 +32,6 @@ class HomeController extends Controller
 
     public function main(Request $request)
     {
-
         return view('main',['foldersTree' => $this->foldersTree]);
     }
 
@@ -329,7 +328,11 @@ class HomeController extends Controller
     //返回分类树第一个无子节点的ID
     private function getFoldersTreeFirstId()
     {
+        $default_id = 0;
         foreach ($this->foldersTree as $key => $value) {
+            if ($default_id == 0) {
+                $default_id = $value['id'];
+            }
 //            if (isset($value['children'])) {
 //                foreach ($value['children'] as $k => $v) {
 //                    return $v['id'];
@@ -341,7 +344,7 @@ class HomeController extends Controller
                 return $value['id'];
             }
         }
-        return 0;
+        return $default_id;
     }
 
 }