diff --git a/lib/Doctrine/Entities/UsrAuthProvider.php b/lib/Doctrine/Entities/UsrAuthProvider.php index f71466bc9e..10dc1185d0 100644 --- a/lib/Doctrine/Entities/UsrAuthProvider.php +++ b/lib/Doctrine/Entities/UsrAuthProvider.php @@ -2,6 +2,7 @@ namespace Entities; +use Alchemy\Phrasea\Application; use Doctrine\ORM\Mapping as ORM; /** @@ -33,7 +34,7 @@ class UsrAuthProvider * @var \DateTime */ private $created; - + /** * @var string */ @@ -73,6 +74,11 @@ class UsrAuthProvider return $this->usr_id; } + public function getUser(Application $app) + { + return \User_Adapter::getInstance($this->usr_id, $app); + } + /** * Set provider * diff --git a/lib/Doctrine/Repositories/AuthFailureRepository.php b/lib/Doctrine/Repositories/AuthFailureRepository.php new file mode 100644 index 0000000000..87a1efc127 --- /dev/null +++ b/lib/Doctrine/Repositories/AuthFailureRepository.php @@ -0,0 +1,48 @@ + $date->format('Y-m-d h:i:s')); + + $query = $this->_em->createQuery($dql); + $query->setParameters($params); + + return $query->getResult(); + } + + public function findLockedFailuresMatching($username, $ip) + { + $dql = 'SELECT f + FROM Entities\AuthFailure f + WHERE (f.username = :username OR f.ip = :ip) + AND f.locked = true'; + + $params = array( + 'username' => $username, + 'ip' => $ip, + ); + + $query = $this->_em->createQuery($dql); + $query->setParameters($params); + + return $query->getResult(); + } +} diff --git a/lib/conf.d/Doctrine/Entities.AuthFailure.dcm.yml b/lib/conf.d/Doctrine/Entities.AuthFailure.dcm.yml index b2e039950b..f93f1737c8 100644 --- a/lib/conf.d/Doctrine/Entities.AuthFailure.dcm.yml +++ b/lib/conf.d/Doctrine/Entities.AuthFailure.dcm.yml @@ -1,6 +1,7 @@ Entities\AuthFailure: type: entity - table: AuthFailuress + repositoryClass: Repositories\AuthFailureRepository + table: AuthFailures id: id: type: integer diff --git a/lib/conf.d/Doctrine/Entities.UsrAuthProvider.dcm.yml b/lib/conf.d/Doctrine/Entities.UsrAuthProvider.dcm.yml index c553659697..5febabcb78 100644 --- a/lib/conf.d/Doctrine/Entities.UsrAuthProvider.dcm.yml +++ b/lib/conf.d/Doctrine/Entities.UsrAuthProvider.dcm.yml @@ -5,8 +5,7 @@ Entities\UsrAuthProvider: uniqueConstraints: unique_provider_per_user: columns: [ usr_id, provider ] - indexes: - provider_distant_id: + provider_ids: columns: [ provider, distant_id ] id: id: @@ -18,10 +17,10 @@ Entities\UsrAuthProvider: type: integer provider: type: string - length: 64 + length: 32 distant_id: type: string - length: 256 + length: 192 updated: type: datetime gedmo: