summaryrefslogtreecommitdiff
path: root/includes/model
diff options
context:
space:
mode:
Diffstat (limited to 'includes/model')
-rw-r--r--includes/model/Shifts_model.php36
-rw-r--r--includes/model/User_model.php23
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();