I have a multilanguage site which was working fine until I had to create a filter for checking permission from the routes page,
this is my permission filter:-
PHP Code:
public function before(RequestInterface $request, $arguments = null)
{
if (session()->get('isProviderLoggedIn') || Session()->get('isLoggedIn')) {
helper('permission');
if (is_admin() || permissions($arguments[0])) {
return true;
} else if(is_provider() || permissions($arguments[0])){
return true;
} else {
if (Session()->get('isLoggedIn')) {
return redirect()->route('admin-dashboard');
} else if(session()->get('isProviderLoggedIn')) {
return redirect()->route('provider-dashboard');
}
}
} else {
return redirect()->to(site_url('admin'));
}
}
this is how I am using this filter
PHP Code:
$routes->get('admin/settings/roles/permission', 'RolesController::permission', ['filter' => 'permission:role_permission_view']);
if I remove this filter part from routes, multilanguage is working fine, but with this filter, the locale is being set to 'en' by default.
Learning Codeigniter