From: <gem...@li...> - 2011-11-21 16:33:22
|
Revision: 256 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=256&view=rev Author: matijsdejong Date: 2011-11-21 16:33:16 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Small changes useful for project specific User extensions Modified Paths: -------------- trunk/library/classes/Gems/User/OldStaffUserDefinition.php trunk/library/classes/Gems/User/StaffUserDefinition.php trunk/library/classes/Gems/User/User.php trunk/library/configs/db/patches.sql Modified: trunk/library/classes/Gems/User/OldStaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-21 15:51:49 UTC (rev 255) +++ trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-21 16:33:16 UTC (rev 256) @@ -58,14 +58,14 @@ * @var Gems_Project_ProjectSettings */ protected $project; - + /** * Perform UserDefinition specific post-login logic * * @param Zend_Auth_Result $authResult * @return void */ - public function afterLogin($authResult, $formValues) + public function afterLogin(Zend_Auth_Result $authResult, $formValues) { if ($authResult->isValid()) { $login_name = $formValues['userlogin']; @@ -142,6 +142,32 @@ */ public function getUserData($login_name, $organization) { + $select = $this->getUserSelect($login_name, $organization); + + // For a multi-layout project we need to select the appropriate style too, + // but as PATCHES may not be in effect we have to try two selects + $select2 = clone $select; + $select2->columns(array('user_style' => 'gor_style'), 'gems__organizations'); + + try { + // Fails before patch has run... + return $this->db->fetchRow($select2, array($login_name), Zend_Db::FETCH_ASSOC); + + } catch (Zend_Db_Exception $e) { + // So then we try the old method + return $this->db->fetchRow($select, array($login_name), Zend_Db::FETCH_ASSOC); + } + } + + /** + * Stub to allow subclasses to add fields to the select. + * + * @param string $login_name + * @param int $organization + * @return Zend_Db_Select + */ + protected function getUserSelect($login_name, $organization) + { /** * Read the needed parameters from the different tables, lots of renames for backward * compatibility @@ -165,19 +191,7 @@ ->where('gsf_login = ?') ->limit(1); - // For a multi-layout project we need to select the appropriate style too, - // but as PATCHES may not be in effect we have to try two selects - $select2 = clone $select; - $select2->columns(array('user_style' => 'gor_style'), 'gems__organizations'); - - try { - // Fails before patch has run... - return $this->db->fetchRow($select2, array($login_name), Zend_Db::FETCH_ASSOC); - - } catch (Zend_Db_Exception $e) { - // So then we try the old method - return $this->db->fetchRow($select, array($login_name), Zend_Db::FETCH_ASSOC); - } + return $select; } /** Modified: trunk/library/classes/Gems/User/StaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-21 15:51:49 UTC (rev 255) +++ trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-21 16:33:16 UTC (rev 256) @@ -166,6 +166,20 @@ */ public function getUserData($login_name, $organization) { + $select = $this->getUserSelect($login_name, $organization); + + return $this->db->fetchRow($select, array($login_name, $organization), Zend_Db::FETCH_ASSOC); + } + + /** + * Stub to allow subclasses to add fields to the select. + * + * @param string $login_name + * @param int $organization + * @return Zend_Db_Select + */ + protected function getUserSelect($login_name, $organization) + { $select = new Zend_Db_Select($this->db); $select->from('gems__user_logins', array('user_login_id' => 'gul_id_user')) ->join('gems__staff', 'gul_login = gsf_login AND gul_id_organization = gsf_id_organization', array( @@ -192,7 +206,7 @@ ->where('gul_id_organization = ?') ->limit(1); - return $this->db->fetchRow($select, array($login_name, $organization), Zend_Db::FETCH_ASSOC); + return $select; } /** Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-21 15:51:49 UTC (rev 255) +++ trunk/library/classes/Gems/User/User.php 2011-11-21 16:33:16 UTC (rev 256) @@ -50,7 +50,7 @@ * * @var Zend_Auth_Result */ - private $_authResult; + protected $_authResult; /** * Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2011-11-21 15:51:49 UTC (rev 255) +++ trunk/library/configs/db/patches.sql 2011-11-21 16:33:16 UTC (rev 256) @@ -320,6 +320,8 @@ ADD gor_has_patients boolean not null default 1 AFTER gor_iso_lang, ADD gor_add_patients boolean not null default 1 AFTER gor_has_patients; +UPDATE `gems__organizations` SET gor_has_patients = COALESCE((SELECT 1 FROM gems__respondent2org WHERE gr2o_id_organization = gor_id_organization GROUP BY gr2o_id_organization), 0); + -- PATCH: Log failed logins INSERT INTO `zsd`.`gems__log_actions` (`glac_id_action`, `glac_name`, `glac_change`, `glac_log`, `glac_created`) VALUES (NULL , 'loginFail', '0', '1', CURRENT_TIMESTAMP); \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |