From 4e09ee3eb255160c88a378375d69123a3e000497 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Thu, 11 Oct 2018 01:26:34 +0200 Subject: Replaced more user related stuff (Contains some buggy stuff too...) --- includes/controller/shift_entries_controller.php | 6 +-- includes/controller/shifts_controller.php | 9 ++--- includes/controller/user_angeltypes_controller.php | 9 +++-- includes/controller/users_controller.php | 44 +++++++++++++++------- 4 files changed, 42 insertions(+), 26 deletions(-) (limited to 'includes/controller') diff --git a/includes/controller/shift_entries_controller.php b/includes/controller/shift_entries_controller.php index 2876991a..bbf2e5b0 100644 --- a/includes/controller/shift_entries_controller.php +++ b/includes/controller/shift_entries_controller.php @@ -111,10 +111,10 @@ function shift_entry_create_controller_admin($shift, $angeltype) redirect(shift_link($shift)); } - $users = Users(); + $users = User::all(); $users_select = []; foreach ($users as $u) { - $users_select[$u['UID']] = $u['Nick']; + $users_select[$u->id] = $u->name; } $angeltypes_select = []; @@ -185,7 +185,7 @@ function shift_entry_create_controller_supporter($shift, $angeltype) $users = Users_by_angeltype($angeltype); $users_select = []; foreach ($users as $u) { - $users_select[$u['UID']] = $u['Nick']; + $users_select[$u->id] = $u->name; } $room = Room($shift['RID']); diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php index b56440e5..07e81957 100644 --- a/includes/controller/shifts_controller.php +++ b/includes/controller/shifts_controller.php @@ -353,20 +353,17 @@ function shift_next_controller() */ function shifts_json_export_controller() { - global $user; $request = request(); if (!$request->has('key') || !preg_match('/^[\da-f]{32}$/', $request->input('key'))) { engelsystem_error('Missing key.'); } - $key = $request->input('key'); - - $user = User_by_api_key($key); - if (empty($user)) { + $user = auth()->apiUser('key'); + if (!$user) { 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->id))) { engelsystem_error('No privilege for shifts_json_export.'); } diff --git a/includes/controller/user_angeltypes_controller.php b/includes/controller/user_angeltypes_controller.php index a38adfec..6080d08b 100644 --- a/includes/controller/user_angeltypes_controller.php +++ b/includes/controller/user_angeltypes_controller.php @@ -362,16 +362,17 @@ function user_angeltype_add_controller() */ function user_angeltype_join_controller($angeltype) { - global $user, $privileges; + global $privileges; + $user = auth()->user(); - $user_angeltype = UserAngelType_by_User_and_AngelType($user['UID'], $angeltype); + $user_angeltype = UserAngelType_by_User_and_AngelType($user->id, $angeltype); if (!empty($user_angeltype)) { error(sprintf(__('You are already a %s.'), $angeltype['name'])); redirect(page_link_to('angeltypes')); } if (request()->has('confirmed')) { - $user_angeltype_id = UserAngelType_create($user['UID'], $angeltype); + $user_angeltype_id = UserAngelType_create($user->id, $angeltype); $success_message = sprintf(__('You joined %s.'), $angeltype['name']); engelsystem_log(sprintf( @@ -382,7 +383,7 @@ function user_angeltype_join_controller($angeltype) success($success_message); if (in_array('admin_user_angeltypes', $privileges)) { - UserAngelType_confirm($user_angeltype_id, $user['UID']); + UserAngelType_confirm($user_angeltype_id, $user->id); engelsystem_log(sprintf( 'User %s confirmed as %s.', User_Nick_render($user), diff --git a/includes/controller/users_controller.php b/includes/controller/users_controller.php index 3c05f596..61b19231 100644 --- a/includes/controller/users_controller.php +++ b/includes/controller/users_controller.php @@ -2,6 +2,7 @@ use Engelsystem\Database\DB; use Engelsystem\Models\User\PasswordReset; +use Engelsystem\Models\User\State; use Engelsystem\Models\User\User; use Engelsystem\ShiftCalendarRenderer; use Engelsystem\ShiftsFilter; @@ -79,7 +80,7 @@ function user_delete_controller() } if ($valid) { - User_delete($user_source->id); + $user_source->delete(); mail_user_delete($user_source); success(__('User deleted.')); @@ -268,13 +269,28 @@ function users_list_controller() } $order_by = 'Nick'; - if ($request->has('OrderBy') && in_array($request->input('OrderBy'), User_sortable_columns())) { + if ($request->has('OrderBy') && in_array($request->input('OrderBy'), [ + 'Nick', + 'Name', + 'Vorname', + 'DECT', + 'email', + 'Size', + 'Gekommen', + 'Aktiv', + 'force_active', + 'Tshirt', + 'lastLogIn' + ])) { $order_by = $request->input('OrderBy'); } - $users = Users($order_by); - foreach ($users as &$user) { - $user['freeloads'] = count(ShiftEntries_freeloaded_by_user($user['UID'])); + /** @var User[] $users */ + $users = User::query() + ->orderBy($order_by) + ->get(); + foreach ($users as $user) { + $user->setAttribute('freeloads', count(ShiftEntries_freeloaded_by_user($user->id))); } return [ @@ -282,12 +298,12 @@ function users_list_controller() Users_view( $users, $order_by, - User_arrived_count(), - User_active_count(), - User_force_active_count(), + State::whereArrived(true)->count(), + State::whereActive(true)->count(), + State::whereForceActive(true)->count(), ShiftEntries_freeloaded_count(), - User_tshirts_count(), - User_got_voucher_count() + State::whereGotShirt(true)->count(), + State::query()->sum('got_voucher') ) ]; } @@ -300,7 +316,7 @@ function users_list_controller() function user_password_recovery_set_new_controller() { $request = request(); - $passwordReset = PasswordReset::whereToken($request->input('token')); + $passwordReset = PasswordReset::whereToken($request->input('token'))->first(); if (!$passwordReset) { error(__('Token is not correct.')); redirect(page_link_to('login')); @@ -344,11 +360,13 @@ function user_password_recovery_start_controller() if ($request->has('submit')) { $valid = true; + $user_source = null; if ($request->has('email') && strlen(strip_request_item('email')) > 0) { $email = strip_request_item('email'); if (check_email($email)) { - $user_source = User_by_email($email); - if (empty($user_source)) { + /** @var User $user_source */ + $user_source = User::whereEmail($email)->first(); + if (!$user_source) { $valid = false; error(__('E-mail address is not correct.')); } -- cgit v1.2.3-70-g09d2