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


فهاد الجزء السادس من 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>
                                


إشترك في قناتنا على اليوتيوب

بحث في الموقع


إشترك للتوصل بالجديد