summaryrefslogtreecommitdiff
path: root/includes/controller/user_driver_licenses_controller.php
diff options
context:
space:
mode:
authorPhilip Häusler <msquare@notrademark.de>2015-12-19 23:31:08 +0100
committerPhilip Häusler <msquare@notrademark.de>2015-12-19 23:31:08 +0100
commitfacc32f13331498999ee07d467ea4ef420ebf190 (patch)
tree340fcacdcb4993200dbbc83bfa1b7380aaef12c9 /includes/controller/user_driver_licenses_controller.php
parentdc4eb98cafccbba7b2877691d8c3322cac87828b (diff)
#198 add basic driver license information
Diffstat (limited to 'includes/controller/user_driver_licenses_controller.php')
-rw-r--r--includes/controller/user_driver_licenses_controller.php118
1 files changed, 118 insertions, 0 deletions
diff --git a/includes/controller/user_driver_licenses_controller.php b/includes/controller/user_driver_licenses_controller.php
new file mode 100644
index 00000000..b18a78b6
--- /dev/null
+++ b/includes/controller/user_driver_licenses_controller.php
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * Route user driver licenses actions.
+ */
+function user_driver_licenses_controller() {
+ global $privileges, $user;
+
+ if (! isset($user))
+ redirect(page_link_to(''));
+
+ if (! isset($_REQUEST['action']))
+ $_REQUEST['action'] = 'edit';
+
+ switch ($_REQUEST['action']) {
+ default:
+ case 'edit':
+ return user_driver_license_edit_controller();
+ }
+}
+
+/**
+ * Link to user driver license edit page for given user.
+ *
+ * @param User $user
+ */
+function user_driver_license_edit_link($user = null) {
+ if ($user == null)
+ return page_link_to('user_driver_licenses');
+ return page_link_to('user_driver_licenses') . '&user_id=' . $user['UID'];
+}
+
+/**
+ * Edit a users driver license information.
+ */
+function user_driver_license_edit_controller() {
+ global $privileges, $user;
+
+ if (isset($_REQUEST['user_id'])) {
+ $user_source = User($_REQUEST['user_id']);
+ if ($user_source === false)
+ engelsystem_error('Unable to load angeltype.');
+ if ($user_source == null)
+ redirect(user_driver_license_edit_link());
+
+ // only privilege admin_user can edit other users driver license information
+ if ($user['UID'] != $user_source['UID'] && ! in_array('admin_user', $privileges))
+ redirect(user_driver_license_edit_link());
+ } else {
+ $user_source = $user;
+ }
+
+ $wants_to_drive = false;
+ $has_car = false;
+ $has_license_car = false;
+ $has_license_3_5t_transporter = false;
+ $has_license_7_5t_truck = false;
+ $has_license_12_5t_truck = false;
+ $has_license_forklift = false;
+
+ $user_driver_license = UserDriverLicense($user_source['UID']);
+ if ($user_driver_license === false)
+ engelsystem_error('Unable to load user driver license.');
+ if ($user_driver_license != null) {
+ $wants_to_drive = true;
+ $has_car = $user_driver_license['has_car'];
+ $has_license_car = $user_driver_license['has_license_car'];
+ $has_license_3_5t_transporter = $user_driver_license['has_license_3_5t_transporter'];
+ $has_license_7_5t_truck = $user_driver_license['has_license_7_5t_truck'];
+ $has_license_12_5t_truck = $user_driver_license['has_license_12_5t_truck'];
+ $has_license_forklift = $user_driver_license['has_license_forklift'];
+ }
+
+ if (isset($_REQUEST['submit'])) {
+ $ok = true;
+ $wants_to_drive = isset($_REQUEST['wants_to_drive']);
+ $has_car = isset($_REQUEST['has_car']);
+ $has_license_car = isset($_REQUEST['has_license_car']);
+ $has_license_3_5t_transporter = isset($_REQUEST['has_license_3_5t_transporter']);
+ $has_license_7_5t_truck = isset($_REQUEST['has_license_7_5t_truck']);
+ $has_license_12_5t_truck = isset($_REQUEST['has_license_12_5t_truck']);
+ $has_license_forklift = isset($_REQUEST['has_license_forklift']);
+
+ if ($wants_to_drive && ! $has_license_car && ! $has_license_3_5t_transporter && ! $has_license_7_5t_truck && ! $has_license_12_5t_truck && ! $has_license_forklift) {
+ $ok = false;
+ error(_("Please select at least one driving license."));
+ }
+
+ if ($ok) {
+ if (! $wants_to_drive && $user_driver_license != null) {
+ $result = UserDriverLicenses_delete($user_source['UID']);
+ if ($result === false)
+ engelsystem_error('Unable to remove user driver license information');
+ success(_("Your driver license information has been removed."));
+ } else {
+ if ($wants_to_drive) {
+ if ($user_driver_license == null)
+ $result = UserDriverLicenses_create($user_source['UID'], $has_car, $has_license_car, $has_license_3_5t_transporter, $has_license_7_5t_truck, $has_license_12_5t_truck, $has_license_forklift);
+ else
+ $result = UserDriverLicenses_update($user_source['UID'], $has_car, $has_license_car, $has_license_3_5t_transporter, $has_license_7_5t_truck, $has_license_12_5t_truck, $has_license_forklift);
+
+ if ($result === false)
+ engelsystem_error('Unable to save user driver license information.');
+ }
+ success(_("Your driver license information has been saved."));
+ }
+
+ redirect(user_link($user_source));
+ }
+ }
+
+ return [
+ sprintf(_("Edit %s driving license information"), $user_source['Nick']),
+ UserDriverLicense_edit_view($user_source, $wants_to_drive, $has_car, $has_license_car, $has_license_3_5t_transporter, $has_license_7_5t_truck, $has_license_12_5t_truck, $has_license_forklift)
+ ];
+}
+
+?> \ No newline at end of file