Tuesday, July 26, 2016

Laravel 5.2 සිංහලෙන් - setup diffrent users with diffrent privileges

යාළුවනේ අපි බලමු laravel වල normal users ල සහ admin ලා හදන්නේ කොහොමද කියලා. මේ සදහා අපි middleware use කරනවා.

මුලින්ම user table එකට admin කියලා field එකක් add කරන්න ඕන admin කියලා

$table->boolean('admin')->default(false);
 ඊළගට adminMiddleware කියන නමින් Middleware file එකක් හදාගන්න ඕන. ඒක පහල තියෙන විදියට වෙනස් කරන්න ඕන.

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class adminMiddleware
{
    public function handle($request, Closure $next)
    { 
      //if (!Auth::guest() && (Auth::user()->admin)==1 )
 
         if (!Auth::guest() && Auth::user()->admin) {

            return $next($request);
        }

    return redirect('/');
    }
}
මේ file එකේ redirect link එක ඕන විදියට වෙනස් කර ගන්න. දැන් තියෙන්නේ අපේ midddleware එක register කරගන්න එක.

ඒ සදහා app\http\Kernel.php file එකේ protected $routeMiddleware block එකට පහල line එක add කරන්න.

protected $routeMiddleware = [
        
        'isAdmin' => \App\Http\Middleware\adminMiddleware::class,
    ];
 දැන් routes.php file එක හදාගන්න තියෙන්නේ. අපි එකට route groups පාවිච්චි කරනවා. එතකොට route group එක ඇතුලේ තියෙන routes වලට access තියෙන්නේ admin ලට විතරයි.

Route::group(['middleware'=> ['isAdmin']], function() {

 Route::get('access', function () {
     echo 'you have access';
 });

});
 නැත්නම් වේ විදියටත් පුළුවන්.

 group එක ඇතුලේ තියෙන routes වලට access තියෙන්නේ admin ලට විතරයි.

Route::get('access', function () {
    echo 'you have access';
})->middleware('isAdmin');
දැන් access blade එකට යන්න පුළුවන් adminලට විතරයි.

මේ ලිපිය ප්‍රයෝජනවත් කියලා හිතෙනවනම් මේ ලිපිය Share කරලා යාළුවන්ටත් කියන්න. Comment එකක් දාන්නත් අමතක කරන්න එපා. ජය වේවා..!!  



Share/Bookmark

0 comments:

Post a Comment