|
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.
|