prestatr wrote:sineld wrote:Referans örnekleri incelemek için kullandığım, Sentry kullanan çok güzel bir
proje mevcut. Tavsiye ederim.
Merhabalar bu uygulamayı kullanıyorum. Şu anda kcfinder için admin kontrolü yaptırmam gerekli. Admin girişi yapılıp yapılmadığını naısl kontrol edebilrim?
Auth::check() her halukarda false döndürüyor.
Yanlış kullanım bu . Sentry dökümanını dikkatlice incelemelisin.
Sentry::check()
Bu methotu kullanmalısınız.
Ben sentry şöyle kullanıyorum.
routes.php
/**
* Admin Panel Group..
*/
Route::group(array('prefix' => 'panel',
'before' => array('sentryAuth', 'hasAccess')), function() {
/**
* User Management
*/
Route::resource('users', 'UserController');
Buradaki 'sentryAuth' ve 'hasAccess' filters.php'de tanımlanmış filtrelerdir.
Örnek filtremde bu:
Route::filter('sentryAuth', function () {
if (!Sentry::check()) {
Session::put('loginRedirect', Request::url());
return Redirect::guest('login');
}
});
/**
* hasAcces filter (permissions)
*
* Check if the user has permission (group/user)
*/
Route::filter('hasAccess', function($route)
{
try
{
$user = Sentry::getUser();
if( ! $user->hasAccess($route->getActionName())) {
// UserController@delete = 1" erişimi yok ise
return Response::view('flash.unauthorized', array('flash' => Lang::get('messages.unauthorized_long')), 404);
}
}
catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
{
return Redirect::route('login');
}
});
Ben daha önce sistemdeki tüm olay isimlerini -- örnek: UserController@delete -- veritanına bir migrate sınıfıyla otomatik olarak ekliyorum.
Yani kullanııcıların yada grupların izin tablosunda "UserController@delete = 0" gibi kayıt ediliyor.
Bu sayede her türlü erişimi kontrol edebiliyorum.