Как войти только активных пользователей?
В подлинности, кроме данных, необходимых, чтобы войти в систему пользователя, я хочу, чтобы только те, которые находятся в состоянии ativo = 1
, войдите, но не знаю, как сделать эту проверку.
Table user:
id
username
email
password
ativo
UserController
public function store()
{
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
$rules = array(
'email' => 'required',
'password' => 'required'
);
$message = array(
'email.required' => 'O :attribute é obrigatório.',
'password.required' => 'A senha é obrigatória.'
);
$validator = Validator::make($userdata, $rules, $message);
if ($validator->passes())
{
if (Auth::attempt($userdata))
{
return Redirect::to('')->with('success', 'You have logged in successfully');
}
else
{
return Redirect::route('admin.create')->withErrors(array('password' => 'Senha inválida'))->withInput(Input::except('password'));
}
}
// Something went wrong.
return Redirect::route('admin.create')->withErrors($validator)->withInput(Input::except('password'));
}
8
Author: Marco Souza, 2014-01-08
2 answers
Проходит третий параметр, который является соответствующий столбец состояния (включено или выключено, как пример activated
):
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password'),
'activated' => 'A'
);
Laravel добавит activated
where
в то время найти пользователя, если же она бездействует, не принесет.
11
Author: Flávio H. Ferreira, 2014-01-08 10:32:21
Другой способ будет выглядеть следующим образом:
if (Auth::attempt(array('username' => Input::get('username'), 'password' => Input::get('password')), Input::has('lembar') ? true : false)) {
if(Auth::user()->status == TRUE) {
return Redirect::intended('dashboard');
} else {
Auth::logout();
return Redirect::route('entrar')->withErrors('Desculpe, mas o Usuário está desativado.');
}
} else {
return Redirect::route('entrar')->withErrors('Usuário ou Senha Inválido.');
}
1
Author: Marcus Perrout, 2014-10-26 21:50:57