Shah Rakibur Rahaman 2 lat temu
rodzic
commit
da99d2fea1

+ 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)
+    {
+        //
+    }
+}

+ 0 - 53
app/Http/Controllers/AdminAuth/ForgotPasswordController.php

@@ -1,53 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\AdminAuth;
-
-use App\Http\Controllers\Controller;
-use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
-use Illuminate\Support\Facades\Password;
-
-class ForgotPasswordController extends Controller
-{
-    /*
-    |--------------------------------------------------------------------------
-    | Password Reset Controller
-    |--------------------------------------------------------------------------
-    |
-    | This controller is responsible for handling password reset emails and
-    | includes a trait which assists in sending these notifications from
-    | your application to your users. Feel free to explore this trait.
-    |
-    */
-
-    use SendsPasswordResetEmails;
-
-    /**
-     * Create a new controller instance.
-     *
-     * @return void
-     */
-    public function __construct()
-    {
-        $this->middleware('admin.guest');
-    }
-
-    /**
-     * Display the form to request a password reset link.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function showLinkRequestForm()
-    {
-        return view('admin.auth.passwords.email');
-    }
-
-    /**
-     * Get the broker to be used during password reset.
-     *
-     * @return \Illuminate\Contracts\Auth\PasswordBroker
-     */
-    public function broker()
-    {
-        return Password::broker('admins');
-    }
-}

+ 28 - 119
app/Http/Controllers/AdminAuth/LoginController.php

@@ -2,45 +2,20 @@
 
 namespace App\Http\Controllers\AdminAuth;
 
-use App\Http\Controllers\Controller;
+use App\Http\Controllers\Controller; 
 use Illuminate\Foundation\Auth\AuthenticatesUsers;
-use Illuminate\Support\Facades\Auth;
-use Hesto\MultiAuth\Traits\LogsoutGuard;
-use Illuminate\Http\Request;
-
+use Illuminate\Support\Facades\Auth; 
+use Illuminate\Http\Request; 
 use App\Models\Admin;
-use App\Models\LoginRecords;
+ 
 use Session;
 
 class LoginController extends Controller
 {
-    /*
-    |--------------------------------------------------------------------------
-    | Login Controller
-    |--------------------------------------------------------------------------
-    |
-    | This controller handles authenticating users for the application and
-    | redirecting them to your home screen. The controller uses a trait
-    | to conveniently provide its functionality to your applications.
-    |
-    */
-
-    use AuthenticatesUsers, LogsoutGuard {
-        LogsoutGuard::logout insteadof AuthenticatesUsers;
-    }
-
-    /**
-     * Where to redirect users after login / registration.
-     *
-     * @var string
-     */
+  
     public $redirectTo = '/admin/dashboard';
 
-    /**
-     * Create a new controller instance.
-     *
-     * @return void
-     */
+
     public function __construct()
     {
         $this->middleware('admin.guest', ['except' => 'logout']);
@@ -53,67 +28,37 @@ class LoginController extends Controller
      */
     public function showLoginForm()
     {
-        return view('admin.auth.login');
+        return view('admin.auth.admin_login');
     }
 
+    
+
+
     public function login(Request $request)
     {
         $admin = Admin::where('email',$request->email)->first();
-        if(!$admin){
-            return redirect('/')->with('error','Unknown Email address!');
-        }else{
-            if($admin->status == '0'){
-                return redirect('/')->with('error','Account Status is not Activated!');
 
-            }else{
+        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)){
 
-                if($admin->type==5)
-                    return redirect('https://sales.samscrm.co.uk')->with('success','Please login here!');
+                return redirect('admin/dashboard');
 
+            }else{
                 
-                $credentials = [
-                    'email' => $request->email,
-                    'password' => $request->password,
-                    'status' => '1'
-                ];
-
-                if (Auth::guard('admin')->attempt($credentials)) {
-                    $time = date('y-m-d h:i:s',time());
-                    $ip = $request->ip();
-
-                    $records = new LoginRecords;
-                    $records->auth_type = 'admins';
-                    $records->auth_id = $admin->id;
-                    $records->ip_address = $ip;
-                    $records->start_time = $time;
-                    $records->save();
+                return redirect('/admin-login')->with('error','Wrong Email/Password combination');
 
-                    $admin->active_status=1;
-                    $admin->last_logged_timezone=$request->last_logged_timezone;
-                    $admin->api_token=make_api_token('admins');
-                    $admin->update();
-
-
-                    $previous_session = $admin->session_id;
-                    if($previous_session) {
-                        Session::getHandler()->destroy($previous_session);
-                    }
-
-
-
-                    Session::put('session_start', $time);
-                    Session::put('login_record', $records->id);
-                    Session::put('admin_type', 'admins');
-
-                    $admin->session_id = Session::getId();
-                    $admin->update();
-
-                    return redirect('admin/dashboard');
-                }else{
-                    return redirect('/')->with('error','Wrong Email/Password combination');
-                }
             }
+
+        }else{
+            return redirect('/admin-login')->with('error', 'Account Status is not Activated!');
         }
     }
 
@@ -127,45 +72,9 @@ class LoginController extends Controller
         return Auth::guard('admin');
     }
 
