diff --git a/cosmogramme/php/classes/classe_abonne.php b/cosmogramme/php/classes/classe_abonne.php index 4ed646651f6ecc0c6abecb2e76361eb2bf3ede3f..e1d43ce9482751e54a24b63aeec9a385233ff698 100644 --- a/cosmogramme/php/classes/classe_abonne.php +++ b/cosmogramme/php/classes/classe_abonne.php @@ -145,8 +145,11 @@ class abonne protected function saveOrUpdateInDB($data){ - if(!$user = $this->findMatchingUserInDB($data)) - $user= new Class_Users(); + $new_user = Class_Users::newInstance($data); + $bib = Class_IntBib::find($data['ID_SITE']); + + if(!$user = Class_Users::findMatchingPatron($user,$bib)) + $user = $new_user; $user ->updateAttributes($data) @@ -156,13 +159,6 @@ class abonne } - protected function findMatchingUserInDB($data) { - $user = Class_Users::newInstance($data); - $bib = Class_IntBib::find($data['ID_SITE']); - return Class_Users::findMatchingPatron($user,$bib); - } - - private function changeAccents($chaine) { if(!trim($chaine)) return $chaine; diff --git a/library/Class/Users.php b/library/Class/Users.php index a17aa1ec544b53a44cbef69ace0cce38af780925..d2ad442fabf86523106ca795a040b926c8f392bb 100644 --- a/library/Class/Users.php +++ b/library/Class/Users.php @@ -42,14 +42,15 @@ class UsersLoader extends Storm_Model_Loader { } + public function findMatchingPatron($patron,$bib) { if (!$bib || !$patron) return null; - if ($patron->getOrdreabon() && - $user = Class_Users::findFirstBy(['login' => $patron->getLogin(), - 'ordreabon' => $patron->getOrdreabon(), - 'id_site' => $bib->getIdBib()])) + if (($ordreabon = $patron->getOrdreabon()) + && ($user = Class_Users::findFirstBy(['login' => $patron->getLogin(), + 'ordreabon' => $ordreabon, + 'id_site' => $bib->getIdBib()]))) return $user; if ($user = Class_Users::findFirstBy(['login' => $patron->getLogin(), @@ -61,15 +62,15 @@ class UsersLoader extends Storm_Model_Loader { 'id_site' => $bib->getIdBib()])) return $user; - if ($patron->getIdSigb() && - $user = Class_Users::findFirstBy(['id_site' => $bib->getIdBib(), - 'id_sigb' => $patron->getIdSigb()])) + if (($id_sigb = $patron->getIdSigb()) + && ($user = Class_Users::findFirstBy(['id_site' => $bib->getIdBib(), + 'id_sigb' => $patron->getIdSigb()]))) return $user; return null; - } + public function findAllLike($search, $by_right = null, $limit = 500) { $sql_template = 'select bib_admin_users.* from bib_admin_users '; diff --git a/library/ZendAfi/Auth/Adapter/CommSigb.php b/library/ZendAfi/Auth/Adapter/CommSigb.php index d05f5ee0c1e5f94e1a3ae951fb07e484dac19965..8ad3062b4fe47e6019ad300fddf030d1ce4a124c 100644 --- a/library/ZendAfi/Auth/Adapter/CommSigb.php +++ b/library/ZendAfi/Auth/Adapter/CommSigb.php @@ -75,7 +75,7 @@ class ZendAfi_Auth_Adapter_CommSigb implements Zend_Auth_Adapter_Interface { if (!$this->_bib) return $new_user; - xdebug_break(); + if ($user = Class_Users::findMatchingPatron($user_from_sigb, $this->_bib)) return $user;