summaryrefslogtreecommitdiff
path: root/includes/controller
diff options
context:
space:
mode:
authorBot <bot@myigel.name>2017-01-02 15:43:36 +0100
committerIgor Scheller <igor.scheller@igorshp.de>2017-01-02 15:49:53 +0100
commitd71e7bbfad2f07f82df0c515608996d250fd4182 (patch)
tree5083a17b218c08b3a699a0bf15bec926cc2dd185 /includes/controller
parent7313e15ce8236e19331fb6639a3a5b97c8f06ecd (diff)
Formatting
Diffstat (limited to 'includes/controller')
-rw-r--r--includes/controller/angeltypes_controller.php179
-rw-r--r--includes/controller/event_config_controller.php66
-rw-r--r--includes/controller/rooms_controller.php57
-rw-r--r--includes/controller/shift_entries_controller.php161
-rw-r--r--includes/controller/shifts_controller.php250
-rw-r--r--includes/controller/shifttypes_controller.php84
-rw-r--r--includes/controller/user_angeltypes_controller.php283
-rw-r--r--includes/controller/user_driver_licenses_controller.php72
-rw-r--r--includes/controller/users_controller.php202
9 files changed, 774 insertions, 580 deletions
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'] = '<a href="' . page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'] . '">' . $angeltype['name'] . '</a>';
-
+
$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 @@
<?php
-use Engelsystem\ShiftsFilterRenderer;
use Engelsystem\ShiftsFilter;
-use Engelsystem\ShiftCalendarRenderer;
+use Engelsystem\ShiftsFilterRenderer;
/**
* Room controllers for managing everything room related.
@@ -13,26 +12,28 @@ use Engelsystem\ShiftCalendarRenderer;
function room_controller()
{
global $privileges;
-
- if (! in_array('view_rooms', $privileges)) {
+
+ if (!in_array('view_rooms', $privileges)) {
redirect(page_link_to());
}
-
+
$room = load_room();
$all_shifts = Shifts_by_room($room);
$days = [];
foreach ($all_shifts as $shift) {
$day = date("Y-m-d", $shift['start']);
- if (! in_array($day, $days)) {
+ if (!in_array($day, $days)) {
$days[] = $day;
}
}
-
- $shiftsFilter = new ShiftsFilter(true, [
- $room['RID']
- ], AngelType_ids());
+
+ $shiftsFilter = new ShiftsFilter(
+ true,
+ [$room['RID']],
+ AngelType_ids()
+ );
$selected_day = date("Y-m-d");
- if (! empty($days)) {
+ if (!empty($days)) {
$selected_day = $days[0];
}
if (isset($_REQUEST['shifts_filter_day'])) {
@@ -40,16 +41,16 @@ function room_controller()
}
$shiftsFilter->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!") . ' <a href="' . page_link_to('user_myshifts') . '">' . _("My shifts") . ' &raquo;</a>');
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']) . ' &ndash; ' . 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']) . ' &ndash; ' . 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(),
- '<noscript>' . info(_("This page is much more comfortable with javascript."), true) . '</noscript>',
- 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)),
- '<h2>' . _("Needed angels") . '</h2>',
- $angel_types_spinner,
- form_submit('submit', _("Save"))
- ])
- ]);
+
+ return page_with_title(
+ shifts_title(),
+ [
+ msg(),
+ '<noscript>' . info(_("This page is much more comfortable with javascript."), true) . '</noscript>',
+ 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)),
+ '<h2>' . _("Needed angels") . '</h2>',
+ $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),
- '<a class="button" href="?p=user_shifts&delete_shift=' . $shift_id . '&delete">' . _("delete") . '</a>'
- ]);
+ 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),
+ '<a class="button" href="?p=user_shifts&delete_shift=' . $shift_id . '&delete">' . _("delete") . '</a>'
+ ]);
}
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[] = '<a href="' . page_link_to('angeltypes') . '&action=view&angeltype_id=' . $user_angeltype['angeltype_id'] . '">' . $user_angeltype['name'] . ' (+' . $user_angeltype['count'] . ')' . '</a>';
}
-
- 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 @@
<?php
/**
- * Generates a hint, if user joined angeltypes that require a driving license and the user has no driver license information provided.
+ * 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);
$user_driver_license = UserDriverLicense($user['UID']);
-
- // User has already entered data, no hint needed.
- if ($user_driver_license != null) {
- return null;
- }
-
+
+ // User has already entered data, no hint needed.
+ if ($user_driver_license != null) {
+ return null;
+ }
+
foreach ($angeltypes as $angeltype) {
if ($angeltype['requires_driver_license']) {
- return 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>');
+ return 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>'
+ );
}
}
-
+
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 @@
<?php
-use Engelsystem\ShiftsFilter;
use Engelsystem\ShiftCalendarRenderer;
+use Engelsystem\ShiftsFilter;
/**
* Route user actions.
@@ -8,28 +8,28 @@ use Engelsystem\ShiftCalendarRenderer;
function users_controller()
{
global $user;
-
- if (! isset($user)) {
+
+ if (!isset($user)) {
redirect(page_link_to(''));
}
-
- if (! isset($_REQUEST['action'])) {
+
+ if (!isset($_REQUEST['action'])) {
$_REQUEST['action'] = 'list';
}
-
+
switch ($_REQUEST['action']) {
- default:
- case 'list':
- return users_list_controller();
- case 'view':
- return user_controller();
- case 'edit':
- return user_edit_controller();
- case 'delete':
- return user_delete_controller();
- case 'edit_vouchers':
- return user_edit_vouchers_controller();
- }
+ default:
+ case 'list':
+ return users_list_controller();
+ case 'view':
+ return user_controller();
+ case 'edit':
+ return user_edit_controller();
+ case 'delete':
+ return user_delete_controller();
+ case 'edit_vouchers':
+ return user_edit_vouchers_controller();
+ }
}
/**
@@ -38,49 +38,51 @@ function users_controller()
function user_delete_controller()
{
global $privileges, $user;
-
+
if (isset($_REQUEST['user_id'])) {
$user_source = User($_REQUEST['user_id']);
} else {
$user_source = $user;
}
-
- if (! in_array('admin_user', $privileges)) {
+
+ if (!in_array('admin_user', $privileges)) {
redirect(page_link_to(''));
}
-
- // You cannot delete yourself
- if ($user['UID'] == $user_source['UID']) {
- error(_("You cannot delete yourself."));
- redirect(user_link($user));
- }
-
+
+ // You cannot delete yourself
+ if ($user['UID'] == $user_source['UID']) {
+ error(_("You cannot delete yourself."));
+ redirect(user_link($user));
+ }
+
if (isset($_REQUEST['submit'])) {
$valid = true;
-
- if (! (isset($_REQUEST['password']) && verify_password($_REQUEST['password'], $user['Passwort'], $user['UID']))) {
+
+ if (!(isset($_REQUEST['password']) && verify_password($_REQUEST['password'], $user['Passwort'],
+ $user['UID']))
+ ) {
$valid = false;
error(_("Your password is incorrect. Please try it again."));
}
-
+
if ($valid) {
$result = User_delete($user_source['UID']);
if ($result === false) {
engelsystem_error('Unable to delete user.');
}
-
+
mail_user_delete($user_source);
success(_("User deleted."));
engelsystem_log(sprintf("Deleted %s", User_Nick_render($user_source)));
-
+
redirect(users_link());
}
}
-
+
return [
- sprintf(_("Delete %s"), $user_source['Nick']),
- User_delete_view($user_source)
- ];
+ sprintf(_("Delete %s"), $user_source['Nick']),
+ User_delete_view($user_source)
+ ];
}
function users_link()
@@ -106,52 +108,53 @@ function user_link($user)
function user_edit_vouchers_controller()
{
global $privileges, $user;
-
+
if (isset($_REQUEST['user_id'])) {
$user_source = User($_REQUEST['user_id']);
} else {
$user_source = $user;
}
-
- if (! in_array('admin_user', $privileges)) {
+
+ if (!in_array('admin_user', $privileges)) {
redirect(page_link_to(''));
}
-
+
if (isset($_REQUEST['submit'])) {
$valid = true;
-
+
if (isset($_REQUEST['vouchers']) && test_request_int('vouchers') && trim($_REQUEST['vouchers']) >= 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);
}