Shift sign up: Allow Supporters to signup users to occupied shifts
This commit is contained in:
parent
d423bb07d3
commit
28e357acd3
|
@ -151,24 +151,6 @@ function shift_entry_create_controller_supporter($shift, $angeltype)
|
||||||
throw_redirect(shift_link($shift));
|
throw_redirect(shift_link($shift));
|
||||||
}
|
}
|
||||||
|
|
||||||
$needed_angeltype = NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype);
|
|
||||||
$shift_entries = ShiftEntries_by_shift_and_angeltype($shift['SID'], $angeltype['id']);
|
|
||||||
$shift_signup_state = Shift_signup_allowed(
|
|
||||||
$signup_user,
|
|
||||||
$shift,
|
|
||||||
$angeltype,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
$needed_angeltype,
|
|
||||||
$shift_entries
|
|
||||||
);
|
|
||||||
if (!$shift_signup_state->isSignupAllowed()) {
|
|
||||||
if ($shift_signup_state->getState() == ShiftSignupState::OCCUPIED) {
|
|
||||||
error(__('This shift is already occupied.'));
|
|
||||||
}
|
|
||||||
throw_redirect(shift_link($shift));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->hasPostData('submit')) {
|
if ($request->hasPostData('submit')) {
|
||||||
ShiftEntry_create([
|
ShiftEntry_create([
|
||||||
'SID' => $shift['SID'],
|
'SID' => $shift['SID'],
|
||||||
|
|
|
@ -82,7 +82,13 @@ function Shift_signup_button_render($shift, $angeltype, $user_angeltype = null)
|
||||||
$user_angeltype = UserAngelType_by_User_and_AngelType(auth()->user()->id, $angeltype);
|
$user_angeltype = UserAngelType_by_User_and_AngelType(auth()->user()->id, $angeltype);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($angeltype['shift_signup_state']) && $angeltype['shift_signup_state']->isSignupAllowed()) {
|
if (
|
||||||
|
isset($angeltype['shift_signup_state'])
|
||||||
|
&& (
|
||||||
|
$angeltype['shift_signup_state']->isSignupAllowed()
|
||||||
|
|| User_is_AngelType_supporter(auth()->user(), $angeltype)
|
||||||
|
)
|
||||||
|
) {
|
||||||
return button(shift_entry_create_link($shift, $angeltype), __('Sign up'));
|
return button(shift_entry_create_link($shift, $angeltype), __('Sign up'));
|
||||||
} elseif (empty($user_angeltype)) {
|
} elseif (empty($user_angeltype)) {
|
||||||
return button(
|
return button(
|
||||||
|
|
Loading…
Reference in New Issue