Browse Source

Merge branch 'master' of https://revinr.site/mostafij-revinr/student-admission

Israat Zarin 2 years ago
parent
commit
3c2009e005

+ 93 - 0
app/Http/Controllers/Admin/AdminController.php

@@ -0,0 +1,93 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Http\Request;
+use Auth;
+use Mail;
+use Session;
+use Hash;
+
+class AdminController extends Controller
+{
+    
+    public function __construct(){
+
+        $this->middleware('admin');
+
+    }
+
+
+    public function dashboard()
+    {
+        $admin = Auth::guard('admin')->user();
+        return view('admin.admin_profile');
+    }
+
+    /**
+     * Show the form for creating a new resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function create()
+    {
+        //
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function show($id)
+    {
+        //
+    }
+
+    /**
+     * Show the form for editing the specified resource.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function edit($id)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, $id)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy($id)
+    {
+        //
+    }
+}

+ 86 - 0
app/Http/Controllers/AdminAuth/LoginController.php

@@ -0,0 +1,86 @@
+<?php
+
+namespace App\Http\Controllers\AdminAuth;
+
+use App\Http\Controllers\Controller; 
+use Illuminate\Foundation\Auth\AuthenticatesUsers;
+use Illuminate\Support\Facades\Auth; 
+use Illuminate\Http\Request; 
+use App\Models\Admin;
+ 
+use Session;
+
+class LoginController extends Controller
+{
+  
+    public $redirectTo = '/admin/dashboard';
+
+
+    public function __construct()
+    {
+        $this->middleware('admin.guest', ['except' => 'logout']);
+    }
+
+    /**
+     * Show the application's login form.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function showLoginForm()
+    {
+        return view('admin.auth.admin_login');
+    }
+
+    
+
+
+    public function login(Request $request)
+    {
+        $admin = Admin::where('email',$request->email)->first();
+
+        if(!$admin){
+            return redirect('/admin-login')->with('error','Unknown Email address!');
+        }elseif($admin->status){
+
+            $credentials = [
+                'email' => $request->email,
+                'password' => $request->password
+            ];
+            
+            if (Auth::guard('admin')->attempt($credentials)){
+
+                return redirect('admin/dashboard');
+
+            }else{
+                
+                return redirect('/admin-login')->with('error','Wrong Email/Password combination');
+
+            }
+
+        }else{
+            return redirect('/admin-login')->with('error', 'Account Status is not Activated!');
+        }
+    }
+
+    /**
+     * Get the guard to be used during authentication.
+     *
+     * @return \Illuminate\Contracts\Auth\StatefulGuard
+     */
+    protected function guard()
+    {
+        return Auth::guard('admin');
+    }
+
+    public function logout(){  
+        $this->guard('admin')->logout();
+        return redirect('/admin-login'); 
+    }
+
+    public function showRegisterForm()
+    {
+        return view('admin.auth.register');
+    }
+
+    
+}

+ 2 - 0
app/Http/Kernel.php

@@ -55,6 +55,8 @@ class Kernel extends HttpKernel
     protected $routeMiddleware = [
         'teacher' => \App\Http\Middleware\RedirectIfNotTeacher::class,
         'teacher.guest' => \App\Http\Middleware\RedirectIfTeacher::class,
+        'admin' => \App\Http\Middleware\RedirectIfNotAdmin::class,
+        'admin.guest' => \App\Http\Middleware\RedirectIfAdmin::class,
         'auth' => \App\Http\Middleware\Authenticate::class,
         'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
         'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,

+ 26 - 0
app/Http/Middleware/RedirectIfAdmin.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\Auth;
+
+class RedirectIfAdmin
+{
+	/**
+	 * Handle an incoming request.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @param  \Closure  $next
+	 * @param  string|null  $guard
+	 * @return mixed
+	 */
+	public function handle($request, Closure $next, $guard = 'admin')
+	{
+	    if (Auth::guard($guard)->check()) {
+	        return redirect('admin/dashboard');
+	    }
+
+	    return $next($request);
+	}
+}

+ 26 - 0
app/Http/Middleware/RedirectIfNotAdmin.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\Auth;
+
+class RedirectIfNotAdmin
+{
+	/**
+	 * Handle an incoming request.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @param  \Closure  $next
+	 * @param  string|null  $guard
+	 * @return mixed
+	 */
+	public function handle($request, Closure $next, $guard = 'admin')
+	{
+	    if (!Auth::guard($guard)->check()) {
+	        return redirect('admin-login');
+	    }
+
+	    return $next($request);
+	}
+}

+ 26 - 0
app/Models/Admin.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Foundation\Auth\User as Authenticatable;
+
+class Admin extends Authenticatable
+{
+    protected $guard_name = 'admin';
+    protected $table = 'admins';
+
+    protected $fillable = [
+        'name', 'email', 'password','attachment_id','status'
+    ];
+
+    /**
+     * The attributes that should be hidden for arrays.
+     *
+     * @var array
+     */
+    protected $hidden = [
+        'password', 'remember_token',
+    ];
+
+}

+ 1 - 1
composer.lock

@@ -7278,5 +7278,5 @@
         "php": "^7.2.5|^8.0"
     },
     "platform-dev": [],
-    "plugin-api-version": "2.3.0"
+    "plugin-api-version": "2.0.0"
 }

+ 8 - 0
config/auth.php

@@ -51,6 +51,10 @@ return [
             'driver' => 'session',
             'provider' => 'teacher',
         ],
