summaryrefslogtreecommitdiff
path: root/includes/controller
diff options
context:
space:
mode:
authorPhilip Häusler <msquare@notrademark.de>2015-12-20 11:36:12 +0100
committerPhilip Häusler <msquare@notrademark.de>2015-12-20 11:36:12 +0100
commit0ac05d251c0df5fa09a27b7686acc5690b436f31 (patch)
tree12e39fff0fd2c62a624a8c6ee51af4664d557ade /includes/controller
parent2cb44fe51752bece6413d3a4745cfba79df21884 (diff)
#198 fixed: driving license feature completed - integrated into angeltypes
Diffstat (limited to 'includes/controller')
-rw-r--r--includes/controller/angeltypes_controller.php21
-rw-r--r--includes/controller/user_driver_licenses_controller.php26
2 files changed, 40 insertions, 7 deletions
diff --git a/includes/controller/angeltypes_controller.php b/includes/controller/angeltypes_controller.php
index 16f0a4f2..0fdbaa28 100644
--- a/includes/controller/angeltypes_controller.php
+++ b/includes/controller/angeltypes_controller.php
@@ -97,6 +97,7 @@ function angeltype_edit_controller() {
$name = "";
$restricted = false;
$description = "";
+ $requires_driver_license = false;
if (isset($_REQUEST['angeltype_id'])) {
$angeltype = AngelType($_REQUEST['angeltype_id']);
@@ -108,6 +109,7 @@ function angeltype_edit_controller() {
$name = $angeltype['name'];
$restricted = $angeltype['restricted'];
$description = $angeltype['description'];
+ $requires_driver_license = $angeltype['requires_driver_license'];
if (! User_is_AngelType_coordinator($user, $angeltype))
redirect(page_link_to('angeltypes'));
@@ -132,6 +134,7 @@ function angeltype_edit_controller() {
}
$restricted = isset($_REQUEST['restricted']);
+ $requires_driver_license = isset($_REQUEST['requires_driver_license']);
}
if (isset($_REQUEST['description']))
@@ -140,26 +143,26 @@ function angeltype_edit_controller() {
if ($ok) {
$restricted = $restricted ? 1 : 0;
if (isset($angeltype)) {
- $result = AngelType_update($angeltype['id'], $name, $restricted, $description);
+ $result = AngelType_update($angeltype['id'], $name, $restricted, $description, $requires_driver_license);
if ($result === false)
engelsystem_error("Unable to update angeltype.");
- engelsystem_log("Updated angeltype: " . $name . ", restricted: " . $restricted);
+ engelsystem_log("Updated angeltype: " . $name . ($restricted ? ", restricted" : "") . ($requires_driver_license ? ", requires driver license" : ""));
$angeltype_id = $angeltype['id'];
} else {
- $angeltype_id = AngelType_create($name, $restricted, $description);
+ $angeltype_id = AngelType_create($name, $restricted, $description, $requires_driver_license);
if ($angeltype_id === false)
engelsystem_error("Unable to create angeltype.");
- engelsystem_log("Created angeltype: " . $name . ", restricted: " . $restricted);
+ engelsystem_log("Created angeltype: " . $name . ($restricted ? ", restricted" : "") . ($requires_driver_license ? ", requires driver license" : ""));
}
success("Angel type saved.");
- redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype_id);
+ redirect(angeltype_link($angeltype_id));
}
}
return array(
sprintf(_("Edit %s"), $name),
- AngelType_edit_view($name, $restricted, $description, $coordinator_mode)
+ AngelType_edit_view($name, $restricted, $description, $coordinator_mode, $requires_driver_license)
);
}
@@ -185,13 +188,17 @@ function angeltype_controller() {
if ($user_angeltype === false)
engelsystem_error("Unable to load user angeltype.");
+ $user_driver_license = UserDriverLicense($user['UID']);
+ if ($user_driver_license === false)
+ engelsystem_error("Unable to load user driver license.");
+
$members = Users_by_angeltype($angeltype);
if ($members === false)
engelsystem_error("Unable to load members.");
return array(
sprintf(_("Team %s"), $angeltype['name']),
- AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['coordinator'], in_array('admin_angel_types', $privileges), $user_angeltype['coordinator'])
+ AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['coordinator'], in_array('admin_angel_types', $privileges), $user_angeltype['coordinator'], $user_driver_license, $user)
);
}
diff --git a/includes/controller/user_driver_licenses_controller.php b/includes/controller/user_driver_licenses_controller.php
index b18a78b6..ec094220 100644
--- a/includes/controller/user_driver_licenses_controller.php
+++ b/includes/controller/user_driver_licenses_controller.php
@@ -1,6 +1,32 @@
<?php
/**
+ * Generates a hint, if user joined angeltypes that require a driving license and the user has no driver license information provided.
+ */
+function user_driver_license_required_hint() {
+ global $user;
+
+ $angeltypes = User_angeltypes($user);
+ if ($angeltypes === false)
+ engelsystem_error("Unable to load user angeltypes.");
+ $user_driver_license = UserDriverLicense($user['UID']);
+ if ($user_driver_license === false)
+ engelsystem_error("Unable to load user driver license.");
+
+ $driving_license_information_required = false;
+ foreach ($angeltypes as $angeltype)
+ if ($angeltype['requires_driver_license']) {
+ $driving_license_information_required = true;
+ break;
+ }
+
+ if ($driving_license_information_required && $user_driver_license == null)
+ return info(sprintf(_("You joined an angeltype which requires a driving license. Please edit your driving license information here: %s."), '<a href="' . user_driver_license_edit_link() . '">' . _("driving license information") . '</a>'), true);
+
+ return '';
+}
+
+/**
* Route user driver licenses actions.
*/
function user_driver_licenses_controller() {