Hey Ich mache ein Projekt, in dem sie mehrere Benutzer mit verschiedenen sind, die sich einloggen werden. Die Benutzer werden entsprechend ihrer Rolle verschiedene Seiten angezeigt. Ich habe einen Code erstellt, aber wenn sich ein Benutzer anmeldet, kann er auf die Seite eines anderen Benutzers zugreifen.Login für mehrere Rollen und Berechtigungen
Dies ist die Anmeldungs Controller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Auth;
class LoginController extends Controller
{
public function login(Request $request)
{
if (Auth::attempt(request(['email', 'password'])))
{
$user = User::where('email', $request->email)->firstOrFail();
if($user->is_admin())
{
return redirect()->route('dashboard');
}
return redirect()->route('home');
}
redirect()->back();
}
}
sind meine Wege sind
<?php
Auth::routes();
Route::get('/home', '[email protected]')->name('home');
Route::group(['middleware' => 'auth'], function() {
Route::post('/login/custom', ['uses' => '[email protected]', 'as' => 'login.custom']);
Route::get('/login/custom', ['uses' => '[email protected]', 'as' => 'login.custom']);
Route::get('/home', function() { return view('home'); })->name('home');
Route::get('/dashboard',function(){ return view('dashboard'); })->name('dashboard');
});
Und das ist mein Modell
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
public function is_admin(){
if(!$this->admin)
return false;
return true;
}
}
Bitte sagen Sie mir, was ich falsch mache.