diff --git a/src/admin/controllers/user.php b/src/admin/controllers/user.php
index a6310e4..531f27b 100644
--- a/src/admin/controllers/user.php
+++ b/src/admin/controllers/user.php
@@ -11,7 +11,96 @@ class ClubsControllerUser extends BaseController
{
function new()
- {}
+ {
+ $app = Factory::getApplication();
+ $input = $app->input;
+ $u = ClubsUser::createUser();
+
+ // Fetch the posted data
+ $user = $input->post->getCmd('user');
+ $pwd = $input->post->getCmd('pwd');
+ $pwdConfirm = $input->post->getCmd('pwd-confirm');
+ $name = $input->post->getString('name');
+ $address = $input->post->getString('address');
+ $city = $input->post->getString('city');
+ $mail = $input->post->getString('mail');
+ $phone = $input->post->getString('phone');
+ $mobile = $input->post->getString('mobile');
+
+ // Check the input data
+ $error = false;
+
+ if(empty($user))
+ {
+ $app->enqueueMessage("Es muss ein Benutzername angegeben werden.", 'error');
+ $error = true;
+ }
+ else
+ {
+ if(! $this->checkUserName(trim($user)))
+ {
+ $app->enqueueMessage('Username ' . $user . ' ist nicht gültig.', 'error');
+ $error = true;
+ }
+ else
+ $u->setUser($user);
+ }
+
+ $pwderr = false;
+ if(isset($pwd))
+ {
+ if(trim($pwd) != trim($pwdConfirm))
+ {
+ $app->enqueueMessage('Die Passwörter stimmen nicht überein.', 'error');
+ $error = true;
+ $pwderr = true;
+ }
+
+ if(! $u->checkPassword(trim($pwd)))
+ {
+ $app->enqueueMessage('Das Passwort ist nicht zulässig.', 'error');
+ $error = true;
+ $pwderr = true;
+ }
+
+ if(! $pwderr)
+ $u->setPassword(trim($pwd));
+ }
+
+ // Check existence of the other fields
+ $fields = array('name'=>'Bürgerlicher Name', 'address'=>'Adresse', 'city'=>"Stadt", 'mail'=>'E-Mail');
+ foreach ($fields as $f => $fname)
+ {
+ $fvalue = $$f;
+ if(! isset($fvalue) || empty(trim($fvalue)))
+ {
+ $app->enqueueMessage("Das Feld $fname ist obligatorisch.", 'error');
+ $error = true;
+ }
+ }
+
+ $u->setName($name);
+ $u->setAddress($address);
+ $u->setCity($city);
+ $u->setMail($mail);
+ $u->setPhone($phone);
+ $u->setMobile($mobile);
+
+ if($error)
+ {
+ $data = array();
+ foreach(array('user', 'name', 'address', 'city', 'mail', 'phone', 'mobile') as $i)
+ $data[$i] = $$i;
+
+ $urldata = urlencode(json_encode($data));
+ $this->setRedirect(Route::_('index.php?option=com_clubs&view=user&id=new&data=' . $urldata, false));
+ return;
+ }
+
+ // Do the actual work
+ $u->save();
+ $this->setRedirect(Route::_('index.php?option=com_clubs&view=users', false));
+ }
function change()
{
@@ -34,7 +123,7 @@ class ClubsControllerUser extends BaseController
// Check the input data
$error = false;
- if(isset($user))
+ if(! empty($user))
{
if(! $this->checkUserName(trim($user), $id))
{
@@ -70,7 +159,7 @@ class ClubsControllerUser extends BaseController
foreach ($fields as $f => $fname)
{
$fvalue = $$f;
- if(! isset($fvalue) || strlen(trim($fvalue)) == 0)
+ if(! isset($fvalue) || empty(trim($fvalue)))
{
$app->enqueueMessage("Das Feld $fname ist obligatorisch.", 'error');
$error = true;
@@ -100,6 +189,16 @@ class ClubsControllerUser extends BaseController
$this->setRedirect(Route::_('index.php?option=com_clubs&view=users', false));
}
+ function delete()
+ {
+ $app = Factory::getApplication();
+ $id = $app->input->get->getInt('id');
+ $app->enqueueMessage("Removal of user with id $id.");
+ $user = ClubsUser::loadUser($id);
+ $user->delete();
+ $this->setRedirect(Route::_('index.php?option=com_clubs&view=users', false));
+ }
+
private function checkUserName($username, $id = -1)
{
return ClubsUser::isUserNameFree($username, $id);
diff --git a/src/admin/views/user/tmpl/default.php b/src/admin/views/user/tmpl/default.php
index 8f4c13b..862232c 100644
--- a/src/admin/views/user/tmpl/default.php
+++ b/src/admin/views/user/tmpl/default.php
@@ -1,5 +1,7 @@
-
+
'>Zurück zur Übersicht
diff --git a/src/admin/views/user/view.html.php b/src/admin/views/user/view.html.php
index a0d5dc5..08cdb42 100644
--- a/src/admin/views/user/view.html.php
+++ b/src/admin/views/user/view.html.php
@@ -18,7 +18,7 @@ class ClubsViewUser extends HtmlView
if($id === 'new')
{
- $this->address = Route::_('index.php?option-com_clubs&task=user.new');
+ $this->address = Route::_('index.php?option=com_clubs&task=user.new');
$this->user = ClubsUser::createUser();
$this->isNew = true;
}
@@ -47,7 +47,7 @@ class ClubsViewUser extends HtmlView
}
- ToolbarHelper::title('Club-Management');
+ ToolbarHelper::title('Club-Management - Person');
parent::display($tpl);
}
diff --git a/src/admin/views/users/tmpl/default.php b/src/admin/views/users/tmpl/default.php
index 6209998..28da5d6 100644
--- a/src/admin/views/users/tmpl/default.php
+++ b/src/admin/views/users/tmpl/default.php
@@ -10,23 +10,24 @@ defined('_JEXEC') or die;
Benutzername | Ort | Löschen? | id | ||
---|---|---|---|---|---|
getName()); ?> | getCity()); ?> | getMail()); ?> | +getId()); ?>'>Del | getId()); ?> |