+        'admin' => [
+            'driver' => 'session',
+            'provider' => 'admins',
+        ],
     ],
 
     /*
@@ -80,6 +84,10 @@ return [
             'driver' => 'eloquent',
             'model' => App\User::class,
         ],
+        'admins' => [
+            'driver' => 'eloquent',
+            'model' => App\Models\Admin::class,
+        ],
 
         // 'users' => [
         //     'driver' => 'database',

+ 2 - 2
resources/views/admin_profile.blade.php → resources/views/admin/admin_profile.blade.php

@@ -336,12 +336,12 @@ tbody, td, tfoot, th, thead, tr {
                                 </ul>
                                 <ul class="nav navbar-nav align-items-center ml-auto header_right ps-2">
                                     <li class="nav-item dropdown dropdown-notification">
-                                        <a href=""
+                                        <a href="{{route('admin-logout')}}"
                                             onclick="event.preventDefault();
                                                             document.getElementById('logout-form').submit();">
                                              <i class="fa fa-sign-out change_pass_btn"></i>
                                         </a>
-                                        <form id="logout-form" action="" method="POST" class="d-none">
+                                        <form id="logout-form" action="{{route('admin-logout')}}" method="POST" class="d-none">
                                             @csrf
                                         </form>
                                     </li>

+ 26 - 2
resources/views/admin_login.blade.php → resources/views/admin/auth/admin_login.blade.php

@@ -48,7 +48,9 @@
             <link rel="preconnect" href="https://fonts.googleapis.com">
             <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
             <link href="https://fonts.googleapis.com/css2?family=Montserrat+Alternates&display=swap" rel="stylesheet">
-       </head>
+            <link href="{{ asset('css/noty/lib/noty.css') }}" rel="stylesheet" type="text/css">
+            <link href="{{ asset('css/noty/lib/themes/sunset.css') }}" rel="stylesheet" type="text/css">
+        </head>
        <style>
 
             body {
@@ -198,8 +200,17 @@
                             <div class="card shadow border-0" >
                                 <div class="card-body" style="height:648px;">
                                 <h6 class="mt-5 pt-5" style="color: white; margin-top:7.5rem !important;">Please log-in to your account</h6>
-                                    <form method="POST" action="">
+                                    <form method="POST" action="{{route('create-login')}}">
                                         @csrf
+                                        @if ($message = Session::get('success'))
+                                            <div class="row mb-1">
+                                                <div class="col-md-12">
+                                                    <div class="alert alert-success">
+                                                    {{@$message}}
+                                                    </div>
+                                                </div>
+                                            </div>
+                                        @endif
                                         <div class="row">
                                             <div class="col-md-12 back">
                                                 <div class="mb-3">
@@ -247,5 +258,18 @@
         <!-- Main Js -->
         <script src="{{asset('web/js/plugins.init.js')}}"></script>
         <script src="{{asset('web/js/app.js')}}"></script>
+        <script src="{{ asset('css/jquery-form/dist/jquery.form.min.js') }}"></script>
+        <script src="{{ asset('css/noty/lib/noty.min.js') }}"></script>
+
+       
+        @if ($message = Session::get('error'))
+            <script type="text/javascript">
+                $(document).ready(function(){
+                    var msg = "{{ $message }}";
+                    notify('error',msg);
+                });
+            </script>
+            @endif
+       
         </body>
   </html>

+ 13 - 8
routes/web.php

@@ -45,13 +45,7 @@ Route::get('/title', function () {
     return view('title');
 });
 
-Route::get('/admin_login', function () {
-    return view('admin_login');
-});
 
-Route::get('/admin_profile', function () {
-    return view('admin_profile');
-});
 
 
 
@@ -65,8 +59,8 @@ Route::get('/email-verification/{id}', [App\Http\Controllers\RegisterController:
 //     return view('home');
 // });
 Route::group(['middleware' => ['auth']], function() {
-    Route::get('/home', [App\Http\Controllers\StudentHomeController::class,'index']);
-    Route::post('std-logout', [App\Http\Controllers\StudentHomeController::class,'logout'])->name('std-logout');
+Route::get('/home', [App\Http\Controllers\StudentHomeController::class,'index']);
+Route::post('std-logout', [App\Http\Controllers\StudentHomeController::class,'logout'])->name('std-logout');
 Route::get('/save-as-complete', [App\Http\Controllers\StudentHomeController::class,'save_as_complete'])->name('save-as-complete');
 Route::post('/institution_save', [App\Http\Controllers\StudentHomeController::class,'institution_save'])->name('institution-save');
 Route::post('/work_save', [App\Http\Controllers\StudentHomeController::class,'work_save'])->name('work-save');
@@ -85,6 +79,8 @@ Route::get('/change_work_experience/{status}', [App\Http\Controllers\StudentHome
 Route::get('/change_test_score/{status}', [App\Http\Controllers\StudentHomeController::class,'change_test_score'])->name('change_test_score');
 Route::get('/home/search', [App\Http\Controllers\StudentHomeController::class,'ref_search'])->name('ref-search');
 });
+
+
 // Teacher
 
 Route::get('register-v2', [App\Http\Controllers\TeacherAuth\RegisterController::class,'showRegistrationForm']);
@@ -98,6 +94,15 @@ Route::group(['middleware' => ['teacher']], function() {
 });
 
 
+//Admin
+Route::get('/admin-login', [App\Http\Controllers\AdminAuth\LoginController::class,'showLoginForm']);
+Route::post('/create-login', [App\Http\Controllers\AdminAuth\LoginController::class,'login'])->name('create-login');
+Route::group(['middleware' => ['admin']], function() {
+    Route::get('/admin/dashboard', [App\Http\Controllers\Admin\AdminController::class,'dashboard']);
+    Route::post('logout', [App\Http\Controllers\AdminAuth\LoginController::class,'logout'])->name('admin-logout');
+});
+
+
 
 Route::get(
 	'ajax/{name}',