engelsystem/includes/controller/user_driver_licenses_contro...

118 lines
4.3 KiB
PHP
Raw Normal View History

<?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)
];
}
?>