Pārlūkot izejas kodu

增加admin_redirect函数

jqh 3 gadi atpakaļ
vecāks
revīzija
cdf25920a9

+ 9 - 2
resources/assets/dcat/js/extensions/Ajax.js

@@ -74,10 +74,17 @@ export default class Ajax {
             case 403:
                 return Dcat.error(_msg || (Dcat.lang['403'] || 'Permission deny!'));
             case 401:
-                if (json.login) {
-                    return location.href = json.login;
+                if (json.redirect) {
+                    return location.href = json.redirect;
                 }
                 return Dcat.error(Dcat.lang['401'] || 'Unauthorized.');
+            case 301:
+            case 302:
+                console.log('admin redirect', json);
+                if (json.redirect) {
+                    return location.href = json.redirect;
+                }
+                return;
             case 419:
                 return Dcat.error(Dcat.lang['419'] || 'Sorry, your page has expired.');
 

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/adminlte/adminlte.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/adminlte/adminlte.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/dcat/extra/action.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/dcat/extra/grid-extend.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/dcat/extra/select-table.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/dcat/extra/upload.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/dcat/js/dcat-app.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
resources/dist/dcat/js/dcat-app.js.map


+ 1 - 11
src/Http/Middleware/Authenticate.php

@@ -26,17 +26,7 @@ class Authenticate
             return $next($request);
         }
 
-        $loginPage = admin_base_path('auth/login');
-
-        if ($request->ajax() && ! $request->pjax()) {
-            return response()->json(['message' => 'Unauthorized.', 'login' => $loginPage], 401);
-        }
-
-        if ($request->pjax()) {
-            return response("<script>location.href = '$loginPage';</script>");
-        }
-
-        return redirect()->guest($loginPage);
+        return admin_redirect('auth/login', 401);
     }
 
     /**

+ 31 - 0
src/Support/Helper.php

@@ -12,6 +12,7 @@ use Illuminate\Http\Request;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\File;
+use Illuminate\Support\Facades\URL;
 use Illuminate\Support\Str;
 use Symfony\Component\Process\Process;
 
@@ -969,4 +970,34 @@ class Helper
 
         return array_key_exists($key, $arrayOrObject);
     }
+
+    /**
+     * 跳转.
+     *
+     * @param string $to
+     * @param int $statusCode
+     * @param Request $request
+     *
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\Routing\Redirector
+     */
+    public static function redirect($to, int $statusCode = 302, $request = null)
+    {
+        $request = $request ?: request();
+
+        if (! URL::isValidUrl($to)) {
+            $to = admin_base_path($to);
+        }
+
+        if ($request->ajax() && ! $request->pjax()) {
+            return response()->json(['redirect' => $to], $statusCode);
+        }
+
+        if ($request->pjax()) {
+            return response("<script>location.href = '{$to}';</script>");
+        }
+
+        $redirectCodes = [201, 301, 302, 303, 307, 308];
+
+        return redirect($to, in_array($statusCode, $redirectCodes, true) ? $statusCode : 302);
+    }
 }

+ 17 - 0
src/Support/helpers.php

@@ -2,6 +2,7 @@
 
 use Dcat\Admin\Admin;
 use Dcat\Admin\Support\Helper;
+use Illuminate\Http\Request;
 use Illuminate\Contracts\Support\Htmlable;
 use Illuminate\Contracts\Support\Renderable;
 use Illuminate\Support\MessageBag;
@@ -555,3 +556,19 @@ if (! function_exists('admin_exit')) {
         Admin::exit($response);
     }
 }
+
+if (! function_exists('admin_redirect')) {
+    /**
+     * 跳转.
+     *
+     * @param string $to
+     * @param int $statusCode
+     * @param Request $request
+     *
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\Routing\Redirector
+     */
+    function admin_redirect($to, int $statusCode = 302, Request $request = null)
+    {
+        return Helper::redirect($to, $statusCode, $request);
+    }
+}

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels