Application de gestion d'un hôtel ب laravel 5.5 الجزء السادس

imadbelasri Laravel
LA

فهاد الجزء السادس من Application de gestion d'un hôtel ب laravel 5.5 غادي نشوفو كيفاش نديرو ل configuration باش يتكونيكطاو حتى ل admins حيت par défaut يالاه ل users لي عندهم لإمكانية باش يتكونيكطاو وغادي نشوفو أيضا كيفاش نمنعو على لي ماشي أدمن يدخل للجهة الخاصة بالأدمن منبعد غادي نزيدو ل header ول footer ديال الموقع ديالنا. 


نظرة سريعة بالفيديو


1- الملف auth.php

فباش نمكن حتى ل admins  يتكونيكطاو كنمشي للملف auth.php لي كاين فالمجلد config فيه كنزيد فل array guards ل admins table لي كنعطيها ل provider admins ولي كنزيدو فل array providers وكنعطيه ل model admin منبعد كنزيدو حتى فل array passwords الكود بعد التغيير هو :

                                                    
                                                        <?php

return [

    /*
    |--------------------------------------------------------------------------
    | Authentication Defaults
    |--------------------------------------------------------------------------
    |
    | This option controls the default authentication "guard" and password
    | reset options for your application. You may change these defaults
    | as required, but they're a perfect start for most applications.
    |
    */

    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    |
    | Next, you may define every authentication guard for your application.
    | Of course, a great default configuration has been defined for you
    | here which uses session storage and the Eloquent user provider.
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | Supported: "session", "token"
    |
    */

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
        'admins' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | User Providers
    |--------------------------------------------------------------------------
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | If you have multiple user tables or models you may configure multiple
    | sources which represent each model / table. These sources may then
    | be assigned to any extra authentication guards you have defined.
    |
    | Supported: "database", "eloquent"
    |
    */

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Client::class,
        ],
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\Admin::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Resetting Passwords
    |--------------------------------------------------------------------------
    |
    | You may specify multiple password reset configurations if you have more
    | than one user table or model in the application and you want to have
    | separate password reset settings based on the specific user types.
    |
    | The expire time is the number of minutes that the reset token should be
    | considered valid. This security feature keeps tokens short-lived so
    | they have less time to be guessed. You may change this as needed.
    |
    */

    'passwords' => [
        'clients' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
        'admins' => [
            'provider' => 'admins',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],

];

                                                    
                                                

2- الملف CheckIfAdmin.php

كنمشي للمجلد Middleware فيه كنزيد ملف جديد سميه CheckIfAdmin.php فيه غادي يكون الكود لي كيتحقق واش المستخدم لي حاول يدخل للأدمن area أدمن أولا لا يلا مكانش كنردوه للصفحة لي جا منها الكود ديال الملف هو :

                                                        
                                                            <?php

namespace App\Http\Middleware;

use Closure;
use Auth;
class CheckIfAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(!Auth::guard('admins')->check()){
            return redirect()->back();
        }
        return $next($request);
    }
}

                                                        
                                                    

3- الملف kernel.php

فالمجلد app/Http كاين الملف kernel.php فيه كنزيد ل Middleware لي زدنا ولي هي CheckIfAdmin و كنسميها admin فغادي تمشي لل array routeMiddleware وغادي تزيد فاللخر هاد السطر:

                                                        
                                                                'admin' => \App\Http\Middleware\CheckIfAdmin::class,
                                                        
                                                    

4- الملف includes/header.php

فالمجلد views كنزيد مجلد جديد كنسميه includes فيه كنزيد ملف جديد كنسميه header.php فيه غادي تكون ل menu ديالنا لي جزء منها غادي يبان يلا كان لي مكونيكطي مستخدم عادي وجزء يلا كان أدمن الكود ديال الملف هو :

                                                        
                                                            <div class="top-bar">
  <div class="top-bar-left">
    <ul class="dropdown menu" data-dropdown-menu>
      <li class="menu-text">Gestion Hotel</li>
      <li>
        <a href="{{route('home')}}"><i class="fa fa-home" aria-hidden="true"></i> Accueil</a>
      </li>  
      <li><a href="{{route('reservations.index')}}"><i class="fa fa-book" aria-hidden="true"></i> Résérvations</a></li>
      <li><a href="{{route('contacts.create')}}"><i class="fa fa-envelope" aria-hidden="true"></i> Contact</a></li>
      @if(Auth::guard('admins')->check() && $_SESSION['admin'] = true)
         <li><a href="{{route('clients.index')}}"><i class="fa fa-handshake-o" aria-hidden="true"></i> Clients</a></li>
         <li><a href="{{route('contacts.index')}}"><i class="fa fa-envelope" aria-hidden="true"></i> Messages</a></li>
      @endif
    </ul>
  </div>
  <div class="top-bar-right">
    <ul class="menu">
         @if(!isset(Auth::user()->id))
            <li><a href="{{route('clients.create')}}"><i class="fa fa-user-plus" aria-hidden="true"></i> Inscription</a></li>
            <li><a href="{{route('clients.login')}}"><i class="fa fa-sign-in" aria-hidden="true"></i> Connexion</a></li>
         @else
            <li><a href="{{route('clients.logout')}}"><i class="fa fa-sign-in" aria-hidden="true"></i> Déconnexion</a></li>
         @endif
    </ul>
  </div>
</div>
                                                        
                                                    

5- الملف includes/footer.php

دائما ف includes فيه كنزيد ملف جديد كنسميه footer.php فيه غادي يكون ل footer يمكنلك تغيروا كيف بغيتي الكود ديال الملف هو :

                                                        
                                                            <footer>
   <hr>
   <p class="lead text-center">© DCoding 2017.</p>
</footer>
                                                        
                                                    

دروس ذات صلة

LA

الجزء الأول  Laravel Authentification

Laravel هي وحدة من بزاف ديال php frameworks لي كاينين فالوقت الحاضر تخلقت ف 2011 بالرغم من أنها جديد...


LA

الجزء الثاني Laravel Authentification

فهاد الجزء الثاني غادي نكملو الصفحة الرئيسية ديالنا ومنبعد نقادو الصفحة لي تمكن المستخدم من التسجيل...


LA

كيفاش نسجل نعدل ونمسح المعلومات من قاعدة البيانات

فهاد الدرس غادي نشوفو كيفاش يمكنا نسجلوا معلومات فقاعدة البيانات من نبعد نديروا عليها تعديلات وفالآخ...


LA

كيفاش نصاوب ألبوم صور بإستعمال Laravel الجزء الأول

فدرس اليوم غادي نشوفو كيفاش نديرو نصاوبو ألبوم صور بإستعمال Laravel غادي نزيدو صور فقاعدة البيانات م...


LA

كيفاش نصاوب ألبوم صور بإستعمال Laravel الجزء الثاني

فهاد الجزء الثاني غادي نشوفو كيفاش نزيدو الصور فقاعدة البيانات نعرضوها فالصفحة الرئيسية و نعطيو للمس...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الأول

فهاد المشروع الجديد لي هو موقع تواصل إجتماعي بإستعمال laravel غادي نشوفو كيفاش نقادو موقع تواصل على...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الثاني

فهاد الجزء الثاني من موقع تواصل إجتماعي بإستعمال laravel غادي نقادو الملفات لي كيمكنو المستخدم من...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الثالت

فهاد الجزء الثالت من موقع تواصل إجتماعي بإستعمال laravel غادي نكملو الملفات الخاصة بإضافة وحدف أصد...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الرابع

فهاد الجزء الرابع من موقع تواصل إجتماعي بإستعمال laravel غادي نكملو الملفات الخاصة بالبحث عن مستخدم...


LA

موقع تواصل إجتماعي بإستعمال laravel الجزء الخامس

فهاد الجزء الخامس من موقع تواصل إجتماعي بإستعمال laravel غادي نكملو الملفات لي بقاونا ولي غادي يمكنو...