From 5f91d761477c51690992a38112b0ff215a136064 Mon Sep 17 00:00:00 2001 From: Christian Wolf Date: Tue, 16 Apr 2019 15:16:24 +0200 Subject: [PATCH] Benutzer hinzufuegen und loeschen realisiert. --- src/admin/controllers/user.php | 105 ++++++++++++++++++++++++- src/admin/views/user/tmpl/default.php | 4 +- src/admin/views/user/view.html.php | 4 +- src/admin/views/users/tmpl/default.php | 5 +- src/admin/views/users/view.html.php | 2 +- 5 files changed, 111 insertions(+), 9 deletions(-) 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; - + users as $user): ?> getId()); ?> - +
Benutzername Ort E-MailLöschen? id
getName()); ?> getCity()); ?> getMail()); ?>getId()); ?>'>Del getId()); ?>
+
'>Neuen Benutzer anlegen
diff --git a/src/admin/views/users/view.html.php b/src/admin/views/users/view.html.php index 4897d47..2b9ce88 100644 --- a/src/admin/views/users/view.html.php +++ b/src/admin/views/users/view.html.php @@ -14,7 +14,7 @@ class ClubsViewUsers extends HtmlView { $this->users = ClubsUser::loadUsers(); - ToolbarHelper::title('Club-Management'); + ToolbarHelper::title('Club-Management - Personen', 'user'); parent::display($tpl); }