From: <gem...@li...> - 2011-12-15 11:26:31
|
Revision: 355 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=355&view=rev Author: mennodekker Date: 2011-12-15 11:26:22 +0000 (Thu, 15 Dec 2011) Log Message: ----------- StaffAction now uses it's own model instead of the joinmodel and now handles saving the password field when needed, no dependency on adding a password field to the model anymore possible improvements: handle creation of a user without setting a password (generate one and send), sending welcome email?, reset password on first login etc. Modified Paths: -------------- trunk/library/classes/Gems/Default/StaffAction.php trunk/library/classes/Gems/Model.php trunk/library/classes/Gems/User/UserLoader.php Modified: trunk/library/classes/Gems/Default/StaffAction.php =================================================================== --- trunk/library/classes/Gems/Default/StaffAction.php 2011-12-13 21:00:25 UTC (rev 354) +++ trunk/library/classes/Gems/Default/StaffAction.php 2011-12-15 11:26:22 UTC (rev 355) @@ -111,15 +111,7 @@ $definition = $this->loader->getUserLoader()->getUserDefinition($data['gul_user_class'].'Definition'); if ($definition->canSetPassword()) { - //@@TODO: Should we handle it like this? The userdef has a setpassword method... - if ($definition instanceof Gems_User_StaffUserDefinition) { - Gems_Model::addUserPassword($model); - $passwordField = 'gup_password'; - $model->setOnSave($passwordField, array($this->project, 'getValueHash')); - } elseif ($definition instanceof Gems_User_OldStaffUserDefinition) { - $passwordField = 'gsf_password'; - $model->setOnSave($passwordField, array($this, 'getOldPasswordHash')); - } + $passwordField = 'fld_password'; } $model->set('gsf_id_primary_group', 'multiOptions', MUtil_Lazy::call($dbLookup->getAllowedStaffGroups)); Modified: trunk/library/classes/Gems/Model.php =================================================================== --- trunk/library/classes/Gems/Model.php 2011-12-13 21:00:25 UTC (rev 354) +++ trunk/library/classes/Gems/Model.php 2011-12-15 11:26:22 UTC (rev 355) @@ -222,7 +222,7 @@ public function getStaffModel() { - $model = new Gems_Model_JoinModel('staff', 'gems__staff', 'gsf'); + $model = $this->_loadClass('StaffModel', true); $this->addUserLogin($model, 'gsf_login', 'gsf_id_organization'); $this->setAsGemsUserId($model, 'gsf_id_user'); Modified: trunk/library/classes/Gems/User/UserLoader.php =================================================================== --- trunk/library/classes/Gems/User/UserLoader.php 2011-12-13 21:00:25 UTC (rev 354) +++ trunk/library/classes/Gems/User/UserLoader.php 2011-12-15 11:26:22 UTC (rev 355) @@ -249,10 +249,10 @@ protected function getUserClassInfo($login_name, $organization) { if ((null == $login_name) || (null == $organization)) { - return array('NoLoginDefinition', $organization); + return array(self::USER_NOLOGIN . 'Definition', $organization); } if ($this->isProjectUser($login_name)) { - return array('ProjectUserDefinition', $organization); + return array(self::USER_PROJECT . 'Definition', $organization); } try { @@ -324,7 +324,7 @@ return array(self::USER_OLD_STAFF . 'Definition', $organization); } - return array('NoLoginDefinition', $organization); + return array(self::USER_NOLOGIN . 'Definition', $organization); } protected function isProjectUser($login_name) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |