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