diff options
Diffstat (limited to 'includes/pages/admin_free.php')
-rw-r--r-- | includes/pages/admin_free.php | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/includes/pages/admin_free.php b/includes/pages/admin_free.php index d1d102c7..9b1f581b 100644 --- a/includes/pages/admin_free.php +++ b/includes/pages/admin_free.php @@ -1,6 +1,7 @@ <?php use Engelsystem\Database\DB; +use Engelsystem\Models\User\User; /** * @return string @@ -28,7 +29,7 @@ function admin_free() if (!empty($angelType)) { $angelTypeSearch = ' INNER JOIN `UserAngelTypes` ON (`UserAngelTypes`.`angeltype_id` = ' . DB::getPdo()->quote($angelType) - . ' AND `UserAngelTypes`.`user_id` = `User`.`UID`'; + . ' AND `UserAngelTypes`.`user_id` = `users`.`id`'; if ($request->has('confirmed_only')) { $angelTypeSearch .= ' AND `UserAngelTypes`.`confirm_user_id`'; } @@ -43,26 +44,25 @@ function admin_free() $angel_types[$angel_type['id']] = $angel_type['name']; } - $users = DB::select(' - SELECT `User`.* - FROM `User` - ' . $angelTypeSearch . ' - LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` + /** @var User[] $users */ + $users = User::query()->raw(sprintf(' + SELECT `users`.* + FROM `users` + %s + LEFT JOIN `ShiftEntry` ON `users`.`id` = `ShiftEntry`.`UID` + LEFT JOIN `users_state` ON `users`.`id` = `users_state`.`user_id` LEFT JOIN `Shifts` ON ( `ShiftEntry`.`SID` = `Shifts`.`SID` - AND `Shifts`.`start` < ? - AND `Shifts`.`end` > ? + AND `Shifts`.`start` < %u + AND `Shifts`.`end` > %u ) - WHERE `User`.`Gekommen` = 1 + WHERE `users_state`.`arrived` = 1 AND `Shifts`.`SID` IS NULL - GROUP BY `User`.`UID` - ORDER BY `Nick` - ', - [ - time(), - time(), - ] + GROUP BY `users`.`id` + ORDER BY `users` + ', $angelTypeSearch, time(), time() + ) ); $free_users_table = []; @@ -74,7 +74,7 @@ function admin_free() foreach ($users as $usr) { if (count($tokens) > 0) { $match = false; - $index = join('', $usr); + $index = join('', $usr->toArray()); foreach ($tokens as $t) { if (stristr($index, trim($t))) { $match = true; @@ -89,12 +89,11 @@ function admin_free() $free_users_table[] = [ 'name' => User_Nick_render($usr), 'shift_state' => User_shift_state_render($usr), - 'dect' => $usr['DECT'], - 'jabber' => $usr['jabber'], - 'email' => $usr['email_by_human_allowed'] ? $usr['email'] : glyph('eye-close'), + 'dect' => $usr->contact->dect, + 'email' => $usr->settings->email_human ? ($usr->contact->email ? $usr->contact->email : $usr->email) : glyph('eye-close'), 'actions' => in_array('admin_user', $privileges) - ? button(page_link_to('admin_user', ['id' => $usr['UID']]), __('edit'), 'btn-xs') + ? button(page_link_to('admin_user', ['id' => $usr->id]), __('edit'), 'btn-xs') : '' ]; } @@ -119,7 +118,6 @@ function admin_free() 'name' => __('Nick'), 'shift_state' => '', 'dect' => __('DECT'), - 'jabber' => __('Jabber'), 'email' => __('E-Mail'), 'actions' => '' ], $free_users_table) |