first commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
|
||||
class BulkDestroyTimeIntervalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('bulkDestroy', [TimeInterval::class, request('intervals')]);
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'intervals' => 'required|array',
|
||||
'intervals.*' => 'int|exists:time_intervals,id'
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/Interval/BulkEditTimeIntervalRequest.php
Normal file
32
app/Http/Requests/Interval/BulkEditTimeIntervalRequest.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
|
||||
class BulkEditTimeIntervalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
$timeIntervalIds = [];
|
||||
|
||||
foreach (request('intervals') as $interval) {
|
||||
$timeIntervalIds[] = $interval['id'];
|
||||
}
|
||||
|
||||
return $this->user()->can('bulkUpdate', [TimeInterval::class, $timeIntervalIds]);
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'intervals' => 'required|array',
|
||||
'intervals.*.id' => 'required|int|exists:time_intervals,id',
|
||||
'intervals.*.task_id' => 'required|int|exists:tasks,id'
|
||||
];
|
||||
}
|
||||
}
|
||||
67
app/Http/Requests/Interval/CreateTimeIntervalRequest.php
Normal file
67
app/Http/Requests/Interval/CreateTimeIntervalRequest.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use AllowDynamicProperties;
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
use App\Models\User;
|
||||
use App\Rules\TimeIntervalDoesNotExist;
|
||||
use Carbon\Carbon;
|
||||
use Settings;
|
||||
|
||||
#[AllowDynamicProperties] class CreateTimeIntervalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can(
|
||||
'create',
|
||||
[
|
||||
TimeInterval::class,
|
||||
$this->get('user_id'),
|
||||
$this->get('task_id'),
|
||||
$this->get('is_manual', false),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
$timezone = Settings::scope('core')->get('timezone', 'UTC');
|
||||
|
||||
return [
|
||||
'task_id' => 'required|exists:tasks,id',
|
||||
'user_id' => 'required|exists:users,id',
|
||||
'start_at' => 'required|date|bail|before:end_at',
|
||||
'end_at' => [
|
||||
'required',
|
||||
'date',
|
||||
'bail',
|
||||
'after:start_at',
|
||||
new TimeIntervalDoesNotExist(
|
||||
User::find($this->user_id),
|
||||
Carbon::parse($this->start_at)->setTimezone($timezone),
|
||||
Carbon::parse($this->end_at)->setTimezone($timezone),
|
||||
),
|
||||
],
|
||||
'activity_fill' => 'nullable|int|between:0,100',
|
||||
'mouse_fill' => 'nullable|int|between:0,100',
|
||||
'keyboard_fill' => 'nullable|int|between:0,100',
|
||||
'is_manual' => 'sometimes|bool',
|
||||
'location' => 'sometimes|array',
|
||||
'screenshot' => 'sometimes|required|image',
|
||||
];
|
||||
}
|
||||
|
||||
public function getRules($user_id, $start_at, $end_at): array
|
||||
{
|
||||
$this->user_id = $user_id;
|
||||
$this->start_at = $start_at;
|
||||
$this->end_at = $end_at;
|
||||
|
||||
return $this->_rules();
|
||||
}
|
||||
}
|
||||
30
app/Http/Requests/Interval/DestroyTimeIntervalRequest.php
Normal file
30
app/Http/Requests/Interval/DestroyTimeIntervalRequest.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
use App\Exceptions\Entities\IntervalAlreadyDeletedException;
|
||||
|
||||
class DestroyTimeIntervalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('destroy', TimeInterval::find(request('id')));
|
||||
}
|
||||
|
||||
protected function failedAuthorization(): void
|
||||
{
|
||||
throw new IntervalAlreadyDeletedException;
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'id' => 'required|int|exists:time_intervals,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
24
app/Http/Requests/Interval/EditTimeIntervalRequest.php
Normal file
24
app/Http/Requests/Interval/EditTimeIntervalRequest.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
|
||||
class EditTimeIntervalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('update', TimeInterval::find(request('id')));
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'id' => 'required|int|exists:time_intervals,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
28
app/Http/Requests/Interval/IntervalTasksRequest.php
Normal file
28
app/Http/Requests/Interval/IntervalTasksRequest.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
|
||||
class IntervalTasksRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('viewAny', TimeInterval::class);
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'start_at' => 'date',
|
||||
'end_at' => 'date',
|
||||
'project_id' => 'exists:projects,id',
|
||||
'task_id' => 'exists:tasks,id',
|
||||
'user_id' => 'required|integer|exists:users,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
26
app/Http/Requests/Interval/IntervalTotalRequest.php
Normal file
26
app/Http/Requests/Interval/IntervalTotalRequest.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
|
||||
class IntervalTotalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('viewAny', TimeInterval::class);
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'start_at' => 'required|date',
|
||||
'end_at' => 'required|date',
|
||||
'user_id' => 'required|integer|exists:users,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
23
app/Http/Requests/Interval/ListIntervalRequest.php
Normal file
23
app/Http/Requests/Interval/ListIntervalRequest.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Helpers\QueryHelper;
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Models\TimeInterval;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
|
||||
class ListIntervalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('viewAny', TimeInterval::class);
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return QueryHelper::getValidationRules();
|
||||
}
|
||||
}
|
||||
24
app/Http/Requests/Interval/PutScreenshotRequest.php
Normal file
24
app/Http/Requests/Interval/PutScreenshotRequest.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
|
||||
class PutScreenshotRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'screenshot' => 'required|image',
|
||||
];
|
||||
}
|
||||
}
|
||||
21
app/Http/Requests/Interval/ScreenshotRequest.php
Normal file
21
app/Http/Requests/Interval/ScreenshotRequest.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
|
||||
class ScreenshotRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('view', request('interval'));
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
24
app/Http/Requests/Interval/ShowIntervalRequest.php
Normal file
24
app/Http/Requests/Interval/ShowIntervalRequest.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use App\Models\TimeInterval;
|
||||
|
||||
class ShowIntervalRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return $this->user()->can('view', TimeInterval::find(request('id')));
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'id' => 'required|int|exists:time_intervals,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
24
app/Http/Requests/Interval/TrackAppRequest.php
Normal file
24
app/Http/Requests/Interval/TrackAppRequest.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
|
||||
class TrackAppRequest extends CattrFormRequest
|
||||
{
|
||||
use AuthorizesAfterValidation;
|
||||
|
||||
public function authorizeValidated(): bool
|
||||
{
|
||||
return auth()->check();
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'title' => 'nullable|string',
|
||||
'executable' => 'required|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
34
app/Http/Requests/Interval/UploadOfflineIntervalsRequest.php
Normal file
34
app/Http/Requests/Interval/UploadOfflineIntervalsRequest.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\AuthorizesAfterValidation;
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Validation\Rules\File;
|
||||
use Str;
|
||||
|
||||
class UploadOfflineIntervalsRequest extends CattrFormRequest
|
||||
{
|
||||
|
||||
public function _authorize(): bool
|
||||
{
|
||||
return auth()->check();
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'file' => [
|
||||
'required',
|
||||
File::types('application/zip')->max(12 * 1024),
|
||||
function ($_, UploadedFile $file, $fail) {
|
||||
$fileName = $file->getClientOriginalName();
|
||||
if (Str::endsWith($fileName, '.cattr') === false) {
|
||||
$fail('validation.offline-sync.wrong_extension')->translate();
|
||||
}
|
||||
}
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Interval;
|
||||
|
||||
use App\Http\Requests\CattrFormRequest;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Validation\Rules\File;
|
||||
use Str;
|
||||
|
||||
class UploadOfflineScreenshotsRequest extends CattrFormRequest
|
||||
{
|
||||
|
||||
public function _authorize(): bool
|
||||
{
|
||||
return auth()->check();
|
||||
}
|
||||
|
||||
public function _rules(): array
|
||||
{
|
||||
return [
|
||||
'file' => [
|
||||
'required',
|
||||
File::types('application/zip'),
|
||||
function ($_, UploadedFile $file, $fail) {
|
||||
$fileName = $file->getClientOriginalName();
|
||||
if (Str::endsWith($fileName, '.cattr') === false) {
|
||||
$fail('validation.offline-sync.wrong_extension')->translate();
|
||||
}
|
||||
}
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user