if user is admin
i want a functionallity where i want that if user is admin = 1 it can go to dashbaord but if is admin is 0 than he can not access the admin panel currently i am using this functionallity which is give in filamentphp documentation and i created a code in user model like this
public function canAccessPanel(Panel $panel): bool
{
$user = User::where('email', $this->email)->first();
if ($user && $user->is_admin === 1) {
return true;
}
return false;
}
but i also got this given image.
But i want that if i can not access the admin panel it will show error in the login page and i want a error message like "you are not admin" i dont want given image result how can i archive this functionallity with custom error message if is_admin=0 this will show in admin page like "this email address is not admin /or somthing other custom error message insted of 403 forbidden message"
5 Replies
For that you might want to create custom login pages. Then you can handle all of the errors in your login action as you need 🙂
Yep as above, just override the Filament Login page, and onLogin redirect if cannot access dashboard
i think I am making a mistake can anyone describe to me how I can make a custom login for the above functionality I think i am not able to make a custom login (i don't know how to create it as well as it is given in the documentation ) can anyone help me sorry.
copy:
run:
php artisan make:livewire Auth\Login
Edit class to read:
class Login extends \Filament\Http\Livewire\Auth\Login
Review: \Filament\Http\Livewire\Auth\Login and override the functions you need. This would tend to be on authenticate() if not admin redirect()->url('/')