parent
d84006d7c7
commit
f0439782ba
|
@ -49,7 +49,7 @@ class SessionController extends \PHPCI\Controller
|
|||
} else {
|
||||
unset($_SESSION['login_token']);
|
||||
|
||||
$user = $this->userStore->getByEmail($this->getParam('email'));
|
||||
$user = $this->userStore->getByLoginOrEmail($this->getParam('email'));
|
||||
|
||||
if ($user && password_verify($this->getParam('password', ''), $user->getHash())) {
|
||||
session_regenerate_id(true);
|
||||
|
@ -68,7 +68,7 @@ class SessionController extends \PHPCI\Controller
|
|||
$form->setAction(PHPCI_URL.'session/login');
|
||||
|
||||
$email = new b8\Form\Element\Email('email');
|
||||
$email->setLabel(Lang::get('email_address'));
|
||||
$email->setLabel(Lang::get('login'));
|
||||
$email->setRequired(true);
|
||||
$email->setContainerClass('form-group');
|
||||
$email->setClass('form-control');
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'PHPCI Adgangskode-nulstilling for %s',
|
||||
'reset_invalid' => 'Ugyldig anmodning om adgangskode-nulstilling.',
|
||||
'email_address' => 'Email-addresse',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Adgangskode',
|
||||
'log_in' => 'Log ind',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'PHPCI Passwort zurücksetzen für %s',
|
||||
'reset_invalid' => 'Fehlerhafte Anfrage für das Zurücksetzen eines Passwortes',
|
||||
'email_address' => 'Emailadresse',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Passwort',
|
||||
'log_in' => 'Einloggen',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'PHPCI Επαναφορά Κωδικού για %s',
|
||||
'reset_invalid' => 'Μη έγκυρο αίτημα επαναφοράς κωδικού πρόσβασης.',
|
||||
'email_address' => 'Διεύθυνση email',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Κωδικός πρόσβασης',
|
||||
'log_in' => 'Είσοδος',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'PHPCI Password Reset for %s',
|
||||
'reset_invalid' => 'Invalid password reset request.',
|
||||
'email_address' => 'Email Address',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Password',
|
||||
'log_in' => 'Log in',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'Réinitialisation du mot de passe PHPCI pour %s',
|
||||
'reset_invalid' => 'Requête de réinitialisation de mot de passe invalide.',
|
||||
'email_address' => 'Adresse email',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Mot de passe',
|
||||
'log_in' => 'Connexion',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'Ripristino della password di PHPCI per %s',
|
||||
'reset_invalid' => 'Richeista di ripristino password non valida.',
|
||||
'email_address' => 'Indirizzo Email',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Password',
|
||||
'log_in' => 'Accedi',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'PHPCI wachtwoord reset voor %s',
|
||||
'reset_invalid' => 'Ongeldig wachtwoord reset verzoek',
|
||||
'email_address' => 'E-mailadres',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Wachtwoord',
|
||||
'log_in' => 'Log in',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'Reset Hasła PHPCI dla %s',
|
||||
'reset_invalid' => 'Prośba o zmianę hasła jest nieważna.',
|
||||
'email_address' => 'Adres email',
|
||||
'login' => 'Login / Email Address',
|
||||
'password' => 'Hasło',
|
||||
'log_in' => 'Zaloguj się',
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ PHPCI',
|
|||
'reset_email_title' => 'Сброс пароля PHPCI для %s',
|
||||
'reset_invalid' => 'Некорректный запрос на сброс пароля.',
|
||||
'email_address' => 'Email',
|
||||
'login' => 'Логин / Email',
|
||||
'password' => 'Пароль',
|
||||
'log_in' => 'Войти',
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ PHPCI',
|
|||
'reset_email_title' => 'Скидання пароль PHPCI для %s',
|
||||
'reset_invalid' => 'Невірний запит скидання паролю.',
|
||||
'email_address' => 'Email адреса',
|
||||
'login' => 'Логин / Email адреса',
|
||||
'password' => 'Пароль',
|
||||
'log_in' => 'Увійти',
|
||||
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
use Phinx\Migration\AbstractMigration;
|
||||
|
||||
class UniqueEmailAndNameUserFields extends AbstractMigration
|
||||
{
|
||||
/**
|
||||
* Migrate Up.
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
$user_table = $this->table('user');
|
||||
$user_table
|
||||
->addIndex('email', array('unique' => true))
|
||||
->addIndex('name', array('unique' => true))
|
||||
->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Migrate Down.
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
$user_table = $this->table('user');
|
||||
$user_table
|
||||
->removeIndex('email', array('unique' => true))
|
||||
->removeIndex('name', array('unique' => true))
|
||||
->save();
|
||||
}
|
||||
}
|
|
@ -59,7 +59,7 @@ class UserStoreBase extends Store
|
|||
|
||||
/**
|
||||
* Returns a User model by Email.
|
||||
* @param mixed $value
|
||||
* @param string $value
|
||||
* @param string $useConnection
|
||||
* @throws HttpException
|
||||
* @return \@appNamespace\Model\User|null
|
||||
|
@ -82,4 +82,30 @@ class UserStoreBase extends Store
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a User model by Email.
|
||||
* @param string $value
|
||||
* @param string $useConnection
|
||||
* @throws HttpException
|
||||
* @return \@appNamespace\Model\User|null
|
||||
*/
|
||||
public function getByLoginOrEmail($value, $useConnection = 'read')
|
||||
{
|
||||
if (is_null($value)) {
|
||||
throw new HttpException('Value passed to ' . __FUNCTION__ . ' cannot be null.');
|
||||
}
|
||||
|
||||
$query = 'SELECT * FROM `user` WHERE `name` = :value OR `email` = :value LIMIT 1';
|
||||
$stmt = Database::getConnection($useConnection)->prepare($query);
|
||||
$stmt->bindValue(':value', $value);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
if ($data = $stmt->fetch(\PDO::FETCH_ASSOC)) {
|
||||
return new User($data);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue