lock exported timesheets (#798)
This commit is contained in:
@@ -85,12 +85,24 @@ class TimesheetVoter extends AbstractVoter
|
||||
$permission .= $attribute;
|
||||
break;
|
||||
|
||||
case self::EDIT:
|
||||
if (!$this->canEdit($user, $subject)) {
|
||||
return false;
|
||||
}
|
||||
$permission .= $attribute;
|
||||
break;
|
||||
|
||||
case self::DELETE:
|
||||
if (!$this->canDelete($user, $subject)) {
|
||||
return false;
|
||||
}
|
||||
$permission .= $attribute;
|
||||
break;
|
||||
|
||||
case self::VIEW_RATE:
|
||||
case self::EDIT_RATE:
|
||||
case self::STOP:
|
||||
case self::EDIT:
|
||||
case self::VIEW:
|
||||
case self::DELETE:
|
||||
case self::EXPORT:
|
||||
case self::EDIT_EXPORT:
|
||||
$permission .= $attribute;
|
||||
@@ -114,11 +126,7 @@ class TimesheetVoter extends AbstractVoter
|
||||
return $this->hasRolePermission($user, $permission);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Timesheet $timesheet
|
||||
* @return bool
|
||||
*/
|
||||
protected function canStart(Timesheet $timesheet)
|
||||
protected function canStart(Timesheet $timesheet): bool
|
||||
{
|
||||
// possible improvements for the future:
|
||||
// we could check the amount of active entries (maybe slow)
|
||||
@@ -142,4 +150,22 @@ class TimesheetVoter extends AbstractVoter
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function canEdit(User $user, Timesheet $timesheet): bool
|
||||
{
|
||||
if ($timesheet->isExported() && !$this->hasRolePermission($user, 'edit_exported_timesheet')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function canDelete(User $user, Timesheet $timesheet): bool
|
||||
{
|
||||
if ($timesheet->isExported() && !$this->hasRolePermission($user, 'edit_exported_timesheet')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user