** NewBee
** Laravel
Я хочу получить доступ к панели администратора с помощью URL http://127.0.0.1:8000/admin
и панели клиентов с помощью URL http://127.0.0.1:8000/
Customer Login: http://127.0.0.1:8000/login
Admin Login: http://127.0.0.1:8000/admin/
Я установил переменную сеанса, чтобы определить, является ли пользователь admin or customer
в моем AdminController.php
и проверять каждую функцию, что этот пользователь должен быть администратором.для доступа.Ниже приведен скрипт
AdminController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use Session;
class AdminController extends Controller
{
public function index() {
return view('admin.index');
}
public function login(Request $request) {
Auth::attempt(['email' => $request->email, 'password' => $request->password, 'user_type' => 'admin']);
//was any of those correct ?
if ( Auth::check() ) {
//send them where they are going
Session::put('userType', 'admin');
return redirect()->route('admin.dashboard');
}
return redirect('/admin')->with('flash_message', 'Invalid Credentials');
}
public function dashboard() {
if( Session::has('userType') and Session::get('userType') == 'admin' )
return view('admin.dashboard');
else
return redirect('/admin')->with('flash_message', 'Please login to access');
}
public function posts() {
if( Session::has('userType') and Session::get('userType') == 'admin' )
return view('admin.posts');
else
return redirect('/admin')->with('flash_message', 'Please login to access');
}
public function logout() {
Session::flush();
return redirect()->route('admin');
}
}
Я проверяю, является ли пользователь администратором в каждой функции, подобной этой if( Session::has('userType') and Session::get('userType') == 'admin' )
.Так есть ли способ сделать это лучше ??????
Теперь, когда я вошел в административную панель, я могу получить доступ к http://127.0.0.1:8000/home
для клиента, но это не должно бытьдоступ, потому что я вошел в систему как администратор, а не как клиент.
Теперь, как я могу включить переменную сеанса для 2 различных типов пользователей и обеспечить доступность пользователей ???
web.php
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('/home', 'HomeController@index')->name('home');
Auth::routes();
Route::get('/admin', 'AdminController@index')->name('admin');
Route::post('/admin/login', 'AdminController@login')->name('admin.login');
Route::get('/admin/dashboard', 'AdminController@dashboard')->name('admin.dashboard');
Route::get('/admin/posts', 'AdminController@posts')->name('admin.posts');
Route::get('/admin/logout', 'AdminController@logout')->name('admin.logout');