diff --git a/app/Http/Controllers/Admin/SettingController.php b/app/Http/Controllers/Admin/SettingController.php index bdcf822..32fcb1f 100644 --- a/app/Http/Controllers/Admin/SettingController.php +++ b/app/Http/Controllers/Admin/SettingController.php @@ -9,7 +9,7 @@ use Illuminate\Http\Request; use Log; use Maatwebsite\Excel\Facades\Excel; - +use App\Models\User; class SettingController extends Controller { @@ -62,4 +62,26 @@ public function promoCodeCreate(Request $request) } } + public function adminIndex(Request $request) + { + $data = User::paginate(15); + + return view('admin.setting.adminlist', ['data' => $data]); + } + + public function loginStatus(Request $request) + { + $user = User::where('id', $request->id)->first(); + $user->can_login = $request->can_login; + $user->save(); + + return response()->json([ + 'status' => 'success', + 'msg' => '狀態已更新', + 'can_login' => $user->can_login, + ]); + + + } + } diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php index b4ba140..a7e6304 100644 --- a/app/Http/Controllers/LoginController.php +++ b/app/Http/Controllers/LoginController.php @@ -42,6 +42,7 @@ public function redirectToProvider(Request $request) */ public function handleProviderCallback(Request $request) { + // 从 Session 获取 $redirectTo $redirectTo = session('redirect_to', 'member'); @@ -70,6 +71,7 @@ public function handleProviderCallback(Request $request) 'avatar' => $avatar, 'source' => 'cafeg', 'email' => $email, + 'can_login' => 0, ]); Auth::guard('web')->login($newUser); } diff --git a/app/Http/Middleware/AdminAuth.php b/app/Http/Middleware/AdminAuth.php new file mode 100644 index 0000000..842a4f0 --- /dev/null +++ b/app/Http/Middleware/AdminAuth.php @@ -0,0 +1,25 @@ +can_login == 1) { + return $next($request); + } + return redirect()->route('admin.login')->with('error', '此帳號未開通,請聯繫管理員'); + + } +} diff --git a/app/Http/Middleware/AdminRedirect.php b/app/Http/Middleware/AdminRedirect.php index ee3d596..293fb56 100644 --- a/app/Http/Middleware/AdminRedirect.php +++ b/app/Http/Middleware/AdminRedirect.php @@ -20,7 +20,7 @@ public function handle(Request $request, Closure $next): Response if (!Auth::check() && $request->path() != 'admin/register') { return redirect()->route('admin.login'); } - if (Auth::check() && $request->path() == 'admin/login') { + if (Auth::check() && $request->path() == 'admin/login' && Auth::user()->can_login == 1) { return redirect()->route('admin.index'); } diff --git a/app/Models/Member.php b/app/Models/Member.php index 7f1281c..09f2a3a 100644 --- a/app/Models/Member.php +++ b/app/Models/Member.php @@ -66,5 +66,11 @@ public function getPromoCode() { return $this->hasOne(Promocode::class, 'used_count', 'id'); } - + protected function casts(): array + { + return [ + 'email_verified_at' => 'datetime', + 'password' => 'hashed', + ]; + } } diff --git a/app/Models/User.php b/app/Models/User.php index 07fb3d9..a87cf86 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -23,6 +23,7 @@ class User extends Authenticatable 'phone', 'password', 'line_id', + 'can_login', ]; /** @@ -34,6 +35,13 @@ class User extends Authenticatable 'remember_token', ]; + public static $canlogin = + [ + 0 => '未允許', + 1 => '允許', + ]; + + /** * Get the attributes that should be cast. * @@ -46,4 +54,11 @@ protected function casts(): array 'password' => 'hashed', ]; } + + public function getCanLoginStatusAttribute() + { + return self::$canlogin[$this->attributes['can_login']] ?? '未知狀態'; + } + + } diff --git a/resources/menu/verticalMenu.json b/resources/menu/verticalMenu.json index ea4b091..34d8ec3 100644 --- a/resources/menu/verticalMenu.json +++ b/resources/menu/verticalMenu.json @@ -21,6 +21,11 @@ "url": "admin/setting/promocode", "name": "優惠代碼", "slug": "setting-promocode" + }, + { + "url": "admin/setting/adminlist", + "name": "後台登入人員", + "slug": "setting-adminlist" } ] }, diff --git a/resources/views/admin/login.blade.php b/resources/views/admin/login.blade.php index 6fe89bd..6de2a96 100644 --- a/resources/views/admin/login.blade.php +++ b/resources/views/admin/login.blade.php @@ -72,7 +72,7 @@ // Core stylesheets 'core.scss': 'https://demos.pixinvent.com/materialize-html-laravel-admin-template/demo/build/assets/core-kL5gEEKA.css', 'core-dark.scss': 'https://demos.pixinvent.com/materialize-html-laravel-admin-template/demo/build/assets/core-dark-DFvmi5J3.css', - + // Themes 'theme-default.scss': 'https://demos.pixinvent.com/materialize-html-laravel-admin-template/demo/build/assets/theme-default-Bt2z4DrM.css', 'theme-default-dark.scss': 'https://demos.pixinvent.com/materialize-html-laravel-admin-template/demo/build/assets/theme-default-dark-CHvAJUy2.css', @@ -93,7 +93,7 @@ - +