From d71e7bbfad2f07f82df0c515608996d250fd4182 Mon Sep 17 00:00:00 2001 From: Bot Date: Mon, 2 Jan 2017 15:43:36 +0100 Subject: Formatting --- includes/controller/angeltypes_controller.php | 179 +++++++------ includes/controller/event_config_controller.php | 66 +++-- includes/controller/rooms_controller.php | 57 +++-- includes/controller/shift_entries_controller.php | 161 ++++++++---- includes/controller/shifts_controller.php | 250 +++++++++--------- includes/controller/shifttypes_controller.php | 84 +++--- includes/controller/user_angeltypes_controller.php | 283 ++++++++++++--------- .../controller/user_driver_licenses_controller.php | 72 +++--- includes/controller/users_controller.php | 202 ++++++++------- 9 files changed, 774 insertions(+), 580 deletions(-) (limited to 'includes/controller') diff --git a/includes/controller/angeltypes_controller.php b/includes/controller/angeltypes_controller.php index 26aaae71..de4b8a49 100644 --- a/includes/controller/angeltypes_controller.php +++ b/includes/controller/angeltypes_controller.php @@ -14,20 +14,20 @@ function angeltypes_title() function angeltypes_controller() { $action = strip_request_item('action', 'list'); - + switch ($action) { - default: - case 'list': - return angeltypes_list_controller(); - case 'view': - return angeltype_controller(); - case 'edit': - return angeltype_edit_controller(); - case 'delete': - return angeltype_delete_controller(); - case 'about': - return angeltypes_about_controller(); - } + default: + case 'list': + return angeltypes_list_controller(); + case 'view': + return angeltype_controller(); + case 'edit': + return angeltype_edit_controller(); + case 'delete': + return angeltype_delete_controller(); + case 'about': + return angeltypes_about_controller(); + } } /** @@ -46,17 +46,17 @@ function angeltype_link($angeltype_id) function angeltypes_about_controller() { global $user; - + if (isset($user)) { $angeltypes = AngelTypes_with_user($user); } else { $angeltypes = AngelTypes(); } - + return [ - _("Teams/Job description"), - AngelTypes_about_view($angeltypes, isset($user)) - ]; + _("Teams/Job description"), + AngelTypes_about_view($angeltypes, isset($user)) + ]; } /** @@ -65,23 +65,23 @@ function angeltypes_about_controller() function angeltype_delete_controller() { global $privileges; - - if (! in_array('admin_angel_types', $privileges)) { + + if (!in_array('admin_angel_types', $privileges)) { redirect(page_link_to('angeltypes')); } - + $angeltype = load_angeltype(); - + if (isset($_REQUEST['confirmed'])) { AngelType_delete($angeltype); success(sprintf(_("Angeltype %s deleted."), AngelType_name_render($angeltype))); redirect(page_link_to('angeltypes')); } - + return [ - sprintf(_("Delete angeltype %s"), $angeltype['name']), - AngelType_delete_view($angeltype) - ]; + sprintf(_("Delete angeltype %s"), $angeltype['name']), + AngelType_delete_view($angeltype) + ]; } /** @@ -90,63 +90,63 @@ function angeltype_delete_controller() function angeltype_edit_controller() { global $privileges, $user; - - // In supporter mode only allow to modify description - $supporter_mode = ! in_array('admin_angel_types', $privileges); - + + // In supporter mode only allow to modify description + $supporter_mode = !in_array('admin_angel_types', $privileges); + if (isset($_REQUEST['angeltype_id'])) { // Edit existing angeltype - $angeltype = load_angeltype(); - - if (! User_is_AngelType_supporter($user, $angeltype)) { + $angeltype = load_angeltype(); + + if (!User_is_AngelType_supporter($user, $angeltype)) { redirect(page_link_to('angeltypes')); } } else { // New angeltype - if ($supporter_mode) { - // Supporters aren't allowed to create new angeltypes. - redirect(page_link_to('angeltypes')); - } + if ($supporter_mode) { + // Supporters aren't allowed to create new angeltypes. + redirect(page_link_to('angeltypes')); + } $angeltype = AngelType_new(); } - + if (isset($_REQUEST['submit'])) { $valid = true; - - if (! $supporter_mode) { + + if (!$supporter_mode) { if (isset($_REQUEST['name'])) { $result = AngelType_validate_name($_REQUEST['name'], $angeltype); $angeltype['name'] = $result->getValue(); - if (! $result->isValid()) { + if (!$result->isValid()) { $valid = false; error(_("Please check the name. Maybe it already exists.")); } } - + $angeltype['restricted'] = isset($_REQUEST['restricted']); $angeltype['no_self_signup'] = isset($_REQUEST['no_self_signup']); $angeltype['requires_driver_license'] = isset($_REQUEST['requires_driver_license']); } - + $angeltype['description'] = strip_request_item_nl('description', $angeltype['description']); - + if ($valid) { if ($angeltype['id'] != null) { AngelType_update($angeltype); } else { $angeltype = AngelType_create($angeltype); } - + success("Angel type saved."); redirect(angeltype_link($angeltype['id'])); } } - + return [ - sprintf(_("Edit %s"), $angeltype['name']), - AngelType_edit_view($angeltype, $supporter_mode) - ]; + sprintf(_("Edit %s"), $angeltype['name']), + AngelType_edit_view($angeltype, $supporter_mode) + ]; } /** @@ -155,20 +155,29 @@ function angeltype_edit_controller() function angeltype_controller() { global $privileges, $user; - - if (! in_array('angeltypes', $privileges)) { + + if (!in_array('angeltypes', $privileges)) { redirect('?'); } - + $angeltype = load_angeltype(); $user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype); $user_driver_license = UserDriverLicense($user['UID']); $members = Users_by_angeltype($angeltype); - + return [ - sprintf(_("Team %s"), $angeltype['name']), - AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['supporter'], in_array('admin_angel_types', $privileges), $user_angeltype['supporter'], $user_driver_license, $user) - ]; + sprintf(_("Team %s"), $angeltype['name']), + AngelType_view( + $angeltype, + $members, + $user_angeltype, + in_array('admin_user_angeltypes', $privileges) || $user_angeltype['supporter'], + in_array('admin_angel_types', $privileges), + $user_angeltype['supporter'], + $user_driver_license, + $user + ) + ]; } /** @@ -177,42 +186,58 @@ function angeltype_controller() function angeltypes_list_controller() { global $privileges, $user; - - if (! in_array('angeltypes', $privileges)) { + + if (!in_array('angeltypes', $privileges)) { redirect('?'); } - + $angeltypes = AngelTypes_with_user($user); - + foreach ($angeltypes as &$angeltype) { $actions = [ - button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("view"), "btn-xs") - ]; - + button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("view"), "btn-xs") + ]; + if (in_array('admin_angel_types', $privileges)) { - $actions[] = button(page_link_to('angeltypes') . '&action=edit&angeltype_id=' . $angeltype['id'], _("edit"), "btn-xs"); - $actions[] = button(page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'], _("delete"), "btn-xs"); + $actions[] = button( + page_link_to('angeltypes') . '&action=edit&angeltype_id=' . $angeltype['id'], + _("edit"), + "btn-xs" + ); + $actions[] = button( + page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'], + _("delete"), + "btn-xs" + ); } - + $angeltype['membership'] = AngelType_render_membership($angeltype); if ($angeltype['user_angeltype_id'] != null) { - $actions[] = button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $angeltype['user_angeltype_id'], _("leave"), "btn-xs"); + $actions[] = button( + page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $angeltype['user_angeltype_id'], + _("leave"), + "btn-xs" + ); } else { - $actions[] = button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], _("join"), "btn-xs"); + $actions[] = button( + page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], + _("join"), + "btn-xs" + ); } - + $angeltype['restricted'] = $angeltype['restricted'] ? glyph('lock') : ''; $angeltype['no_self_signup'] = $angeltype['no_self_signup'] ? '' : glyph('share'); $angeltype['name'] = '' . $angeltype['name'] . ''; - + $angeltype['actions'] = table_buttons($actions); } - + return [ - angeltypes_title(), - AngelTypes_list_view($angeltypes, in_array('admin_angel_types', $privileges)) - ]; + angeltypes_title(), + AngelTypes_list_view($angeltypes, in_array('admin_angel_types', $privileges)) + ]; } /** @@ -220,15 +245,15 @@ function angeltypes_list_controller() */ function load_angeltype() { - if (! isset($_REQUEST['angeltype_id'])) { + if (!isset($_REQUEST['angeltype_id'])) { redirect(page_link_to('angeltypes')); } - + $angeltype = AngelType($_REQUEST['angeltype_id']); if ($angeltype == null) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + return $angeltype; } diff --git a/includes/controller/event_config_controller.php b/includes/controller/event_config_controller.php index c93f8d63..623a2a7a 100644 --- a/includes/controller/event_config_controller.php +++ b/includes/controller/event_config_controller.php @@ -8,18 +8,18 @@ function event_config_title() function event_config_edit_controller() { global $privileges; - - if (! in_array('admin_event_config', $privileges)) { + + if (!in_array('admin_event_config', $privileges)) { redirect('?'); } - + $event_name = null; $event_welcome_msg = null; $buildup_start_date = null; $event_start_date = null; $event_end_date = null; $teardown_end_date = null; - + $event_config = EventConfig(); if ($event_config != null) { $event_name = $event_config['event_name']; @@ -29,75 +29,93 @@ function event_config_edit_controller() $teardown_end_date = $event_config['teardown_end_date']; $event_welcome_msg = $event_config['event_welcome_msg']; } - + if (isset($_REQUEST['submit'])) { $valid = true; - + if (isset($_REQUEST['event_name'])) { $event_name = strip_request_item('event_name'); } if ($event_name == '') { $event_name = null; } - + if (isset($_REQUEST['event_welcome_msg'])) { $event_welcome_msg = strip_request_item_nl('event_welcome_msg'); } if ($event_welcome_msg == '') { $event_welcome_msg = null; } - + $result = check_request_date('buildup_start_date', _("Please enter buildup start date."), true); $buildup_start_date = $result->getValue(); $valid &= $result->isValid(); - + $result = check_request_date('event_start_date', _("Please enter event start date."), true); $event_start_date = $result->getValue(); $valid &= $result->isValid(); - + $result = check_request_date('event_end_date', _("Please enter event end date."), true); $event_end_date = $result->getValue(); $valid &= $result->isValid(); - + $result = check_request_date('teardown_end_date', _("Please enter teardown end date."), true); $teardown_end_date = $result->getValue(); $valid &= $result->isValid(); - + if ($buildup_start_date != null && $event_start_date != null && $buildup_start_date > $event_start_date) { $valid = false; error(_("The buildup start date has to be before the event start date.")); } - + if ($event_start_date != null && $event_end_date != null && $event_start_date > $event_end_date) { $valid = false; error(_("The event start date has to be before the event end date.")); } - + if ($event_end_date != null && $teardown_end_date != null && $event_end_date > $teardown_end_date) { $valid = false; error(_("The event end date has to be before the teardown end date.")); } - + if ($buildup_start_date != null && $teardown_end_date != null && $buildup_start_date > $teardown_end_date) { $valid = false; error(_("The buildup start date has to be before the teardown end date.")); } - + if ($valid) { - $result = EventConfig_update($event_name, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date, $event_welcome_msg); - + $result = EventConfig_update( + $event_name, + $buildup_start_date, + $event_start_date, + $event_end_date, + $teardown_end_date, + $event_welcome_msg + ); + if ($result === false) { engelsystem_error("Unable to update event config."); } - - engelsystem_log("Changed event config: $event_name, $event_welcome_msg, " . date("Y-m-d", $buildup_start_date) . ", " . date("Y-m-d", $event_start_date) . ", " . date("Y-m-d", $event_end_date) . ", " . date("Y-m-d", $teardown_end_date)); + + engelsystem_log( + "Changed event config: $event_name, $event_welcome_msg, " + . date("Y-m-d", $buildup_start_date) . ", " . date("Y-m-d", $event_start_date) . ", " + . date("Y-m-d", $event_end_date) . ", " . date("Y-m-d", $teardown_end_date) + ); success(_("Settings saved.")); redirect(page_link_to('admin_event_config')); } } - + return [ - event_config_title(), - EventConfig_edit_view($event_name, $event_welcome_msg, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date) - ]; + event_config_title(), + EventConfig_edit_view( + $event_name, + $event_welcome_msg, + $buildup_start_date, + $event_start_date, + $event_end_date, + $teardown_end_date + ) + ]; } diff --git a/includes/controller/rooms_controller.php b/includes/controller/rooms_controller.php index 2e45dead..d19e91bb 100644 --- a/includes/controller/rooms_controller.php +++ b/includes/controller/rooms_controller.php @@ -1,7 +1,6 @@ setStartTime(parse_date("Y-m-d H:i", $selected_day . ' 00:00')); $shiftsFilter->setEndTime(parse_date("Y-m-d H:i", $selected_day . ' 23:59')); - + $shiftsFilterRenderer = new ShiftsFilterRenderer($shiftsFilter); $shiftsFilterRenderer->enableDaySelection($days); - + $shiftCalendarRenderer = shiftCalendarRendererByShiftFilter($shiftsFilter); - + return [ - $room['Name'], - Room_view($room, $shiftsFilterRenderer, $shiftCalendarRenderer) - ]; + $room['Name'], + Room_view($room, $shiftsFilterRenderer, $shiftCalendarRenderer) + ]; } /** @@ -57,17 +58,17 @@ function room_controller() */ function rooms_controller() { - if (! isset($_REQUEST['action'])) { + if (!isset($_REQUEST['action'])) { $_REQUEST['action'] = 'list'; } - + switch ($_REQUEST['action']) { - default: - case 'list': - redirect(page_link_to('admin_rooms')); - case 'view': - return room_controller(); - } + default: + case 'list': + redirect(page_link_to('admin_rooms')); + case 'view': + return room_controller(); + } } function room_link($room) @@ -85,14 +86,14 @@ function room_edit_link($room) */ function load_room() { - if (! test_request_int('room_id')) { + if (!test_request_int('room_id')) { redirect(page_link_to()); } - + $room = Room($_REQUEST['room_id']); if ($room == null) { redirect(page_link_to()); } - + return $room; } diff --git a/includes/controller/shift_entries_controller.php b/includes/controller/shift_entries_controller.php index 7fce4626..928a0990 100644 --- a/includes/controller/shift_entries_controller.php +++ b/includes/controller/shift_entries_controller.php @@ -6,112 +6,157 @@ function shift_entry_add_controller() { global $privileges, $user; - + if (isset($_REQUEST['shift_id']) && preg_match("/^[0-9]*$/", $_REQUEST['shift_id'])) { $shift_id = $_REQUEST['shift_id']; } else { redirect(page_link_to('user_shifts')); } - - // Locations laden - $rooms = sql_select("SELECT * FROM `Room` WHERE `show`='Y' ORDER BY `Name`"); + + // Locations laden + $rooms = sql_select("SELECT * FROM `Room` WHERE `show`='Y' ORDER BY `Name`"); $room_array = []; foreach ($rooms as $room) { $room_array[$room['RID']] = $room['Name']; } - + $shift = Shift($shift_id); $shift['Name'] = $room_array[$shift['RID']]; if ($shift == null) { redirect(page_link_to('user_shifts')); } - + if (isset($_REQUEST['type_id']) && preg_match("/^[0-9]*$/", $_REQUEST['type_id'])) { $type_id = $_REQUEST['type_id']; } else { redirect(page_link_to('user_shifts')); } - + if (in_array('user_shifts_admin', $privileges) || in_array('shiftentry_edit_angeltype_supporter', $privileges)) { $type = AngelType($type_id); } else { - $type = sql_select("SELECT * FROM `UserAngelTypes` JOIN `AngelTypes` ON (`UserAngelTypes`.`angeltype_id` = `AngelTypes`.`id`) WHERE `AngelTypes`.`id` = '" . sql_escape($type_id) . "' AND (`AngelTypes`.`restricted` = 0 OR (`UserAngelTypes`.`user_id` = '" . sql_escape($user['UID']) . "' AND NOT `UserAngelTypes`.`confirm_user_id` IS NULL))"); + $type = sql_select(" + SELECT * FROM `UserAngelTypes` + JOIN `AngelTypes` ON (`UserAngelTypes`.`angeltype_id` = `AngelTypes`.`id`) + WHERE `AngelTypes`.`id` = '" . sql_escape($type_id) . "' + AND ( + `AngelTypes`.`restricted` = 0 + OR ( + `UserAngelTypes`.`user_id` = '" . sql_escape($user['UID']) . "' + AND NOT `UserAngelTypes`.`confirm_user_id` IS NULL + ) + ) + "); $type = $type[0]; } - + if ($type == null) { redirect(page_link_to('user_shifts')); } - - if (isset($_REQUEST['user_id']) && preg_match("/^[0-9]*$/", $_REQUEST['user_id']) && (in_array('user_shifts_admin', $privileges) || in_array('shiftentry_edit_angeltype_supporter', $privileges))) { + + if ( + isset($_REQUEST['user_id']) + && preg_match("/^[0-9]*$/", $_REQUEST['user_id']) + && ( + in_array('user_shifts_admin', $privileges) + || in_array('shiftentry_edit_angeltype_supporter', $privileges) + ) + ) { $user_id = $_REQUEST['user_id']; } else { $user_id = $user['UID']; } - + $needed_angeltype = NeededAngeltype_by_Shift_and_Angeltype($shift, $type); $shift_entries = ShiftEntries_by_shift_and_angeltype($shift['SID'], $type['id']); - - $shift_signup_allowed = Shift_signup_allowed(User($user_id), $shift, $type, null, null, $needed_angeltype, $shift_entries); - if (! $shift_signup_allowed->isSignupAllowed()) { + + $shift_signup_allowed = Shift_signup_allowed( + User($user_id), + $shift, + $type, + null, + null, + $needed_angeltype, + $shift_entries + ); + if (!$shift_signup_allowed->isSignupAllowed()) { error(_("You are not allowed to sign up for this shift. Maybe shift is full or already running.")); redirect(shift_link($shift)); } - + if (isset($_REQUEST['submit'])) { $selected_type_id = $type_id; - if (in_array('user_shifts_admin', $privileges) || in_array('shiftentry_edit_angeltype_supporter', $privileges)) { + if (in_array('user_shifts_admin', $privileges) || in_array('shiftentry_edit_angeltype_supporter', + $privileges) + ) { if (sql_num_query("SELECT * FROM `User` WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1") == 0) { redirect(page_link_to('user_shifts')); } - - if (isset($_REQUEST['angeltype_id']) && test_request_int('angeltype_id') && sql_num_query("SELECT * FROM `AngelTypes` WHERE `id`='" . sql_escape($_REQUEST['angeltype_id']) . "' LIMIT 1") > 0) { + + if ( + isset($_REQUEST['angeltype_id']) + && test_request_int('angeltype_id') + && sql_num_query("SELECT * FROM `AngelTypes` WHERE `id`='" . sql_escape($_REQUEST['angeltype_id']) . "' LIMIT 1") > 0 + ) { $selected_type_id = $_REQUEST['angeltype_id']; } } - + if (sql_num_query("SELECT * FROM `ShiftEntry` WHERE `SID`='" . sql_escape($shift['SID']) . "' AND `UID` = '" . sql_escape($user_id) . "'")) { return error("This angel does already have an entry for this shift.", true); } - + $freeloaded = $shift['freeloaded']; $freeload_comment = $shift['freeload_comment']; if (in_array("user_shifts_admin", $privileges)) { $freeloaded = isset($_REQUEST['freeloaded']); $freeload_comment = strip_request_item_nl('freeload_comment'); } - + $comment = strip_request_item_nl('comment'); $result = ShiftEntry_create([ - 'SID' => $shift_id, - 'TID' => $selected_type_id, - 'UID' => $user_id, - 'Comment' => $comment, - 'freeloaded' => $freeloaded, - 'freeload_comment' => $freeload_comment - ]); + 'SID' => $shift_id, + 'TID' => $selected_type_id, + 'UID' => $user_id, + 'Comment' => $comment, + 'freeloaded' => $freeloaded, + 'freeload_comment' => $freeload_comment + ]); if ($result === false) { engelsystem_error('Unable to create shift entry.'); } - - if ($type['restricted'] == 0 && sql_num_query("SELECT * FROM `UserAngelTypes` INNER JOIN `AngelTypes` ON `AngelTypes`.`id` = `UserAngelTypes`.`angeltype_id` WHERE `angeltype_id` = '" . sql_escape($selected_type_id) . "' AND `user_id` = '" . sql_escape($user_id) . "'") == 0) { + + if ( + $type['restricted'] == 0 + && sql_num_query(" + SELECT * FROM `UserAngelTypes` + INNER JOIN `AngelTypes` ON `AngelTypes`.`id` = `UserAngelTypes`.`angeltype_id` + WHERE `angeltype_id` = '" . sql_escape($selected_type_id) . "' + AND `user_id` = '" . sql_escape($user_id) . "' + ") == 0 + ) { sql_query("INSERT INTO `UserAngelTypes` (`user_id`, `angeltype_id`) VALUES ('" . sql_escape($user_id) . "', '" . sql_escape($selected_type_id) . "')"); } - + $user_source = User($user_id); - engelsystem_log("User " . User_Nick_render($user_source) . " signed up for shift " . $shift['name'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end'])); + engelsystem_log("User " . User_Nick_render($user_source) . " signed up for shift " . $shift['name'] . " from " . date("Y-m-d H:i", + $shift['start']) . " to " . date("Y-m-d H:i", $shift['end'])); success(_("You are subscribed. Thank you!") . ' ' . _("My shifts") . ' »'); redirect(shift_link($shift)); } - + if (in_array('user_shifts_admin', $privileges)) { - $users = sql_select("SELECT *, (SELECT count(*) FROM `ShiftEntry` WHERE `freeloaded`=1 AND `ShiftEntry`.`UID`=`User`.`UID`) AS `freeloaded` FROM `User` ORDER BY `Nick`"); + $users = sql_select(" + SELECT *, (SELECT count(*) FROM `ShiftEntry` WHERE `freeloaded`=1 AND `ShiftEntry`.`UID`=`User`.`UID`) AS `freeloaded` + FROM `User` + ORDER BY `Nick` + "); $users_select = []; foreach ($users as $usr) { $users_select[$usr['UID']] = $usr['Nick'] . ($usr['freeloaded'] == 0 ? "" : " (" . _("Freeloader") . ")"); } $user_text = html_select_key('user_id', 'user_id', $users_select, $user['UID']); - + $angeltypes_source = sql_select("SELECT * FROM `AngelTypes` ORDER BY `name`"); $angeltypes = []; foreach ($angeltypes_source as $angeltype) { @@ -122,12 +167,12 @@ function shift_entry_add_controller() $users = Users_by_angeltype($type); $users_select = []; foreach ($users as $usr) { - if (! $type['restricted'] || $usr['confirm_user_id'] != null) { + if (!$type['restricted'] || $usr['confirm_user_id'] != null) { $users_select[$usr['UID']] = $usr['Nick']; } } $user_text = html_select_key('user_id', 'user_id', $users_select, $user['UID']); - + $angeltypes_source = User_angeltypes($user); $angeltypes = []; foreach ($angeltypes_source as $angeltype) { @@ -140,8 +185,10 @@ function shift_entry_add_controller() $user_text = User_Nick_render($user); $angeltype_select = $type['name']; } - - return ShiftEntry_edit_view($user_text, date("Y-m-d H:i", $shift['start']) . ' – ' . date('Y-m-d H:i', $shift['end']) . ' (' . shift_length($shift) . ')', $shift['Name'], $shift['name'], $angeltype_select, "", false, null, in_array('user_shifts_admin', $privileges)); + + return ShiftEntry_edit_view($user_text, date("Y-m-d H:i", $shift['start']) . ' – ' . date('Y-m-d H:i', + $shift['end']) . ' (' . shift_length($shift) . ')', $shift['Name'], $shift['name'], $angeltype_select, "", + false, null, in_array('user_shifts_admin', $privileges)); } /** @@ -150,14 +197,22 @@ function shift_entry_add_controller() function shift_entry_delete_controller() { global $privileges, $user; - - if (! isset($_REQUEST['entry_id']) || ! test_request_int('entry_id')) { + + if (!isset($_REQUEST['entry_id']) || !test_request_int('entry_id')) { redirect(page_link_to('user_shifts')); } $entry_id = $_REQUEST['entry_id']; - + $shift_entry_source = sql_select(" - SELECT `User`.`Nick`, `ShiftEntry`.`Comment`, `ShiftEntry`.`UID`, `ShiftTypes`.`name`, `Shifts`.*, `Room`.`Name`, `AngelTypes`.`name` as `angel_type`, `AngelTypes`.`id` as `angeltype_id` + SELECT + `User`.`Nick`, + `ShiftEntry`.`Comment`, + `ShiftEntry`.`UID`, + `ShiftTypes`.`name`, + `Shifts`.*, + `Room`.`Name`, + `AngelTypes`.`name` AS `angel_type`, + `AngelTypes`.`id` AS `angeltype_id` FROM `ShiftEntry` JOIN `User` ON (`User`.`UID`=`ShiftEntry`.`UID`) JOIN `AngelTypes` ON (`ShiftEntry`.`TID` = `AngelTypes`.`id`) @@ -167,17 +222,25 @@ function shift_entry_delete_controller() WHERE `ShiftEntry`.`id`='" . sql_escape($entry_id) . "'"); if (count($shift_entry_source) > 0) { $shift_entry_source = $shift_entry_source[0]; - - if (!in_array('user_shifts_admin', $privileges) && (!in_array('shiftentry_edit_angeltype_supporter', $privileges) || !User_is_AngelType_supporter($user, AngelType($shift_entry_source['angeltype_id'])))) { + + if (!in_array('user_shifts_admin', $privileges) && (!in_array('shiftentry_edit_angeltype_supporter', + $privileges) || !User_is_AngelType_supporter($user, AngelType($shift_entry_source['angeltype_id']))) + ) { redirect(page_link_to('user_shifts')); } - + $result = ShiftEntry_delete($entry_id); if ($result === false) { engelsystem_error('Unable to delete shift entry.'); } - - engelsystem_log("Deleted " . User_Nick_render($shift_entry_source) . "'s shift: " . $shift_entry_source['name'] . " at " . $shift_entry_source['Name'] . " from " . date("Y-m-d H:i", $shift_entry_source['start']) . " to " . date("Y-m-d H:i", $shift_entry_source['end']) . " as " . $shift_entry_source['angel_type']); + + engelsystem_log( + "Deleted " . User_Nick_render($shift_entry_source) . "'s shift: " . $shift_entry_source['name'] + . " at " . $shift_entry_source['Name'] + . " from " . date("Y-m-d H:i", $shift_entry_source['start']) + . " to " . date("Y-m-d H:i", $shift_entry_source['end']) + . " as " . $shift_entry_source['angel_type'] + ); success(_("Shift entry deleted.")); } else { error(_("Entry not found.")); diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php index 69d0de1f..e2dd712b 100644 --- a/includes/controller/shifts_controller.php +++ b/includes/controller/shifts_controller.php @@ -22,93 +22,96 @@ function shift_edit_link($shift) function shift_edit_controller() { global $privileges; - - // Schicht bearbeiten - $msg = ""; + + // Schicht bearbeiten + $msg = ""; $valid = true; - - if (! in_array('admin_shifts', $privileges)) { + + if (!in_array('admin_shifts', $privileges)) { redirect(page_link_to('user_shifts')); } - - if (! isset($_REQUEST['edit_shift']) || ! test_request_int('edit_shift')) { + + if (!isset($_REQUEST['edit_shift']) || !test_request_int('edit_shift')) { redirect(page_link_to('user_shifts')); } $shift_id = $_REQUEST['edit_shift']; - + $shift = Shift($shift_id); - + $room = select_array(Rooms(), 'RID', 'Name'); $angeltypes = select_array(AngelTypes(), 'id', 'name'); $shifttypes = select_array(ShiftTypes(), 'id', 'name'); - + $needed_angel_types = select_array(NeededAngelTypes_by_shift($shift_id), 'id', 'count'); foreach (array_keys($angeltypes) as $angeltype_id) { - if (! isset($needed_angel_types[$angeltype_id])) { + if (!isset($needed_angel_types[$angeltype_id])) { $needed_angel_types[$angeltype_id] = 0; } } - + $shifttype_id = $shift['shifttype_id']; $title = $shift['title']; $rid = $shift['RID']; $start = $shift['start']; $end = $shift['end']; - + if (isset($_REQUEST['submit'])) { // Name/Bezeichnung der Schicht, darf leer sein - $title = strip_request_item('title'); - - // Auswahl der sichtbaren Locations für die Schichten - if (isset($_REQUEST['rid']) && preg_match("/^[0-9]+$/", $_REQUEST['rid']) && isset($room[$_REQUEST['rid']])) { - $rid = $_REQUEST['rid']; - } else { - $valid = false; - $msg .= error(_("Please select a room."), true); - } - + $title = strip_request_item('title'); + + // Auswahl der sichtbaren Locations für die Schichten + if (isset($_REQUEST['rid']) && preg_match("/^[0-9]+$/", $_REQUEST['rid']) && isset($room[$_REQUEST['rid']])) { + $rid = $_REQUEST['rid']; + } else { + $valid = false; + $msg .= error(_("Please select a room."), true); + } + if (isset($_REQUEST['shifttype_id']) && isset($shifttypes[$_REQUEST['shifttype_id']])) { $shifttype_id = $_REQUEST['shifttype_id']; } else { $valid = false; $msg .= error(_('Please select a shifttype.'), true); } - + if (isset($_REQUEST['start']) && $tmp = parse_date("Y-m-d H:i", $_REQUEST['start'])) { $start = $tmp; } else { $valid = false; $msg .= error(_("Please enter a valid starting time for the shifts."), true); } - + if (isset($_REQUEST['end']) && $tmp = parse_date("Y-m-d H:i", $_REQUEST['end'])) { $end = $tmp; } else { $valid = false; $msg .= error(_("Please enter a valid ending time for the shifts."), true); } - + if ($start >= $end) { $valid = false; $msg .= error(_("The ending time has to be after the starting time."), true); } - + foreach ($needed_angel_types as $needed_angeltype_id => $needed_angeltype_name) { if (isset($_REQUEST['type_' . $needed_angeltype_id]) && test_request_int('type_' . $needed_angeltype_id)) { $needed_angel_types[$needed_angeltype_id] = trim($_REQUEST['type_' . $needed_angeltype_id]); } else { $valid = false; - $msg .= error(sprintf(_("Please check your input for needed angels of type %s."), $needed_angeltype_name), true); + $msg .= error(sprintf( + _("Please check your input for needed angels of type %s."), + $needed_angeltype_name + ), true); } } - + if ($valid) { $shift['shifttype_id'] = $shifttype_id; $shift['title'] = $title; $shift['RID'] = $rid; $shift['start'] = $start; $shift['end'] = $end; - + $result = Shift_update($shift); if ($result === false) { engelsystem_error('Unable to update shift.'); @@ -119,100 +122,119 @@ function shift_edit_controller() NeededAngelType_add($shift_id, $type_id, null, $count); $needed_angel_types_info[] = $angeltypes[$type_id] . ": " . $count; } - - engelsystem_log("Updated shift '" . $shifttypes[$shifttype_id] . ", " . $title . "' from " . date("Y-m-d H:i", $start) . " to " . date("Y-m-d H:i", $end) . " with angel types " . join(", ", $needed_angel_types_info)); + + engelsystem_log( + "Updated shift '" . $shifttypes[$shifttype_id] . ", " . $title + . "' from " . date("Y-m-d H:i", $start) + . " to " . date("Y-m-d H:i", $end) + . " with angel types " . join(", ", $needed_angel_types_info) + ); success(_("Shift updated.")); - + redirect(shift_link([ - 'SID' => $shift_id - ])); + 'SID' => $shift_id + ])); } } - + $angel_types_spinner = ""; foreach ($angeltypes as $angeltype_id => $angeltype_name) { - $angel_types_spinner .= form_spinner('type_' . $angeltype_id, $angeltype_name, $needed_angel_types[$angeltype_id]); + $angel_types_spinner .= form_spinner('type_' . $angeltype_id, $angeltype_name, + $needed_angel_types[$angeltype_id]); } - - return page_with_title(shifts_title(), [ - msg(), - '', - form([ - form_select('shifttype_id', _('Shifttype'), $shifttypes, $shifttype_id), - form_text('title', _("Title"), $title), - form_select('rid', _("Room:"), $room, $rid), - form_text('start', _("Start:"), date("Y-m-d H:i", $start)), - form_text('end', _("End:"), date("Y-m-d H:i", $end)), - '

' . _("Needed angels") . '

', - $angel_types_spinner, - form_submit('submit', _("Save")) - ]) - ]); + + return page_with_title( + shifts_title(), + [ + msg(), + '', + form([ + form_select('shifttype_id', _('Shifttype'), $shifttypes, $shifttype_id), + form_text('title', _("Title"), $title), + form_select('rid', _("Room:"), $room, $rid), + form_text('start', _("Start:"), date("Y-m-d H:i", $start)), + form_text('end', _("End:"), date("Y-m-d H:i", $end)), + '

' . _("Needed angels") . '

', + $angel_types_spinner, + form_submit('submit', _("Save")) + ]) + ] + ); } function shift_delete_controller() { global $privileges; - - if (! in_array('user_shifts_admin', $privileges)) { + + if (!in_array('user_shifts_admin', $privileges)) { + redirect(page_link_to('user_shifts')); + } + + // Schicht komplett löschen (nur für admins/user mit user_shifts_admin privileg) + if (!isset($_REQUEST['delete_shift']) || !preg_match("/^[0-9]*$/", $_REQUEST['delete_shift'])) { redirect(page_link_to('user_shifts')); } - - // Schicht komplett löschen (nur für admins/user mit user_shifts_admin privileg) - if (! isset($_REQUEST['delete_shift']) || ! preg_match("/^[0-9]*$/", $_REQUEST['delete_shift'])) { - redirect(page_link_to('user_shifts')); - } $shift_id = $_REQUEST['delete_shift']; - + $shift = Shift($shift_id); if ($shift == null) { redirect(page_link_to('user_shifts')); } - - // Schicht löschen bestätigt - if (isset($_REQUEST['delete'])) { - Shift_delete($shift_id); - - engelsystem_log("Deleted shift " . $shift['name'] . " from " . date("Y-m-d H:i", $shift['start']) . " to " . date("Y-m-d H:i", $shift['end'])); - success(_("Shift deleted.")); - redirect(page_link_to('user_shifts')); - } - + + // Schicht löschen bestätigt + if (isset($_REQUEST['delete'])) { + Shift_delete($shift_id); + + engelsystem_log( + "Deleted shift " . $shift['name'] + . " from " . date("Y-m-d H:i", $shift['start']) + . " to " . date("Y-m-d H:i", $shift['end']) + ); + success(_("Shift deleted.")); + redirect(page_link_to('user_shifts')); + } + return page_with_title(shifts_title(), [ - error(sprintf(_("Do you want to delete the shift %s from %s to %s?"), $shift['name'], date("Y-m-d H:i", $shift['start']), date("H:i", $shift['end'])), true), - '' . _("delete") . '' - ]); + error(sprintf( + _("Do you want to delete the shift %s from %s to %s?"), + $shift['name'], + date("Y-m-d H:i", $shift['start']), + date("H:i", $shift['end']) + ), true), + '' . _("delete") . '' + ]); } function shift_controller() { global $user, $privileges; - - if (! in_array('user_shifts', $privileges)) { + + if (!in_array('user_shifts', $privileges)) { redirect(page_link_to('?')); } - - if (! isset($_REQUEST['shift_id'])) { + + if (!isset($_REQUEST['shift_id'])) { redirect(page_link_to('user_shifts')); } - + $shift = Shift($_REQUEST['shift_id']); if ($shift == null) { error(_("Shift could not be found.")); redirect(page_link_to('user_shifts')); } - + $shifttype = ShiftType($shift['shifttype_id']); $room = Room($shift['RID']); $angeltypes = AngelTypes(); $user_shifts = Shifts_by_user($user); - + $shift_signup_state = new ShiftSignupState(ShiftSignupState::OCCUPIED, 0); foreach ($angeltypes as &$angeltype) { $needed_angeltype = NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype); $shift_entries = ShiftEntries_by_shift_and_angeltype($shift['SID'], $angeltype['id']); - - $angeltype_signup_state = Shift_signup_allowed($user, $shift, $angeltype, null, $user_shifts, $needed_angeltype, $shift_entries); + + $angeltype_signup_state = Shift_signup_allowed($user, $shift, $angeltype, null, $user_shifts, $needed_angeltype, + $shift_entries); if ($shift_signup_state == null) { $shift_signup_state = $angeltype_signup_state; } else { @@ -220,27 +242,27 @@ function shift_controller() } $angeltype['shift_signup_state'] = $angeltype_signup_state; } - + return [ - $shift['name'], - Shift_view($shift, $shifttype, $room, $angeltypes, $shift_signup_state) - ]; + $shift['name'], + Shift_view($shift, $shifttype, $room, $angeltypes, $shift_signup_state) + ]; } function shifts_controller() { - if (! isset($_REQUEST['action'])) { + if (!isset($_REQUEST['action'])) { redirect(page_link_to('user_shifts')); } - + switch ($_REQUEST['action']) { - default: - redirect(page_link_to('?')); - case 'view': - return shift_controller(); - case 'next': - return shift_next_controller(); - } + default: + redirect(page_link_to('?')); + case 'view': + return shift_controller(); + case 'next': + return shift_next_controller(); + } } /** @@ -249,20 +271,20 @@ function shifts_controller() function shift_next_controller() { global $user, $privileges; - - if (! in_array('user_shifts', $privileges)) { + + if (!in_array('user_shifts', $privileges)) { redirect(page_link_to('?')); } - + $upcoming_shifts = ShiftEntries_upcoming_for_user($user); if ($upcoming_shifts === false) { return false; } - + if (count($upcoming_shifts) > 0) { redirect(shift_link($upcoming_shifts[0])); } - + redirect(page_link_to('user_shifts')); } @@ -272,24 +294,24 @@ function shift_next_controller() function shifts_json_export_all_controller() { global $api_key; - + if ($api_key == "") { engelsystem_error("Config contains empty apikey."); } - - if (! isset($_REQUEST['api_key'])) { + + if (!isset($_REQUEST['api_key'])) { engelsystem_error("Missing parameter api_key."); } - + if ($_REQUEST['api_key'] != $api_key) { engelsystem_error("Invalid api_key."); } - + $shifts_source = Shifts(); if ($shifts_source === false) { engelsystem_error("Unable to load shifts."); } - + header("Content-Type: application/json; charset=utf-8"); raw_output(json_encode($shifts_source)); } @@ -301,23 +323,23 @@ function shifts_json_export_all_controller() function shifts_json_export_controller() { global $user; - - if (! isset($_REQUEST['key']) || ! preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) { + + if (!isset($_REQUEST['key']) || !preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) { engelsystem_error("Missing key."); } - + $key = $_REQUEST['key']; - + $user = User_by_api_key($key); if ($user == null) { engelsystem_error("Key invalid."); } - if (! in_array('shifts_json_export', privileges_for_user($user['UID']))) { + if (!in_array('shifts_json_export', privileges_for_user($user['UID']))) { engelsystem_error("No privilege for shifts_json_export."); } - + $shifts = load_ical_shifts(); - + header("Content-Type: application/json; charset=utf-8"); raw_output(json_encode($shifts)); } @@ -328,6 +350,6 @@ function shifts_json_export_controller() function load_ical_shifts() { global $user; - + return Shifts_by_user($user); } diff --git a/includes/controller/shifttypes_controller.php b/includes/controller/shifttypes_controller.php index f54111c4..4bbf041d 100644 --- a/includes/controller/shifttypes_controller.php +++ b/includes/controller/shifttypes_controller.php @@ -10,34 +10,34 @@ function shifttype_link($shifttype) */ function shifttype_delete_controller() { - if (! isset($_REQUEST['shifttype_id'])) { + if (!isset($_REQUEST['shifttype_id'])) { redirect(page_link_to('shifttypes')); } - + $shifttype = ShiftType($_REQUEST['shifttype_id']); if ($shifttype === false) { engelsystem_error('Unable to load shifttype.'); } - + if ($shifttype == null) { redirect(page_link_to('shifttypes')); } - + if (isset($_REQUEST['confirmed'])) { $result = ShiftType_delete($shifttype['id']); if ($result === false) { engelsystem_error('Unable to delete shifttype.'); } - + engelsystem_log('Deleted shifttype ' . $shifttype['name']); success(sprintf(_('Shifttype %s deleted.'), $shifttype['name'])); redirect(page_link_to('shifttypes')); } - + return [ - sprintf(_("Delete shifttype %s"), $shifttype['name']), - ShiftType_delete_view($shifttype) - ]; + sprintf(_("Delete shifttype %s"), $shifttype['name']), + ShiftType_delete_view($shifttype) + ]; } /** @@ -49,9 +49,9 @@ function shifttype_edit_controller() $name = ""; $angeltype_id = null; $description = ""; - + $angeltypes = AngelTypes(); - + if (isset($_REQUEST['shifttype_id'])) { $shifttype = ShiftType($_REQUEST['shifttype_id']); if ($shifttype === false) { @@ -66,27 +66,27 @@ function shifttype_edit_controller() $angeltype_id = $shifttype['angeltype_id']; $description = $shifttype['description']; } - + if (isset($_REQUEST['submit'])) { $valid = true; - + if (isset($_REQUEST['name']) && $_REQUEST['name'] != '') { $name = strip_request_item('name'); } else { $valid = false; error(_('Please enter a name.')); } - + if (isset($_REQUEST['angeltype_id']) && preg_match("/^[0-9]+$/", $_REQUEST['angeltype_id'])) { $angeltype_id = $_REQUEST['angeltype_id']; } else { $angeltype_id = null; } - + if (isset($_REQUEST['description'])) { $description = strip_request_item_nl('description'); } - + if ($valid) { if ($shifttype_id) { $result = ShiftType_update($shifttype_id, $name, $angeltype_id, $description); @@ -106,16 +106,16 @@ function shifttype_edit_controller() redirect(page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype_id); } } - + return [ - shifttypes_title(), - ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id) - ]; + shifttypes_title(), + ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id) + ]; } function shifttype_controller() { - if (! isset($_REQUEST['shifttype_id'])) { + if (!isset($_REQUEST['shifttype_id'])) { redirect(page_link_to('shifttypes')); } $shifttype = ShiftType($_REQUEST['shifttype_id']); @@ -125,16 +125,16 @@ function shifttype_controller() if ($shifttype == null) { redirect(page_link_to('shifttypes')); } - + $angeltype = null; if ($shifttype['angeltype_id'] != null) { $angeltype = AngelType($shifttype['angeltype_id']); } - + return [ - $shifttype['name'], - ShiftType_view($shifttype, $angeltype) - ]; + $shifttype['name'], + ShiftType_view($shifttype, $angeltype) + ]; } /** @@ -146,11 +146,11 @@ function shifttypes_list_controller() if ($shifttypes === false) { engelsystem_error("Unable to load shifttypes."); } - + return [ - shifttypes_title(), - ShiftTypes_list_view($shifttypes) - ]; + shifttypes_title(), + ShiftTypes_list_view($shifttypes) + ]; } /** @@ -166,19 +166,19 @@ function shifttypes_title() */ function shifttypes_controller() { - if (! isset($_REQUEST['action'])) { + if (!isset($_REQUEST['action'])) { $_REQUEST['action'] = 'list'; } - + switch ($_REQUEST['action']) { - default: - case 'list': - return shifttypes_list_controller(); - case 'view': - return shifttype_controller(); - case 'edit': - return shifttype_edit_controller(); - case 'delete': - return shifttype_delete_controller(); - } + default: + case 'list': + return shifttypes_list_controller(); + case 'view': + return shifttype_controller(); + case 'edit': + return shifttype_edit_controller(); + case 'delete': + return shifttype_delete_controller(); + } } diff --git a/includes/controller/user_angeltypes_controller.php b/includes/controller/user_angeltypes_controller.php index 7469304b..fefde9ae 100644 --- a/includes/controller/user_angeltypes_controller.php +++ b/includes/controller/user_angeltypes_controller.php @@ -6,18 +6,21 @@ function user_angeltypes_unconfirmed_hint() { global $user; - + $unconfirmed_user_angeltypes = User_unconfirmed_AngelTypes($user); if (count($unconfirmed_user_angeltypes) == 0) { return null; } - + $unconfirmed_links = []; foreach ($unconfirmed_user_angeltypes as $user_angeltype) { $unconfirmed_links[] = '' . $user_angeltype['name'] . ' (+' . $user_angeltype['count'] . ')' . ''; } - - return sprintf(ngettext("There is %d unconfirmed angeltype.", "There are %d unconfirmed angeltypes.", count($unconfirmed_user_angeltypes)), count($unconfirmed_user_angeltypes)) . " " . _('Angel types which need approvals:') . ' ' . join(', ', $unconfirmed_links); + + return sprintf(ngettext("There is %d unconfirmed angeltype.", "There are %d unconfirmed angeltypes.", + count($unconfirmed_user_angeltypes)), + count($unconfirmed_user_angeltypes)) . " " . _('Angel types which need approvals:') . ' ' . join(', ', + $unconfirmed_links); } /** @@ -26,35 +29,35 @@ function user_angeltypes_unconfirmed_hint() function user_angeltypes_delete_all_controller() { global $user; - - if (! isset($_REQUEST['angeltype_id'])) { + + if (!isset($_REQUEST['angeltype_id'])) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $angeltype = AngelType($_REQUEST['angeltype_id']); if ($angeltype == null) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - - if (! User_is_AngelType_supporter($user, $angeltype)) { + + if (!User_is_AngelType_supporter($user, $angeltype)) { error(_("You are not allowed to delete all users for this angeltype.")); redirect(page_link_to('angeltypes')); } - + if (isset($_REQUEST['confirmed'])) { UserAngelTypes_delete_all($angeltype['id']); - + engelsystem_log(sprintf("Denied all users for angeltype %s", AngelType_name_render($angeltype))); success(sprintf(_("Denied all users for angeltype %s."), AngelType_name_render($angeltype))); redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']); } - + return [ - _("Deny all users"), - UserAngelTypes_delete_all_view($angeltype) - ]; + _("Deny all users"), + UserAngelTypes_delete_all_view($angeltype) + ]; } /** @@ -63,41 +66,41 @@ function user_angeltypes_delete_all_controller() function user_angeltypes_confirm_all_controller() { global $user, $privileges; - - if (! isset($_REQUEST['angeltype_id'])) { + + if (!isset($_REQUEST['angeltype_id'])) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $angeltype = AngelType($_REQUEST['angeltype_id']); if ($angeltype == null) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype); if ($user_angeltype == null) { error(_("User angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - - if (! in_array('admin_user_angeltypes', $privileges) && ! $user_angeltype['supporter']) { + + if (!in_array('admin_user_angeltypes', $privileges) && !$user_angeltype['supporter']) { error(_("You are not allowed to confirm all users for this angeltype.")); redirect(page_link_to('angeltypes')); } - + if (isset($_REQUEST['confirmed'])) { UserAngelTypes_confirm_all($angeltype['id'], $user); - + engelsystem_log(sprintf("Confirmed all users for angeltype %s", AngelType_name_render($angeltype))); success(sprintf(_("Confirmed all users for angeltype %s."), AngelType_name_render($angeltype))); redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']); } - + return [ - _("Confirm all users"), - UserAngelTypes_confirm_all_view($angeltype) - ]; + _("Confirm all users"), + UserAngelTypes_confirm_all_view($angeltype) + ]; } /** @@ -106,50 +109,58 @@ function user_angeltypes_confirm_all_controller() function user_angeltype_confirm_controller() { global $user; - - if (! isset($_REQUEST['user_angeltype_id'])) { + + if (!isset($_REQUEST['user_angeltype_id'])) { error(_("User angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $user_angeltype = UserAngelType($_REQUEST['user_angeltype_id']); if ($user_angeltype == null) { error(_("User angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $angeltype = AngelType($user_angeltype['angeltype_id']); if ($angeltype == null) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - - if (! User_is_AngelType_supporter($user, $angeltype)) { + + if (!User_is_AngelType_supporter($user, $angeltype)) { error(_("You are not allowed to confirm this users angeltype.")); redirect(page_link_to('angeltypes')); } - + $user_source = User($user_angeltype['user_id']); if ($user_source == null) { error(_("User doesn't exist.")); redirect(page_link_to('angeltypes')); } - + if (isset($_REQUEST['confirmed'])) { $result = UserAngelType_confirm($user_angeltype['id'], $user); if ($result === false) { engelsystem_error("Unable to confirm user angeltype."); } - - engelsystem_log(sprintf("%s confirmed for angeltype %s", User_Nick_render($user_source), AngelType_name_render($angeltype))); - success(sprintf(_("%s confirmed for angeltype %s."), User_Nick_render($user_source), AngelType_name_render($angeltype))); + + engelsystem_log(sprintf( + "%s confirmed for angeltype %s", + User_Nick_render($user_source), + AngelType_name_render($angeltype) + )); + success(sprintf( + _("%s confirmed for angeltype %s."), + User_Nick_render($user_source), + AngelType_name_render($angeltype) + )); redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']); } - + return [ - _("Confirm angeltype for user"), - UserAngelType_confirm_view($user_angeltype, $user_source, $angeltype) - ]; + _("Confirm angeltype for user"), + UserAngelType_confirm_view($user_angeltype, $user_source, $angeltype) + ]; } /** @@ -158,52 +169,52 @@ function user_angeltype_confirm_controller() function user_angeltype_delete_controller() { global $user; - - if (! isset($_REQUEST['user_angeltype_id'])) { + + if (!isset($_REQUEST['user_angeltype_id'])) { error(_("User angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $user_angeltype = UserAngelType($_REQUEST['user_angeltype_id']); if ($user_angeltype == null) { error(_("User angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $angeltype = AngelType($user_angeltype['angeltype_id']); if ($angeltype == null) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $user_source = User($user_angeltype['user_id']); if ($user_source == null) { error(_("User doesn't exist.")); redirect(page_link_to('angeltypes')); } - - if ($user['UID'] != $user_angeltype['user_id'] && ! User_is_AngelType_supporter($user, $angeltype)) { + + if ($user['UID'] != $user_angeltype['user_id'] && !User_is_AngelType_supporter($user, $angeltype)) { error(_("You are not allowed to delete this users angeltype.")); redirect(page_link_to('angeltypes')); } - + if (isset($_REQUEST['confirmed'])) { $result = UserAngelType_delete($user_angeltype); if ($result === false) { engelsystem_error("Unable to delete user angeltype."); } - + $success_message = sprintf(_("User %s removed from %s."), User_Nick_render($user_source), $angeltype['name']); engelsystem_log($success_message); success($success_message); - + redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']); } - + return [ - _("Remove angeltype"), - UserAngelType_delete_view($user_angeltype, $user_source, $angeltype) - ]; + _("Remove angeltype"), + UserAngelType_delete_view($user_angeltype, $user_source, $angeltype) + ]; } /** @@ -212,56 +223,60 @@ function user_angeltype_delete_controller() function user_angeltype_update_controller() { global $privileges; - - if (! in_array('admin_angel_types', $privileges)) { + + if (!in_array('admin_angel_types', $privileges)) { error(_("You are not allowed to set supporter rights.")); redirect(page_link_to('angeltypes')); } - - if (! isset($_REQUEST['user_angeltype_id'])) { + + if (!isset($_REQUEST['user_angeltype_id'])) { error(_("User angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + if (isset($_REQUEST['supporter']) && preg_match("/^[01]$/", $_REQUEST['supporter'])) { $supporter = $_REQUEST['supporter'] == "1"; } else { error(_("No supporter update given.")); redirect(page_link_to('angeltypes')); } - + $user_angeltype = UserAngelType($_REQUEST['user_angeltype_id']); if ($user_angeltype == null) { error(_("User angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $angeltype = AngelType($user_angeltype['angeltype_id']); if ($angeltype == null) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } - + $user_source = User($user_angeltype['user_id']); if ($user_source == null) { error(_("User doesn't exist.")); redirect(page_link_to('angeltypes')); } - + if (isset($_REQUEST['confirmed'])) { UserAngelType_update($user_angeltype['id'], $supporter); - - $success_message = sprintf($supporter ? _("Added supporter rights for %s to %s.") : _("Removed supporter rights for %s from %s."), AngelType_name_render($angeltype), User_Nick_render($user_source)); + + $success_message = sprintf( + $supporter ? _("Added supporter rights for %s to %s.") : _("Removed supporter rights for %s from %s."), + AngelType_name_render($angeltype), + User_Nick_render($user_source) + ); engelsystem_log($success_message); success($success_message); - + redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']); } - + return [ - $supporter ? _("Add supporter rights") : _("Remove supporter rights"), - UserAngelType_update_view($user_angeltype, $user_source, $angeltype, $supporter) - ]; + $supporter ? _("Add supporter rights") : _("Remove supporter rights"), + UserAngelType_update_view($user_angeltype, $user_source, $angeltype, $supporter) + ]; } /** @@ -270,42 +285,54 @@ function user_angeltype_update_controller() function user_angeltype_add_controller() { global $user; - + $angeltype = load_angeltype(); - - // User is joining by itself - if (! User_is_AngelType_supporter($user, $angeltype)) { - return user_angeltype_join_controller($angeltype); - } - - // Allow to add any user - - // Default selection - $user_source = $user; - - // Load possible users, that are not in the angeltype already - $users_source = Users_by_angeltype_inverted($angeltype); - + + // User is joining by itself + if (!User_is_AngelType_supporter($user, $angeltype)) { + return user_angeltype_join_controller($angeltype); + } + + // Allow to add any user + + // Default selection + $user_source = $user; + + // Load possible users, that are not in the angeltype already + $users_source = Users_by_angeltype_inverted($angeltype); + if (isset($_REQUEST['submit'])) { $user_source = load_user(); - - if (! UserAngelType_exists($user_source, $angeltype)) { + + if (!UserAngelType_exists($user_source, $angeltype)) { $user_angeltype_id = UserAngelType_create($user_source, $angeltype); - - engelsystem_log(sprintf("User %s added to %s.", User_Nick_render($user_source), AngelType_name_render($angeltype))); - success(sprintf(_("User %s added to %s."), User_Nick_render($user_source), AngelType_name_render($angeltype))); - + + engelsystem_log(sprintf( + "User %s added to %s.", + User_Nick_render($user_source), + AngelType_name_render($angeltype) + )); + success(sprintf( + _("User %s added to %s."), + User_Nick_render($user_source), + AngelType_name_render($angeltype) + )); + UserAngelType_confirm($user_angeltype_id, $user_source); - engelsystem_log(sprintf("User %s confirmed as %s.", User_Nick_render($user), AngelType_name_render($angeltype))); - + engelsystem_log(sprintf( + "User %s confirmed as %s.", + User_Nick_render($user), + AngelType_name_render($angeltype) + )); + redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']); } } - + return [ - _("Add user to angeltype"), - UserAngelType_add_view($angeltype, $users_source, $user_source['UID']) - ]; + _("Add user to angeltype"), + UserAngelType_add_view($angeltype, $users_source, $user_source['UID']) + ]; } /** @@ -314,32 +341,36 @@ function user_angeltype_add_controller() function user_angeltype_join_controller($angeltype) { global $user, $privileges; - + $user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype); if ($user_angeltype != null) { error(sprintf(_("You are already a %s."), $angeltype['name'])); redirect(page_link_to('angeltypes')); } - + if (isset($_REQUEST['confirmed'])) { $user_angeltype_id = UserAngelType_create($user, $angeltype); - + $success_message = sprintf(_("You joined %s."), $angeltype['name']); engelsystem_log(sprintf("User %s joined %s.", User_Nick_render($user), AngelType_name_render($angeltype))); success($success_message); - + if (in_array('admin_user_angeltypes', $privileges)) { UserAngelType_confirm($user_angeltype_id, $user); - engelsystem_log(sprintf("User %s confirmed as %s.", User_Nick_render($user), AngelType_name_render($angeltype))); + engelsystem_log(sprintf( + "User %s confirmed as %s.", + User_Nick_render($user), + AngelType_name_render($angeltype) + )); } - + redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id']); } - + return [ - sprintf(_("Become a %s"), $angeltype['name']), - UserAngelType_join_view($user, $angeltype) - ]; + sprintf(_("Become a %s"), $angeltype['name']), + UserAngelType_join_view($user, $angeltype) + ]; } /** @@ -347,24 +378,24 @@ function user_angeltype_join_controller($angeltype) */ function user_angeltypes_controller() { - if (! isset($_REQUEST['action'])) { + if (!isset($_REQUEST['action'])) { redirect(page_link_to('angeltypes')); } - + switch ($_REQUEST['action']) { - case 'delete_all': - return user_angeltypes_delete_all_controller(); - case 'confirm_all': - return user_angeltypes_confirm_all_controller(); - case 'confirm': - return user_angeltype_confirm_controller(); - case 'delete': - return user_angeltype_delete_controller(); - case 'update': - return user_angeltype_update_controller(); - case 'add': - return user_angeltype_add_controller(); - default: - redirect(page_link_to('angeltypes')); - } + case 'delete_all': + return user_angeltypes_delete_all_controller(); + case 'confirm_all': + return user_angeltypes_confirm_all_controller(); + case 'confirm': + return user_angeltype_confirm_controller(); + case 'delete': + return user_angeltype_delete_controller(); + case 'update': + return user_angeltype_update_controller(); + case 'add': + return user_angeltype_add_controller(); + default: + redirect(page_link_to('angeltypes')); + } } diff --git a/includes/controller/user_driver_licenses_controller.php b/includes/controller/user_driver_licenses_controller.php index 434d9274..a499eff7 100644 --- a/includes/controller/user_driver_licenses_controller.php +++ b/includes/controller/user_driver_licenses_controller.php @@ -1,26 +1,30 @@ ' . _("driving license information") . ''); + return sprintf( + _("You joined an angeltype which requires a driving license. Please edit your driving license information here: %s."), + '' . _("driving license information") . '' + ); } } - + return null; } @@ -30,18 +34,18 @@ function user_driver_license_required_hint() function user_driver_licenses_controller() { global $user; - - if (! isset($user)) { + + if (!isset($user)) { redirect(page_link_to('')); } - + $action = strip_request_item('action', 'edit'); - + switch ($action) { - default: - case 'edit': - return user_driver_license_edit_controller(); - } + default: + case 'edit': + return user_driver_license_edit_controller(); + } } /** @@ -63,16 +67,16 @@ function user_driver_license_edit_link($user = null) function user_driver_license_load_user() { global $user; - + $user_source = $user; - + if (isset($_REQUEST['user_id'])) { $user_source = User($_REQUEST['user_id']); if ($user_source == null) { redirect(user_driver_license_edit_link()); } } - + return $user_source; } @@ -82,14 +86,14 @@ function user_driver_license_load_user() function user_driver_license_edit_controller() { global $privileges, $user; - + $user_source = user_driver_license_load_user(); - - // 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()); - } - + + // 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()); + } + $user_driver_license = UserDriverLicense($user_source['UID']); if ($user_driver_license == null) { $wants_to_drive = false; @@ -97,7 +101,7 @@ function user_driver_license_edit_controller() } else { $wants_to_drive = true; } - + if (isset($_REQUEST['submit'])) { $wants_to_drive = isset($_REQUEST['wants_to_drive']); if ($wants_to_drive) { @@ -107,7 +111,7 @@ function user_driver_license_edit_controller() $user_driver_license['has_license_7_5t_truck'] = isset($_REQUEST['has_license_7_5t_truck']); $user_driver_license['has_license_12_5t_truck'] = isset($_REQUEST['has_license_12_5t_truck']); $user_driver_license['has_license_forklift'] = isset($_REQUEST['has_license_forklift']); - + if (UserDriverLicense_valid($user_driver_license)) { if ($user_driver_license['user_id'] == null) { $user_driver_license = UserDriverLicenses_create($user_driver_license, $user); @@ -127,9 +131,9 @@ function user_driver_license_edit_controller() redirect(user_link($user_source)); } } - + return [ - sprintf(_("Edit %s driving license information"), $user_source['Nick']), - UserDriverLicense_edit_view($user_source, $wants_to_drive, $user_driver_license) - ]; + sprintf(_("Edit %s driving license information"), $user_source['Nick']), + UserDriverLicense_edit_view($user_source, $wants_to_drive, $user_driver_license) + ]; } diff --git a/includes/controller/users_controller.php b/includes/controller/users_controller.php index 4f7b97eb..4a946aa8 100644 --- a/includes/controller/users_controller.php +++ b/includes/controller/users_controller.php @@ -1,6 +1,6 @@ = 0) { $vouchers = trim($_REQUEST['vouchers']); } else { $valid = false; error(_("Please enter a valid number of vouchers.")); } - + if ($valid) { $user_source['got_voucher'] = $vouchers; - + $result = User_update($user_source); if ($result === false) { engelsystem_error('Unable to update user.'); } - + success(_("Saved the number of vouchers.")); - engelsystem_log(User_Nick_render($user_source) . ': ' . sprintf("Got %s vouchers", $user_source['got_voucher'])); - + engelsystem_log(User_Nick_render($user_source) . ': ' . sprintf("Got %s vouchers", + $user_source['got_voucher'])); + redirect(user_link($user_source)); } } - + return [ - sprintf(_("%s's vouchers"), $user_source['Nick']), - User_edit_vouchers_view($user_source) - ]; + sprintf(_("%s's vouchers"), $user_source['Nick']), + User_edit_vouchers_view($user_source) + ]; } function user_controller() { global $privileges, $user; - + $user_source = $user; if (isset($_REQUEST['user_id'])) { $user_source = User($_REQUEST['user_id']); @@ -160,11 +163,11 @@ function user_controller() redirect('?'); } } - + $shifts = Shifts_by_user($user_source, in_array("user_shifts_admin", $privileges)); foreach ($shifts as &$shift) { // TODO: Move queries to model - $shift['needed_angeltypes'] = sql_select("SELECT DISTINCT `AngelTypes`.* FROM `ShiftEntry` JOIN `AngelTypes` ON `ShiftEntry`.`TID`=`AngelTypes`.`id` WHERE `ShiftEntry`.`SID`='" . sql_escape($shift['SID']) . "' ORDER BY `AngelTypes`.`name`"); + $shift['needed_angeltypes'] = sql_select("SELECT DISTINCT `AngelTypes`.* FROM `ShiftEntry` JOIN `AngelTypes` ON `ShiftEntry`.`TID`=`AngelTypes`.`id` WHERE `ShiftEntry`.`SID`='" . sql_escape($shift['SID']) . "' ORDER BY `AngelTypes`.`name`"); foreach ($shift['needed_angeltypes'] as &$needed_angeltype) { $needed_angeltype['users'] = sql_select(" SELECT `ShiftEntry`.`freeloaded`, `User`.* @@ -174,15 +177,23 @@ function user_controller() AND `ShiftEntry`.`TID`='" . sql_escape($needed_angeltype['id']) . "'"); } } - + if ($user_source['api_key'] == "") { User_reset_api_key($user_source, false); } - + return [ - $user_source['Nick'], - User_view($user_source, in_array('admin_user', $privileges), User_is_freeloader($user_source), User_angeltypes($user_source), User_groups($user_source), $shifts, $user['UID'] == $user_source['UID']) - ]; + $user_source['Nick'], + User_view( + $user_source, + in_array('admin_user', $privileges), + User_is_freeloader($user_source), + User_angeltypes($user_source), + User_groups($user_source), + $shifts, + $user['UID'] == $user_source['UID'] + ) + ]; } /** @@ -191,29 +202,38 @@ function user_controller() function users_list_controller() { global $privileges; - - if (! in_array('admin_user', $privileges)) { + + if (!in_array('admin_user', $privileges)) { redirect(page_link_to('')); } - + $order_by = 'Nick'; if (isset($_REQUEST['OrderBy']) && in_array($_REQUEST['OrderBy'], User_sortable_columns())) { $order_by = $_REQUEST['OrderBy']; } - + $users = Users($order_by); if ($users === false) { engelsystem_error('Unable to load users.'); } - + foreach ($users as &$user) { $user['freeloads'] = count(ShiftEntries_freeloaded_by_user($user)); } - + return [ - _('All users'), - Users_view($users, $order_by, User_arrived_count(), User_active_count(), User_force_active_count(), ShiftEntries_freeleaded_count(), User_tshirts_count(), User_got_voucher_count()) - ]; + _('All users'), + Users_view( + $users, + $order_by, + User_arrived_count(), + User_active_count(), + User_force_active_count(), + ShiftEntries_freeleaded_count(), + User_tshirts_count(), + User_got_voucher_count() + ) + ]; } /** @@ -227,7 +247,7 @@ function user_password_recovery_set_new_controller() error(_("Token is not correct.")); redirect(page_link_to('login')); } - + if (isset($_REQUEST['submit'])) { $valid = true; @@ -240,14 +260,14 @@ function user_password_recovery_set_new_controller() $valid = false; error(_("Your password is to short (please use at least 6 characters).")); } - + if ($valid) { set_password($user_source['UID'], $_REQUEST['password']); success(_("Password saved.")); redirect(page_link_to('login')); } } - + return User_password_set_view(); } @@ -258,7 +278,7 @@ function user_password_recovery_start_controller() { if (isset($_REQUEST['submit'])) { $valid = true; - + if (isset($_REQUEST['email']) && strlen(strip_request_item('email')) > 0) { $email = strip_request_item('email'); if (check_email($email)) { @@ -275,15 +295,22 @@ function user_password_recovery_start_controller() $valid = false; error(_("Please enter your e-mail.")); } - + if ($valid) { $token = User_generate_password_recovery_token($user_source); - engelsystem_email_to_user($user_source, _("Password recovery"), sprintf(_("Please visit %s to recover your password."), page_link_to_absolute('user_password_recovery') . '&token=' . $token)); + engelsystem_email_to_user( + $user_source, + _("Password recovery"), + sprintf( + _("Please visit %s to recover your password."), + page_link_to_absolute('user_password_recovery') . '&token=' . $token + ) + ); success(_("We sent an email containing your password recovery link.")); redirect(page_link_to('login')); } } - + return User_password_recovery_view(); } @@ -313,20 +340,20 @@ function user_password_recovery_title() */ function load_user() { - if (! isset($_REQUEST['user_id'])) { + if (!isset($_REQUEST['user_id'])) { redirect(page_link_to()); } - + $user = User($_REQUEST['user_id']); if ($user === false) { engelsystem_error("Unable to load user."); } - + if ($user == null) { error(_("User doesn't exist.")); redirect(page_link_to()); } - + return $user; } @@ -335,7 +362,7 @@ function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter) $shifts = Shifts_by_ShiftsFilter($shiftsFilter); $needed_angeltypes_source = NeededAngeltypes_by_ShiftsFilter($shiftsFilter); $shift_entries_source = ShiftEntries_by_ShiftsFilter($shiftsFilter); - + $needed_angeltypes = []; $shift_entries = []; foreach ($shifts as $shift) { @@ -354,11 +381,14 @@ function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter) } unset($needed_angeltypes_source); unset($shift_entries_source); - - if (in_array(ShiftsFilter::FILLED_FREE, $shiftsFilter->getFilled()) && in_array(ShiftsFilter::FILLED_FILLED, $shiftsFilter->getFilled())) { + + if ( + in_array(ShiftsFilter::FILLED_FREE, $shiftsFilter->getFilled()) + && in_array(ShiftsFilter::FILLED_FILLED, $shiftsFilter->getFilled()) + ) { return new ShiftCalendarRenderer($shifts, $needed_angeltypes, $shift_entries, $shiftsFilter); } - + $filtered_shifts = []; foreach ($shifts as $shift) { $needed_angels_count = 0; @@ -366,10 +396,10 @@ function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter) $taken = 0; foreach ($shift_entries[$shift['SID']] as $shift_entry) { if ($needed_angeltype['angel_type_id'] == $shift_entry['TID'] && $shift_entry['freeloaded'] == 0) { - $taken ++; + $taken++; } } - + $needed_angels_count += max(0, $needed_angeltype['count'] - $taken); } if (in_array(ShiftsFilter::FILLED_FREE, $shiftsFilter->getFilled()) && $taken < $needed_angels_count) { @@ -379,6 +409,6 @@ function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter) $filtered_shifts[] = $shift; } } - + return new ShiftCalendarRenderer($filtered_shifts, $needed_angeltypes, $shift_entries, $shiftsFilter); } -- cgit v1.2.3-54-g00ecf