Giriş yapmadınız.

#1 28.06.2019 09:57:40

hanifeoglu
Üye
Kayıtlı: 14.11.2018
Mesajlar: 9

Kullanıcı nasıl kontrol ediyorusunuz ve nerede

Giriş yapan kullanıcıyı kontrol etmek için nasıl bir yol izliyorsunuz? ve nerede kontrol ediyorsunuz

sisteme login olmuş bir users  eğer role=admin  ise  admin paneline  yönlendireceğim, degilse veya  role= users  user paneline yönlendireceğim

bunu router da middleware ile mi yapmak gerekli?

Çevrimdışı

#2 28.06.2019 10:27:31

coder2
Üye
Yer: Antalya
Kayıtlı: 09.12.2018
Mesajlar: 53

Yanıt: Kullanıcı nasıl kontrol ediyorusunuz ve nerede

RedirectsUsers trait içinde login başarılı ise nereye redirect edileceğini tanımlayabilirsiniz fakat benim nacizane tavsiyem başarılı şekilde login olan kullanıcıları aynı sayfaya yönlendirin.  Ve bu sayfa içinde blade template ile  eğer role Admin ise  admin e ait işlem listesini gösterirsiniz. Role users ise ona göre istediğiniz işlem listesini gösterirsiniz.

Yetkisiz erişimlerin önüne geçmek için middleware oluşturup route tanımlar iken bunu kullanmanız gerekir.

Tüm bunları daha rahat yapmak istiyorsunuz github üzerinde laravel permission diye aratırsanız birden fazla paket bulabilirsiniz. 
Spatie laravel permission paketini kullanıyorum ve tavsiye ederim.

Çevrimdışı

#3 28.06.2019 13:41:34

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Kullanıcı nasıl kontrol ediyorusunuz ve nerede

app/Http/Controllers/Auth/LoginController.php dosyasına şu yöntemi ekliyorsunuz:

/**
    * The user has been authenticated.
    *
    * @param  \Illuminate\Http\Request $request
    * @param  \App\User $user
    * @return mixed
*/
protected function authenticated(Request $request, $user)
{
    // $user objeniz hazır. Buraya yönlendirme mantığını kurabilirsiniz.
}

Bu yöntem kullanıcı, kullanıcı adı ve şifresini girip başarıyla sisteme giriş yaptığında ateşlenir.

Çevrimdışı

#4 01.07.2019 11:57:11

hanifeoglu
Üye
Kayıtlı: 14.11.2018
Mesajlar: 9

Yanıt: Kullanıcı nasıl kontrol ediyorusunuz ve nerede

Selamlar iyi haftalar,
@coder2 üstat, trait konusunu tam hakim degilim, yeni yeni kavramaya başladım şu an tam olarak hakim degilim, 
hazır paketleri  de denedim ama beceremedim örnek yapılar da  benim istediğim yapıma uygun olanını bulamadım.
fakat Spatie ve Entrust  çok iyi  herkes öneriyor bende  kendim oradan buradan bulduklarımla yazdım  kendi ACL  systemimi başarılı da oldu hemde bu şekilde  daha hakim oluyorum.
fakat şimdi url route kontrollerinde middleware kullanmak kesinlikle çok haklısın benim de eklemem şart  onuda ekleyeceğim, şimdi projem de yapmak istediğim şey

client login oldugunda sunu yapmayaı deneçeğim

   if($user->role=='admin'){
        return '/path1';
    }elseif($user->role=='user'){
        return '/path2';
    }   

teşekkürler yönlendirmeyi de aktif ettigim  zaman buraya ekleyeceğim belki başkalarıda faydalanır

Son düzenleyen hanifeoglu (01.07.2019 11:57:39)

Çevrimdışı

#5 01.07.2019 11:58:04

hanifeoglu
Üye
Kayıtlı: 14.11.2018
Mesajlar: 9

Yanıt: Kullanıcı nasıl kontrol ediyorusunuz ve nerede

@mgsmus  dediğini yaptım ve bana login olan kullanıcının rolunu veriyor  şimdi buna donen role göre yönlendirme yapamaya çalşışaçağım 

   protected function authenticated(Request $request)
    {
        $user = $request->user();
        dd($user->getRole($user)); // admin or user return here 
    }

Çevrimdışı

#6 01.07.2019 12:10:36

hanifeoglu
Üye
Kayıtlı: 14.11.2018
Mesajlar: 9

Yanıt: Kullanıcı nasıl kontrol ediyorusunuz ve nerede

Final :)  suan  giren kişinin rolu nu alıp ilgili  yere yönlendirme yabiliyorum
class LoginController extends Controller
{



    use AuthenticatesUsers;
    
    protected function authenticated(Request $request)
    {
        $user = $request->user();
        $user = $user->getRole($user); // admin or user return here
        if($user =='admin'){
            return redirect('/admin');
        }elseif($user =='user'){
            return redirect('/users');
        }
    }

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}

Çevrimdışı

Forum alt kısmı