diff options
Diffstat (limited to 'includes/model')
-rw-r--r-- | includes/model/Shifts_model.php | 36 | ||||
-rw-r--r-- | includes/model/User_model.php | 23 |
2 files changed, 31 insertions, 28 deletions
diff --git a/includes/model/Shifts_model.php b/includes/model/Shifts_model.php index d7799a1e..cc909954 100644 --- a/includes/model/Shifts_model.php +++ b/includes/model/Shifts_model.php @@ -233,20 +233,23 @@ function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype) */ function ShiftEntries_by_ShiftsFilter(ShiftsFilter $shiftsFilter) { - $sql = ' - SELECT - users.* - `ShiftEntry`.`UID`, - `ShiftEntry`.`TID`, - `ShiftEntry`.`SID`, - `ShiftEntry`.`Comment`, - `ShiftEntry`.`freeloaded` - FROM `Shifts` - JOIN `ShiftEntry` ON `ShiftEntry`.`SID`=`Shifts`.`SID` - JOIN `users` ON `ShiftEntry`.`UID`=`users`.`id` - WHERE `Shifts`.`RID` IN (' . implode(',', $shiftsFilter->getRooms()) . ') - AND `start` BETWEEN ? AND ? - ORDER BY `Shifts`.`start`'; + $sql = sprintf(' + SELECT + users.*, + `ShiftEntry`.`UID`, + `ShiftEntry`.`TID`, + `ShiftEntry`.`SID`, + `ShiftEntry`.`Comment`, + `ShiftEntry`.`freeloaded` + FROM `Shifts` + JOIN `ShiftEntry` ON `ShiftEntry`.`SID`=`Shifts`.`SID` + JOIN `users` ON `ShiftEntry`.`UID`=`users`.`id` + WHERE `Shifts`.`RID` IN (%s) + AND `start` BETWEEN ? AND ? + ORDER BY `Shifts`.`start` + ', + implode(',', $shiftsFilter->getRooms()) + ); return DB::select( $sql, [ @@ -298,7 +301,7 @@ function Shift_free_entries($needed_angeltype, $shift_entries) /** * Check if shift signup is allowed from the end users point of view (no admin like privileges) * - * @param User $user + * @param User $user * @param array $shift The shift * @param array $angeltype The angeltype to which the user wants to sign up * @param array|null $user_angeltype @@ -575,7 +578,6 @@ function Shift_update_by_psid($shift) */ function Shift_create($shift) { - $user = auth()->user(); DB::insert(' INSERT INTO `Shifts` ( `shifttype_id`, @@ -599,7 +601,7 @@ function Shift_create($shift) $shift['title'], $shift['URL'], $shift['PSID'], - $user->id, + auth()->user()->id, time(), time(), ] diff --git a/includes/model/User_model.php b/includes/model/User_model.php index 6192fa20..da25a9a2 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -73,16 +73,16 @@ function User_is_freeloader($user) function Users_by_angeltype_inverted($angeltype) { return User::query() - ->leftJoin('UserAngelTypes', 'users.id', '=', 'UserAngelTypes.user_id') + ->select('users.*') ->leftJoin('UserAngelTypes', function ($query) use ($angeltype) { /** @var JoinClause $query */ $query ->on('users.id', '=', 'UserAngelTypes.user_id') - ->on('UserAngelTypes.angeltype_id', '=', $angeltype['id']); + ->where('UserAngelTypes.angeltype_id', '=', $angeltype['id']); }) ->whereNull('UserAngelTypes.id') ->orderBy('users.name') - ->get('users.*'); + ->get(); } /** @@ -94,17 +94,17 @@ function Users_by_angeltype_inverted($angeltype) function Users_by_angeltype($angeltype) { return User::query() + ->select('users.*', + 'UserAngelTypes.id AS user_angeltype_id', + 'UserAngelTypes.confirm_user_id', + 'UserAngelTypes.supporter', + 'UserDriverLicenses.user_id AS wants_to_drive', + 'UserDriverLicenses.*' + ) ->join('UserAngelTypes', 'users.id', '=', 'UserAngelTypes.user_id') ->leftJoin('UserDriverLicenses', 'users.id', '=', 'UserDriverLicenses.user_id') ->where('UserAngelTypes.angeltype_id', '=', $angeltype['id']) - ->get([ - 'users.*', - '`UserAngelTypes`.`id` AS `user_angeltype_id`', - '`UserAngelTypes`.`confirm_user_id`', - '`UserAngelTypes`.`supporter`', - '(`UserDriverLicenses`.`user_id` IS NOT NULL) AS `wants_to_drive`', - '`UserDriverLicenses`.*', - ]); + ->get(); } /** @@ -226,6 +226,7 @@ function User_reset_api_key($user, $log = true) function User_generate_password_recovery_token($user) { $reset = PasswordReset::findOrNew($user->id); + $reset->user_id = $user->id; $reset->token = md5($user->name . time() . rand()); $reset->save(); |