Made user class work with abstract classes

This commit is contained in:
2019-05-17 13:14:39 +02:00
parent 17e737b64c
commit 03df8c8f1a
4 changed files with 47 additions and 22 deletions

View File

@@ -8,8 +8,13 @@ defined('_JEXEC') or die;
class ClubsControllerUser extends AbstractClubsController
{
private function checkUserName($username, $id = -1)
private function checkUserName($username, $obj = null)
{
$id = -1;
if(!is_null($obj))
$id = $obj->getId();
return ClubsUser::isUserNameFree($username, $id);
}
@@ -24,7 +29,7 @@ class ClubsControllerUser extends AbstractClubsController
'user'=>array('required'=>true, 'name'=>'Benutzername', 'filter'=>'cmd'),
'pwd'=>array('required'=>false, 'name'=>'Passwort', 'filter'=>'string', 'setter'=>'setPassword'),
'pwdConfirm'=>array('required'=>false, 'name'=>'Passwortwiederholung', 'filter'=>'string', 'setter'=>null),
'name'=>array('required'=>true, 'name'=>'Benutzername', 'filter'=>'string'),
'name'=>array('required'=>true, 'name'=>'Bürgerlicher Name', 'filter'=>'string'),
'address'=>array('required'=>true, 'name'=>'Adresse', 'filter'=>'string'),
'city'=>array('required'=>true, 'name'=>'Stadt', 'filter'=>'string'),
'mail'=>array('required'=>true, 'name'=>'E-Mail', 'filter'=>'string'),
@@ -37,13 +42,13 @@ class ClubsControllerUser extends AbstractClubsController
* {@inheritDoc}
* @see AbstractClubsController::checkData()
*/
protected function checkDataIsValid($values, $isNew)
protected function checkDataIsValid($values, $isNew, $obj)
{
if(! parent::checkDataIsValid($values, $isNew))
if(! parent::checkDataIsValid($values, $isNew, $obj))
return false;
// TODO Auto-generated method stub
if(isset($values['pwd']))
if(isset($values['pwd']) && strlen($values['pwd']) > 0)
{
$pwd = $values['pwd'];
$pwdConfirm = $values['pwdConfirm'];
@@ -70,7 +75,7 @@ class ClubsControllerUser extends AbstractClubsController
}
}
if(! $this->checkUserName(trim($values['user'])))
if(! $this->checkUserName(trim($values['user']), $obj))
{
Factory::getApplication()->enqueueMessage('Username ' . $$values['user'] . ' ist nicht gültig.', 'error');
return false;
@@ -97,7 +102,15 @@ class ClubsControllerUser extends AbstractClubsController
public function applyData($obj, $values)
{
// TODO Auto-generated method stub
parent::applyData($obj, $values);
$mapping = $this->getDataMapping();
if(strlen($values['pwd']) == 0)
{
unset($values['pwd']);
unset($mapping['pwd']);
}
$this->applyDataToObject($obj, $values, $mapping);
}