Я занимаюсь разработкой пользовательской системы контроля доступа в Laravel 5.0. Я создал вспомогательную функцию, чтобы проверить, есть ли у пользователя разрешение, прежде чем выполнять функцию
public function index() {
if( has_permission( 'blahblah' ) ) {
// Do actions
}
}
И у меня есть вспомогательная функция has_permission
function has_permission( $action ) {
$current_user_perms = array( 'view_users', 'create_users', 'edit_users', 'delete_users' );
if( !in_array( $action, $current_user_perms ) ) {
return redirect()->route('access_denied');
}
return true;
}
Но когда разрешение не удается, оно не перенаправляет. Любая идея?
Вам следует вернуть перенаправить ответ, чтобы он работал.
function has_permission($action) {
$current_user_perms = ['view_users', 'create_users', 'edit_users'];
return in_array($action, $current_user_perms);
}
public function index() {
if(!has_permission('blahblah')) {
return redirect()->route('access_denied');
}
// do stuff
}
PS. Я настоятельно рекомендую прочитать о промежуточное программное и использовать их вместо помощников, это правильный путь Laravel для достижения простых функций прав доступа.
Других решений пока нет …