-    public function logout(){
-
-        $auth_user=Auth::guard('admin')->user(); 
-
-        if($auth_user){
-
-            $auth_user->update([
-                'active_status'=>0,
-                'api_token'=>NULL
-            ]);
-            
-        } 
-
-        if(Session::get('login_record')){
-            $record_id = Session::get('login_record');
-            $time = date('y-m-d h:i:s',time());
-            $records = LoginRecords::find($record_id);
-            if($records){
-                $records->end_time = $time;
-                $records->update();
-
-                if($records->login_source){
-                    $source = $records->loginSource->source;
-                }
-            }
-        }
-
-        $previous_session = Auth::guard('admin')->session_id;
-        if($previous_session) {
-            Session::getHandler()->destroy($previous_session);
-        }
-        Auth::guard('admin')->logout();
-
-        if(!isset($source)){
-            return redirect('/');
-        }else{
-            return redirect($source);
-        }
-        //return redirect('/admin');
+    public function logout(){  
+        $this->guard('admin')->logout();
+        return redirect('/admin-login'); 
     }
 
     public function showRegisterForm()

+ 0 - 92
app/Http/Controllers/AdminAuth/RegisterController.php

@@ -1,92 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\AdminAuth;
-
-use App\Models\Admin;
-use Validator;
-use App\Http\Controllers\Controller;
-use Illuminate\Foundation\Auth\RegistersUsers;
-use Illuminate\Support\Facades\Auth;
-
-class RegisterController extends Controller
-{
-    /*
-    |--------------------------------------------------------------------------
-    | Register Controller
-    |--------------------------------------------------------------------------
-    |
-    | This controller handles the registration of new users as well as their
-    | validation and creation. By default this controller uses a trait to
-    | provide this functionality without requiring any additional code.
-    |
-    */
-
-    use RegistersUsers;
-
-    /**
-     * Where to redirect users after login / registration.
-     *
-     * @var string
-     */
-    protected $redirectTo = '/admin/dashboard';
-
-    /**
-     * Create a new controller instance.
-     *
-     * @return void
-     */
-    public function __construct()
-    {
-        $this->middleware('admin.guest');
-    }
-
-    /**
-     * Get a validator for an incoming registration request.
-     *
-     * @param  array  $data
-     * @return \Illuminate\Contracts\Validation\Validator
-     */
-    protected function validator(array $data)
-    {
-        return Validator::make($data, [
-            'name' => 'required|max:255',
-            'email' => 'required|email|max:255|unique:admins',
-            'password' => 'required|min:6|confirmed',
-        ]);
-    }
-
-    /**
-     * Create a new user instance after a valid registration.
-     *
-     * @param  array  $data
-     * @return Admin
-     */
-    protected function create(array $data)
-    {
-        return Admin::create([
-            'name' => $data['name'],
-            'email' => $data['email'],
-            'password' => bcrypt($data['password']),
-        ]);
-    }
-
-    /**
-     * Show the application registration form.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function showRegistrationForm()
-    {
-        return view('admin.auth.register');
-    }
-
-    /**
-     * Get the guard to be used during registration.
-     *
-     * @return \Illuminate\Contracts\Auth\StatefulGuard
-     */
-    protected function guard()
-    {
-        return Auth::guard('admin');
-    }
-}

+ 0 - 79
app/Http/Controllers/AdminAuth/ResetPasswordController.php

@@ -1,79 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\AdminAuth;
-
-use App\Http\Controllers\Controller;
-use Illuminate\Foundation\Auth\ResetsPasswords;
-use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Facades\Password;
-use Illuminate\Http\Request;
-
-class ResetPasswordController extends Controller
-{
-    /*
-    |--------------------------------------------------------------------------
-    | Password Reset Controller
-    |--------------------------------------------------------------------------
-    |
-    | This controller is responsible for handling password reset requests
-    | and uses a simple trait to include this behavior. You're free to
-    | explore this trait and override any methods you wish to tweak.
-    |
-    */
-
-    use ResetsPasswords;
-
-    /**
-     * Where to redirect users after login / registration.
-     *
-     * @var string
-     */
-    public $redirectTo = '/admin/dashboard';
-
-
-    /**
-     * Create a new controller instance.
-     *
-     * @return void
-     */
-    public function __construct()
-    {
-        $this->middleware('admin.guest');
-    }
-
-    /**
-     * Display the password reset view for the given token.
-     *
-     * If no token is present, display the link request form.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  string|null  $token
-     * @return \Illuminate\Http\Response
-     */
-    public function showResetForm(Request $request, $token = null)
-    {
-        return view('admin.auth.passwords.reset')->with(
-            ['token' => $token, 'email' => $request->email]
-        );
-    }
-
-    /**
-     * Get the broker to be used during password reset.
-     *
-     * @return \Illuminate\Contracts\Auth\PasswordBroker
-     */
-    public function broker()
-    {
-        return Password::broker('admins');
-    }
-
-    /**
-     * Get the guard to be used during password reset.
-     *
-     * @return \Illuminate\Contracts\Auth\StatefulGuard
-     */
-    protected function guard()
-    {
-        return Auth::guard('admin');
-    }
-}

+ 1 - 1
app/Http/Middleware/RedirectIfNotAdmin.php

@@ -18,7 +18,7 @@ class RedirectIfNotAdmin
 	public function handle($request, Closure $next, $guard = 'admin')
 	{
 	    if (!Auth::guard($guard)->check()) {
-	        return redirect('admin');
+	        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

@@ -316,12 +316,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}',