diff --git a/app/Http/Controllers/CycleController.php b/app/Http/Controllers/CycleController.php index 8174c2e2..1f21d002 100644 --- a/app/Http/Controllers/CycleController.php +++ b/app/Http/Controllers/CycleController.php @@ -12,16 +12,19 @@ class CycleController extends Controller public function index(Request $request) { $user = auth('api')->user(); - $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); - $admin_users[] = $user->id; + // $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); + // $admin_users[] = $user->id; $Cycles = Cycle:: - when($user->cant('showAll'), function($query) use ($user, $admin_users) { - if ($user->hasRole('Supervisor|User')) { - $query->whereHas('user', function($query) use ($user, $admin_users) { - $query->where('medical_center_id', $user->medical_center_id)->orWhereIn('id', $admin_users); + when($user->cant('showAll'), function($query) use ($user) { + if ($user->hasRole('Supervisor')) { + $query->whereHas('user', function($query) use ($user) { + $query->where('medical_center_id', $user->medical_center_id); }); } + else{ + $query->where('user_id', $user->id); + } }) ->when($request->has('cycle_id') && $request->cycle_id != '', function($query) use($request){ $query->where('id', $request->cycle_id); diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index e575036a..6814ea51 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -12,13 +12,15 @@ class ItemController extends Controller public function index(Request $request) { $user = auth('api')->user(); - $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); - $admin_users[] = $user->id; - $Items = Item::when($user->cant('showAll'), function($query) use ($user, $admin_users) { - if ($user->hasRole('Supervisor|User')) { - $query->whereHas('user', function($query) use ($user, $admin_users) { - $query->where('medical_center_id', $user->medical_center_id)->orWhereIn('id', $admin_users); + if ($user->hasRole('User')) { + return \MessageResponse::error('You dont have access to this section!'); + } + + $Items = Item::when($user->cant('showAll'), function($query) use ($user) { + if ($user->hasRole('Supervisor')) { + $query->whereHas('user', function($query) use ($user) { + $query->where('medical_center_id', $user->medical_center_id); }); } }) @@ -102,17 +104,19 @@ class ItemController extends Controller public function getItems(){ $user = auth('api')->user(); - $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); - $admin_users[] = $user->id; - $Items = Item::when($user->cant('showAll'), function($query) use ($user, $admin_users) { - if ($user->hasRole('Supervisor|User')) { - $query->whereHas('user', function($query) use ($user, $admin_users) { - $query->where('medical_center_id', $user->medical_center_id)->orWhereIn('id', $admin_users); + if ($user->hasRole('User')) { + return \MessageResponse::data([]); + } + + $Items = Item::when($user->cant('showAll'), function($query) use ($user) { + if ($user->hasRole('Supervisor')) { + $query->whereHas('user', function($query) use ($user) { + $query->where('medical_center_id', $user->medical_center_id); }); } }) - ->with(['user' => function($query){ + ->with(['user' => function($query){ $query->select('id', 'name', 'medical_center_id'); }, 'user.medical_center' => function($query){ diff --git a/app/Http/Controllers/LabelController.php b/app/Http/Controllers/LabelController.php index 6cebafed..2fae9444 100644 --- a/app/Http/Controllers/LabelController.php +++ b/app/Http/Controllers/LabelController.php @@ -18,11 +18,14 @@ class LabelController extends Controller $Labels = Label:: when($user->cant('showAll'), function($query) use ($user, $admin_users) { - if ($user->hasRole('Supervisor|User')) { + if ($user->hasRole('Supervisor')) { $query->whereHas('user', function($query) use ($user, $admin_users) { - $query->where('medical_center_id', $user->medical_center_id)->orWhereIn('id', $admin_users); + $query->where('medical_center_id', $user->medical_center_id); }); } + else{ + $query->where('user_id', $user->id); + } }) ->when($request->has('sterilizer_id') && $request->sterilizer_id != '', function($query) use($request){ $query->where('sterilizer_id', $request->sterilizer_id); @@ -90,7 +93,7 @@ class LabelController extends Controller return \MessageResponse::data($Label); } - public function update(Request $request, Label $Label) + public function update(StoreLabelRequest $request, Label $Label) { $Label->update($request->all()); return \MessageResponse::success(trans('messages.success'), null, $Label); @@ -110,14 +113,14 @@ class LabelController extends Controller public function getLabels() { $user = auth('api')->user(); - $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); - $admin_users[] = $user->id; + // $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); + // $admin_users[] = $user->id; $Labels = Label:: - when($user->cant('showAll'), function($query) use ($user, $admin_users) { + when($user->cant('showAll'), function($query) use ($user) { if ($user->hasRole('Supervisor|User')) { - $query->whereHas('user', function($query) use ($user, $admin_users) { - $query->where('medical_center_id', $user->medical_center_id)->orWhereIn('id', $admin_users); + $query->whereHas('user', function($query) use ($user) { + $query->where('medical_center_id', $user->medical_center_id); }); } })->get(); diff --git a/app/Http/Controllers/PackageController.php b/app/Http/Controllers/PackageController.php index ee5033eb..99900bf6 100644 --- a/app/Http/Controllers/PackageController.php +++ b/app/Http/Controllers/PackageController.php @@ -12,14 +12,16 @@ class PackageController extends Controller public function index(Request $request) { $user = auth('api')->user(); - $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); - $admin_users[] = $user->id; + + if ($user->hasRole('User')) { + return \MessageResponse::error('You dont have access to this section!'); + } $Packages = Package:: - when($user->cant('showAll'), function($query) use ($user, $admin_users) { - if ($user->hasRole('Supervisor|User')) { - $query->whereHas('user', function($query) use ($user, $admin_users) { - $query->where('medical_center_id', $user->medical_center_id)->orWhereIn('id', $admin_users); + when($user->cant('showAll'), function($query) use ($user) { + if ($user->hasRole('Supervisor')) { + $query->whereHas('user', function($query) use ($user) { + $query->where('medical_center_id', $user->medical_center_id); }); } }) @@ -157,14 +159,14 @@ class PackageController extends Controller public function getPackages() { $user = auth('api')->user(); - $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); - $admin_users[] = $user->id; + // $admin_users = User::role('Admin')->get()->pluck('id')->toArray(); + // $admin_users[] = $user->id; $Packages = Package:: - when($user->cant('showAll'), function($query) use ($user, $admin_users) { + when($user->cant('showAll'), function($query) use ($user) { if ($user->hasRole('Supervisor|User')) { - $query->whereHas('user', function($query) use ($user, $admin_users) { - $query->where('medical_center_id', $user->medical_center_id)->orWhereIn('id', $admin_users); + $query->whereHas('user', function($query) use ($user) { + $query->where('medical_center_id', $user->medical_center_id); }); } }) diff --git a/app/Http/Controllers/TestResultController.php b/app/Http/Controllers/TestResultController.php index 97c41b0b..bb419168 100644 --- a/app/Http/Controllers/TestResultController.php +++ b/app/Http/Controllers/TestResultController.php @@ -70,7 +70,7 @@ class TestResultController extends Controller }) ->when($request->has('device_id') && $request->device_id, function($query) use($request){ $device_label = $request->device_label ? $request->device_label : ''; - if ($device_label){ + if ($device_label && $device_label != 'undefined'){ $query->whereHas('input_values', function($query) use($request, $device_label){ $query->whereHas('input', function($query) use($request, $device_label){ $query->where('name', $device_label); @@ -243,12 +243,12 @@ class TestResultController extends Controller } } - $ImagesPath = []; - if (count($TestResult->images)) { - foreach ($TestResult->images as $Key => $Image) { - $ImagesPath[] = $Image->path; + $FilesPath = []; + if (count($TestResult->files)) { + foreach ($TestResult->files as $Key => $File) { + $FilesPath[] = $File->path; } - $TestResult['imagesPath'] = $ImagesPath; + $TestResult['filesPath'] = $FilesPath; } $TestResult['device_label'] = $TestResult->test_type->device_label; return \MessageResponse::data($TestResult); @@ -272,16 +272,16 @@ class TestResultController extends Controller } } - $ImagesPath = []; + $FilesPath = []; - if (count($TestResult->images)) { - foreach ($TestResult->images as $Key => $Image) { - $ImagesPath[] = $Image; + if (count($TestResult->files)) { + foreach ($TestResult->files as $Key => $file) { + $FilesPath[] = $file; } - $TestResult['imagesPath'] = $ImagesPath; + $TestResult['filesPath'] = $FilesPath; } else { - $TestResult['imagesPath'] = []; + $TestResult['filesPath'] = []; } return \MessageResponse::data($TestResult); @@ -364,10 +364,10 @@ class TestResultController extends Controller if (count($TestResult->input_values)) { InputValue::where('test_result_id', $TestResult->id)->get()->each->delete(); } - if (count($TestResult->images)){ - foreach ($TestResult->images as $image) { - Storage::disk('public')->delete(static::storage_path($image->path)); - Media::where('id', $image->id)->delete(); + if (count($TestResult->files)){ + foreach ($TestResult->files as $file) { + Storage::disk('public')->delete(static::storage_path($file->path)); + Media::where('id', $file->id)->delete(); } } $TestResult->delete(); @@ -505,12 +505,12 @@ class TestResultController extends Controller } } - $ImagesPath = []; - if (count($TestResult->TitleImage)) { - foreach ($TestResult->TitleImage as $Key => $TitleImage) { - $ImagesPath[] = $TitleImage->path; + $FilesPath = []; + if (count($TestResult->files)) { + foreach ($TestResult->files as $Key => $File) { + $FilesPath[] = $File->path; } - $TestResult['imagesPath'] = $ImagesPath; + $TestResult['filesPath'] = $FilesPath; } // dd($TestResult->test_type()->device_label); $TestResult['device_label'] = $TestResult->test_type->device_label; diff --git a/app/Http/Controllers/UploadController.php b/app/Http/Controllers/UploadController.php index 3062c32d..66762921 100644 --- a/app/Http/Controllers/UploadController.php +++ b/app/Http/Controllers/UploadController.php @@ -9,27 +9,42 @@ use App\Media; class UploadController extends Controller { - public function uploadImage(Request $request) + public function uploadFile(Request $request) { + $FileType = 'image'; $rules = [ - 'image' => 'required|image|mimes:jpeg,png,jpg|max:2048', + "file" => "required|mimes:pdf,jpeg,png,jpg,doc,docx|max:2048" ]; $this->validate($request, $rules); + if(substr( $request->file('file')->getMimeType(), 0, 12 ) == 'application/'){ + $FileType = 'document'; + } + if ($request->model_id !== null && is_numeric($request->model_id)) { $Model = 'App\\'.$request->model_type; $Object = $Model::findOrFail($request->model_id); if ($Object) { - $Image = $request->file('image'); - $Manager = new ImageManager(array('driver' => 'imagick')); - $InterventionImage = $Manager->make($Image); - $Mime = explode('/', $InterventionImage->mime()); + if($FileType == 'image'){ + $Image = $request->file('file'); + $Manager = new ImageManager(array('driver' => 'imagick')); + $InterventionImage = $Manager->make($Image); + $Mime = explode('/', $InterventionImage->mime()); - $ImageName = time().'.'.$Mime[1]; - $Path = 'media'.'/TestResults'.'/'.$Object->id .'/'.$ImageName; + $FileName = time().'.'.$Mime[1]; + $Path = 'media'.'/TestResults'.'/'.$Object->id .'/'.$FileName; - Storage::disk('public')->makeDirectory('TestResults'.'/'.$Object->id); - $InterventionImage->save(public_path($Path)); + Storage::disk('public')->makeDirectory('TestResults'.'/'.$Object->id); + $InterventionImage->save(public_path($Path)); + } + else if($FileType == 'document'){ + $UploadedFile = $request->file('file'); + $FileName = time().'_'.$request->file('file')->getClientOriginalName(); + $Path = 'media'.'/TestResults'.'/'.$Object->id; + Storage::disk('public')->makeDirectory('TestResults'.'/'.$Object->id); + $UploadedFile->move($Path, $FileName); + $Path = $Path . '/' . $FileName; + } $MediaData = [ 'model_id' => $Object->id, @@ -37,22 +52,33 @@ class UploadController extends Controller 'model_type' => 'App\\'.$request->model_type, 'path' => $Path, 'user_id' => auth('api')->user()->id, - 'file_name' => $ImageName + 'file_name' => $FileName, + 'file_type' => $FileType ]; $Media = Media::create($MediaData); } } else { - $Image = $request->file('image'); - $Manager = new ImageManager(array('driver' => 'imagick')); - $InterventionImage = $Manager->make($Image); - $Mime = explode('/', $InterventionImage->mime()); + if($FileType == 'image'){ + $Image = $request->file('file'); + $Manager = new ImageManager(array('driver' => 'imagick')); + $InterventionImage = $Manager->make($Image); + $Mime = explode('/', $InterventionImage->mime()); - $ImageName = time().'.'.$Mime[1]; - $Path = 'media'.'/Temp'.'/'.$request->batch_id .'/'.$ImageName; + $FileName = time().'.'.$Mime[1]; + $Path = 'media'.'/Temp'.'/'.$request->batch_id .'/'.$FileName; - Storage::disk('public')->makeDirectory('Temp'.'/'.$request->batch_id); - $InterventionImage->save(public_path($Path)); + Storage::disk('public')->makeDirectory('Temp'.'/'.$request->batch_id); + $InterventionImage->save(public_path($Path)); + } + else if($FileType == 'document'){ + $UploadedFile = $request->file('file'); + $FileName = time().'_'.$request->file('file')->getClientOriginalName(); + $Path = 'media'.'/Temp'.'/'.$request->batch_id; + Storage::disk('public')->makeDirectory('Temp'.'/'.$request->batch_id); + $UploadedFile->move($Path, $FileName); + $Path = $Path . '/' . $FileName; + } $MediaData = [ 'model_id' => null, @@ -60,14 +86,15 @@ class UploadController extends Controller 'model_type' => 'App\\'.$request->model_type, 'path' => $Path, 'user_id' => auth('api')->user()->id, - 'file_name' => $ImageName + 'file_name' => $FileName, + 'file_type' => $FileType ]; $Media = Media::create($MediaData); } return \MessageResponse::success(trans('messages.success_message'), null, $Media); } - public function deleteImage(Request $request) + public function deleteFile(Request $request) { if ($request->model_id != null && is_numeric($request->model_id)) { $Media = Media::findOrFail($request->media_id); diff --git a/app/Media.php b/app/Media.php index b445ee02..d9697f48 100644 --- a/app/Media.php +++ b/app/Media.php @@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model; class Media extends Model { - protected $fillable = ['model_id', 'model_type', 'user_id', 'batch_id', 'path', 'file_name']; + protected $fillable = ['model_id', 'model_type', 'user_id', 'batch_id', 'path', 'file_name', 'file_type']; public $timestamps = true; public function user() diff --git a/app/Policies/CyclePolicy.php b/app/Policies/CyclePolicy.php index d810b5f3..0fed515e 100644 --- a/app/Policies/CyclePolicy.php +++ b/app/Policies/CyclePolicy.php @@ -15,19 +15,19 @@ class CyclePolicy } public function delete(User $User, Cycle $Cycle) { - if($User->hasRole('Admin') || $Cycle->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Cycle->user->medical_center_id == $User->medical_center_id) || $Cycle->user_id == $User->id) return true; } public function update(User $User, Cycle $Cycle) { - if($User->hasRole('Admin') || $Cycle->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Cycle->user->medical_center_id == $User->medical_center_id) || $Cycle->user_id == $User->id) return true; } public function store(User $User) { - return true; + return true; } public function verifyCycle(User $User, Cycle $Cycle) { diff --git a/app/Policies/ItemPolicy.php b/app/Policies/ItemPolicy.php index e1cfe7ed..5a9bc19c 100644 --- a/app/Policies/ItemPolicy.php +++ b/app/Policies/ItemPolicy.php @@ -15,18 +15,19 @@ class ItemPolicy } public function delete(User $User, Item $Item) { - if($User->hasRole('Admin') || $Item->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Item->user->medical_center_id == $User->medical_center_id)) return true; } public function update(User $User, Item $Item) { - if($User->hasRole('Admin') || $Item->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Item->user->medical_center_id == $User->medical_center_id)) return true; } public function store(User $User) { + if($User->hasRole('Admin') || $User->hasRole('Supervisor')) return true; } diff --git a/app/Policies/LabelPolicy.php b/app/Policies/LabelPolicy.php index 45b0a9ac..7dcb47ba 100644 --- a/app/Policies/LabelPolicy.php +++ b/app/Policies/LabelPolicy.php @@ -15,19 +15,19 @@ class LabelPolicy } public function delete(User $User, Label $Label) { - if($User->hasRole('Admin') || $Label->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Label->user->medical_center_id == $User->medical_center_id) || $Label->user_id == $User->id) return true; } public function update(User $User, Label $Label) { - if($User->hasRole('Admin') || $Label->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Label->user->medical_center_id == $User->medical_center_id) || $Label->user_id == $User->id) return true; } public function store(User $User) { - return true; + return true; } diff --git a/app/Policies/PackagePolicy.php b/app/Policies/PackagePolicy.php index 77af87bf..b1bce8d7 100644 --- a/app/Policies/PackagePolicy.php +++ b/app/Policies/PackagePolicy.php @@ -15,19 +15,20 @@ class PackagePolicy } public function delete(User $User, Package $Package) { - if($User->hasRole('Admin') || $Package->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Package->user->medical_center_id == $User->medical_center_id)) return true; } public function update(User $User, Package $Package) { - if($User->hasRole('Admin') || $Package->user_id == $User->id) + if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Package->user->medical_center_id == $User->medical_center_id)) return true; } public function store(User $User) { - return true; + if($User->hasRole('Admin') || $User->hasRole('Supervisor')) + return true; } public function verifyPackage(User $User, Package $Package) { diff --git a/app/TestResult.php b/app/TestResult.php index 0f9bd2c0..8d692822 100644 --- a/app/TestResult.php +++ b/app/TestResult.php @@ -19,7 +19,7 @@ class TestResult extends Model { return $this->hasMany('App\InputValue'); } - public function images() + public function files() { return $this->morphMany('App\Media', 'model'); } diff --git a/public/media/TestResults/82/1593887687_Doc1.pdf b/public/media/TestResults/82/1593887687_Doc1.pdf new file mode 100644 index 00000000..d5df7bf8 Binary files /dev/null and b/public/media/TestResults/82/1593887687_Doc1.pdf differ diff --git a/public/media/TestResults/82/1593887700.jpeg b/public/media/TestResults/82/1593887700.jpeg new file mode 100644 index 00000000..15c7f4d9 Binary files /dev/null and b/public/media/TestResults/82/1593887700.jpeg differ diff --git a/resources/js/show/views/TestResult/ShowTestResult.vue b/resources/js/show/views/TestResult/ShowTestResult.vue index 31c6fa02..5f17a254 100644 --- a/resources/js/show/views/TestResult/ShowTestResult.vue +++ b/resources/js/show/views/TestResult/ShowTestResult.vue @@ -139,8 +139,14 @@