Publish Role

This commit is contained in:
saeid_01
2019-05-13 06:41:02 +04:30
parent fc9dfeaf00
commit 76e18cca1d
77 changed files with 705 additions and 131638 deletions
@@ -19,7 +19,7 @@ class LoginController extends Controller
'client_id' => config('services.vue_client.id'),
'client_secret' => config('services.vue_client.secret'),
'username' => $request->cell_number,
'password' => $request->password
'password' => $request->password,
]);
return app()->handle($request);
@@ -9,12 +9,14 @@ use App\Http\Requests\StoreMedicalCenterRequest;
class MedicalCenterController extends Controller
{
public function index()
public function index(Request $request)
{
if (!auth('api')->user()->can('list', MedicalCenter::class)) {
return \MessageResponse::error(trans('messages.access_denied'));
}
$MedicalCenters = MedicalCenter::withCount('users')->paginate(10);
$MedicalCenters = MedicalCenter::when($request->has('name') && $request->name, function($query) use($request){
$query->where('name', 'LIKE', '%'.$request->name.'%');
})->withCount('users')->paginate(10);
return \MessageResponse::data($MedicalCenters);
}
@@ -49,10 +51,10 @@ class MedicalCenterController extends Controller
public function destroy(MedicalCenter $MedicalCenter)
{
if ($MedicalCenter->users->count() == 0) {
$MedicalCenter->delete();
return \MessageResponse::success(trans('messages.success'));
if (!auth('api')->user()->can('delete', $MedicalCenter)) {
return \MessageResponse::error(trans('messages.access_denied'));
}
return \MessageResponse::error(trans('messages.failed'));
$MedicalCenter->delete();
return \MessageResponse::success(trans('messages.success'));
}
}
+30 -14
View File
@@ -26,9 +26,9 @@ class TestResultController extends Controller
return $query->where('verified', $request->verified);
})
->when($user->hasRole('Supervisor') , function($query) {
return $query->with(['user' => function($query) use ($user) {
return $query->whereHas('user', function($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id);
}]);
});
})
->when($user->hasRole('User') || ( !$user->hasRole('Admin') && !$user->hasRole('Supervisor')), function($query) use ($user) {
return $query->where('user_id', $user->id);
@@ -36,7 +36,6 @@ class TestResultController extends Controller
->paginate(10);
return \MessageResponse::data($TestResult);
}
public function create()
@@ -74,7 +73,7 @@ class TestResultController extends Controller
$TestResultObj = TestResult::create($TestResult);
$TestResultInfo = $request->all();
$Inputs = Input::with('options','children','children.children')->whereNull('parent_id')->where('test_type_id',$request->test_type_id)->get();
$Inputs = Input::with('options','children','children.options')->whereNull('parent_id')->where('test_type_id',$request->test_type_id)->get();
///////////////////////////////////////////////////////////////////////////Inputs
foreach ($Inputs as $Input) {
@@ -225,9 +224,7 @@ class TestResultController extends Controller
public function update(StoreTestResultRequest $request, TestResult $TestResult)
{
// dd($request->all());
$TestResultData = [
'user_id' => auth('api')->user()->id,
'autoclave_id' => $request->autoclave_id,
'test_type_id' => $request->test_type_id,
'result' => $request->result,
@@ -334,7 +331,7 @@ class TestResultController extends Controller
public function verifyTestResult(TestResult $TestResult)
{
if (!auth('api')->user()->can('verifyTestResult', $TestResult)) {
if (auth('api')->user()->cant('verifyTestResult', $TestResult)) {
return \MessageResponse::error(trans('You dont have permission or this test result belongs to another medical center'));
}
if ($TestResult->verified == 'Verified') {
@@ -347,10 +344,13 @@ class TestResultController extends Controller
return \MessageResponse::success(trans('messages.success'), null, $TestResult);
}
// TODO: Policy And Check Role
public function listFilterItems()
{
$MedicalCenter = MedicalCenter::select('name', 'id')->get()->toArray();
$user = auth('api')->user();
$MedicalCenter = MedicalCenter::when(!$user->hasRole('Admin'), function ($query) use ($user)
{
$query->where('id', $user->medical_center_id);
})->select('name', 'id')->get()->toArray();
$TestType = TestType::select('name', 'id')->get()->toArray();
return \MessageResponse::data([
'MedicalCenters' => $MedicalCenter,
@@ -360,15 +360,30 @@ class TestResultController extends Controller
public function chart(Request $request)
{
$user = auth('api')->user();
if ($user->hasRole('User')) {
$userId = $user->id;
} elseif($request->has('userId') && $request->userId) {
$userId = $request->userId;
} else {
$userId = null;
}
if ($user->hasRole('Admin') && $request->has('medicalCenterId') && $request->medicalCenterId) {
$medicalCenterId = $request->medicalCenterId;
} else {
$medicalCenterId = $user->medical_center_id;
}
$TestResults = TestResult::
when($request->has('userId') && $request->userId, function ($query) use ($request)
when($userId, function ($query) use ($userId)
{
$query->where('user_id', $request->userId);
$query->where('user_id', $userId);
})
->when($request->has('medicalCenterId') && $request->medicalCenterId, function ($query) use ($request)
->when($medicalCenterId, function ($query) use ($medicalCenterId)
{
$query->whereHas('user', function($query) use ($request) {
$query->where('medical_center_id', $request->medicalCenterId);
$query->whereHas('user', function($query) use ($medicalCenterId) {
$query->where('medical_center_id', $medicalCenterId);
});
})
->when($request->has('testTypeId') && $request->testTypeId, function ($query) use ($request)
@@ -392,6 +407,7 @@ class TestResultController extends Controller
$AcceptCount = (isset($TestResults['Accept'])) ? $TestResults['Accept']->count() : 0;
$RejectCount = (isset($TestResults['Reject'])) ? $TestResults['Reject']->count() : 0;
return \MessageResponse::data(['labels' => ['Number Of Accepted Test Results', 'Number Of Rejected Test Results'], 'data' => [$AcceptCount,$RejectCount]]);
}
}
+17 -6
View File
@@ -12,12 +12,25 @@ use \Milon\Barcode\DNS1D;
class TestTypeController extends Controller
{
public function index()
public function index(Request $request)
{
if (!auth('api')->user()->can('list', TestType::class)) {
return \MessageResponse::error(trans('messages.access_denied'));
}
$TestTypes = TestType::withCount('test_results')->with('user','user.medical_center')->paginate(10);
$TestTypes = TestType::when($request->has('name') && $request->name, function($query) use($request){
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
->when($request->has('date') && $request->date, function($query) use($request){
$Date = ($request->date) ? date($request->date . ' 23:59:59') : date('Y-m-d' . ' 23:59:59');
$query->where('created_at', $Date);
})
->when($request->has('unique_code') && $request->unique_code, function($query) use($request){
$query->where('unique_code', $request->unique_code);
})
->when($request->has('user_id') && $request->user_id, function($query) use($request){
$query->where('user_id', $request->user_id);
})
->withCount('test_results')->with('user','user.medical_center')->paginate(10);
return \MessageResponse::data($TestTypes);
}
@@ -29,8 +42,9 @@ class TestTypeController extends Controller
}
$Number = $TestType->unique_code;
$Barcode = DNS1D::getBarcodePNGUri($Number, "C128");
$QRCode = \DNS2D::getBarcodePNGUri($Number, "QRCODE");
$TestType->update(['bar_code' => $Barcode]);
return \MessageResponse::data($Barcode);
return \MessageResponse::data(['Barcode' => $Barcode, 'QRCode' => $QRCode]);
}
public function create()
@@ -299,9 +313,6 @@ class TestTypeController extends Controller
public function update(StoreTestTypeRequest $request, TestType $TestType)
{
// if (count($TestType->test_results) > 0) {
// return \MessageResponse::error(trans('messages.access_denied'));
// }
$TestTypeData = [
'name' => $request['name'],
'unique_code' => $request['unique_code'],
+155 -117
View File
@@ -1,117 +1,155 @@
<?php␍
␍
␍
␍
namespace App\Http\Controllers;␍
␍
␍
␍
use Illuminate\Http\Request;␍
␍
use App\Http\Requests\StoreUserRequest;␍
use App\MedicalCenter;␍
use App\User;␍
␍
␍
␍
class UserController extends Controller␍
␍
{␍
␍
public function index()␍
{␍
if (!auth('api')->user()->can('list', User::class)) {␍
return \MessageResponse::error(trans('messages.access_denied'));␍
}␍
$Users = User::with(['medical_center', 'roles'])->paginate(10);␍
return \MessageResponse::data($Users);␍
␍
}␍
␍
public function store(StoreUserRequest $request)␍
{␍
$UserData = [␍
'name' => $request->name ,␍
'cell_number' => $request->cell_number ,␍
'medical_center_id' => $request->medical_center_id ,␍
'status' => 'PreRegister',␍
'verified' => 1,␍
'password' => bcrypt($request->password),␍
];␍
$User = User::create($UserData);␍
return \MessageResponse::success(trans('messages.success'));␍
}␍
␍
public function edit(User $User)␍
{␍
return \MessageResponse::data($User);␍
}␍
␍
public function update(StoreUserRequest $request, User $User)␍
{␍
$UserData = [␍
'name' => $request->name ,␍
'cell_number' => $request->cell_number ,␍
'medical_center_id' => $request->medical_center_id ,␍
'status' => 'PreRegister',␍
'verified' => 1,␍
'password' => bcrypt($request->password),␍
];␍
$User->update($UserData);␍
return \MessageResponse::success(trans('messages.success'));␍
}␍
␍
public function destroy(User $User)␍
{␍
if (auth('api')->user()->can('delete', $User)) {␍
return \MessageResponse::error(trans('messages.failed'));␍
}␍
$User->delete();␍
return \MessageResponse::success(trans('messages.success'));␍
}␍
␍
␍
␍
public function getByMedicalCenter(MedicalCenter $MedicalCenter)␍
{␍
$MedicalCenter = $MedicalCenter->load(['users' => function ($query) {␍
return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status']);␍
}, 'users.roles']);␍
return \MessageResponse::data($MedicalCenter);␍
}␍
␍
public function changeStatus(User $User)␍
{␍
if (!auth('api')->user()->can('changeStatus', User::class)) {␍
return \MessageResponse::error(trans('messages.access_denied'));␍
}␍
if ($User->status == 'Active') {␍
$User->status = 'Suspended';␍
} else {␍
$User->status = 'Active';␍
}␍
$User->save();␍
return \MessageResponse::data($User);␍
}␍
␍
public function changeRole(User $User, Request $request)␍
{␍
if (!auth('api')->user()->can('changeRole', User::class)) {␍
return \MessageResponse::error(trans('messages.access_denied'));␍
}␍
$User->syncRoles($request->roles);␍
return \MessageResponse::data($User);␍
}␍
␍
public function updateInfo(Request $request)␍
{␍
auth('api')->user()->update($request->all());␍
return \MessageResponse::success(trans('messages.success'));␍
}␍
␍
public function getInfo()␍
{␍
return \MessageResponse::data([ 'user' => auth('api')->user(), 'roles' => auth('api')->user()->getRoleNames() ]);␍
}␍
␍
}␍
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\StoreUserRequest;
use App\MedicalCenter;
use App\User;
class UserController extends Controller
{
public function index(Request $request)
{
$user = auth('api')->user();
if ($user->cant('list', User::class)) {
return \MessageResponse::error(trans('messages.access_denied'));
}
if ($user->hasRole('Supervisor')) {
$medical_center_id = $user->medical_center_id;
}
elseif($request->has('medical_center_id') && $request->medical_center_id) {
$medical_center_id = $request->medical_center_id;
} else {
$medical_center_id = null;
}
$Users = User::when($request->has('name') && $request->name, function($query) use($request){
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
->when($request->has('date') && $request->date, function($query) use($request){
$Date = ($request->date) ? date($request->date . ' 23:59:59') : date('Y-m-d' . ' 23:59:59');
$query->where('created_at', $Date);
})
->when($medical_center_id, function($query) use ($medical_center_id){
$query->where('medical_center_id', $medical_center_id);
})
->with(['medical_center', 'roles'])->paginate(10);
return \MessageResponse::data($Users);
}
public function store(StoreUserRequest $request)
{
if (auth('api')->user()->cant('store', User::class)) {
return \MessageResponse::error(trans('messages.failed'));
}
$UserData = [
'name' => $request->name ,
'cell_number' => $request->cell_number ,
'medical_center_id' => $request->medical_center_id ,
'status' => 'PreRegister',
'verified' => 1,
'password' => bcrypt($request->password),
];
User::create($UserData);
return \MessageResponse::success(trans('messages.success'));
}
public function edit(User $User)
{
return \MessageResponse::data($User);
}
public function update(StoreUserRequest $request, User $User)
{
if (auth('api')->user()->cant('update', $User)) {
return \MessageResponse::error(trans('messages.failed'));
}
$UserData = [
'name' => $request->name ,
'cell_number' => $request->cell_number ,
'medical_center_id' => $request->medical_center_id ,
'status' => 'PreRegister',
'verified' => 1,
'password' => bcrypt($request->password),
];
$User->update($UserData);
return \MessageResponse::success(trans('messages.success'));
}
public function destroy(User $User)
{
if (auth('api')->user()->cant('delete', $User)) {
return \MessageResponse::error(trans('messages.failed'));
}
$User->delete();
return \MessageResponse::success(trans('messages.success'));
}
public function getByMedicalCenter(MedicalCenter $MedicalCenter)
{
$user = auth('api')->user();
if (auth('api')->user()->cant('getByMedicalCenter', $MedicalCenter)) {
return \MessageResponse::error(trans('messages.failed'));
}
$MedicalCenter = $MedicalCenter->load(['users' => function ($query) use ($user) {
if ($user->hasRole('User')) {
return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status'])->where('id', $user->id);
} else {
return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status']);
}
}, 'users.roles']);
return \MessageResponse::data($MedicalCenter);
}
public function changeStatus(User $User)
{
if (auth('api')->user()->cant('changeStatus', User::class)) {
return \MessageResponse::error(trans('messages.access_denied'));
}
if ($User->status == 'Active') {
$User->status = 'Suspended';
$tokens = \DB::table('oauth_access_tokens')->where('user_id', $User->id);
foreach($tokens->get() as $token) {
\DB::table('oauth_refresh_tokens')->where('access_token_id', $token->id)->delete();
}
$tokens->delete();
} else {
$User->status = 'Active';
}
$User->save();
return \MessageResponse::data($User);
}
public function changeRole(User $User, Request $request)
{
if (auth('api')->user()->cant('changeRole', User::class)) {
return \MessageResponse::error(trans('messages.access_denied'));
}
$User->syncRoles($request->roles);
return \MessageResponse::data($User);
}
public function updateInfo(Request $request)
{
auth('api')->user()->update($request->all());
return \MessageResponse::success(trans('messages.success'));
}
public function getInfo()
{
return \MessageResponse::data([ 'user' => auth('api')->user(), 'roles' => auth('api')->user()->getRoleNames() ]);
}
}
+30 -30
View File
@@ -1,30 +1,30 @@
<?php // /app/Http/Middleware/Cors.php␍
namespace App\Http\Middleware;␍
use Closure;␍
class Cors {␍
␍
␍
public function handle($request, Closure $next)␍
{␍
/* @var $response Response */␍
$response = $next($request)␍
->header('Access-Control-Allow-Origin', '*')␍
->header('Access-Control-Allow-credentials', true)␍
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');␍
if (!$request->isMethod('OPTIONS')) {␍
return $response;␍
}␍
$allow = $response->headers->get('Allow'); // true list of allowed methods␍
if (!$allow) {␍
return $response;␍
}␍
$headers = [␍
'Access-Control-Allow-Methods' => $allow,␍
'Access-Control-Max-Age' => 3600,␍
'Access-Control-Allow-Headers' => 'X-Requested-With, Origin, X-Csrftoken, Content-Type, Accept',␍
];␍
return $response->withHeaders($headers);␍
}␍
␍
␍
}␍
<?php // /app/Http/Middleware/Cors.php
namespace App\Http\Middleware;
use Closure;
class Cors {
public function handle($request, Closure $next)
{
/* @var $response Response */
$response = $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-credentials', true)
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
if (!$request->isMethod('OPTIONS')) {
return $response;
}
$allow = $response->headers->get('Allow'); // true list of allowed methods
if (!$allow) {
return $response;
}
$headers = [
'Access-Control-Allow-Methods' => $allow,
'Access-Control-Max-Age' => 3600,
'Access-Control-Allow-Headers' => 'X-Requested-With, Origin, X-Csrftoken, Content-Type, Accept',
];
return $response->withHeaders($headers);
}
}
+53 -53
View File
@@ -1,53 +1,53 @@
<?php␍
␍
namespace App\Http\Requests;␍
␍
use App\MedicalCenter;␍
use Illuminate\Validation\Rule;␍
use Illuminate\Foundation\Http\FormRequest;␍
use Illuminate\Contracts\Validation\Validator;␍
␍
␍
class StoreMedicalCenterRequest extends FormRequest␍
{␍
public function authorize()␍
{␍
if ($this->method() == 'POST') {␍
return auth('api')->check() && auth('api')->user()->can('store', MedicalCenter::class);␍
} else {␍
$MedicalCenter = $this->route('MedicalCenter');␍
return auth('api')->check() && $MedicalCenter && auth('api')->user()->can('update', $MedicalCenter);␍
}␍
}␍
␍
public function rules()␍
{␍
switch ($this->method()) {␍
case 'POST': {␍
return [␍
'name' => 'required|max:100|unique:medical_centers',␍
// 'operatores.*.name'=>'required|string|max:255',␍
// 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users',␍
// 'operatores.*.password'=>'required|string|min:6',␍
];␍
break;␍
}␍
case 'PUT':␍
case 'PATCH': {␍
$MedicalCenter = $this->route('MedicalCenter');␍
return [␍
'name' => 'required|max:100|unique:medical_centers,id,'.$MedicalCenter->id,␍
// 'operatores.*.name'=>'required|string|max:255',␍
// 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users',␍
// 'operatores.*.password'=>'required|string|min:6',␍
];␍
break;␍
␍
}␍
default:␍
break;␍
}␍
␍
}␍
␍
}␍
<?php
namespace App\Http\Requests;
use App\MedicalCenter;
use Illuminate\Validation\Rule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
class StoreMedicalCenterRequest extends FormRequest
{
public function authorize()
{
if ($this->method() == 'POST') {
return auth('api')->check() && auth('api')->user()->can('store', MedicalCenter::class);
} else {
$MedicalCenter = $this->route('MedicalCenter');
return auth('api')->check() && $MedicalCenter && auth('api')->user()->can('update', $MedicalCenter);
}
}
public function rules()
{
switch ($this->method()) {
case 'POST': {
return [
'name' => 'required|max:100|unique:medical_centers',
// 'operatores.*.name'=>'required|string|max:255',
// 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users',
// 'operatores.*.password'=>'required|string|min:6',
];
break;
}
case 'PUT':
case 'PATCH': {
$MedicalCenter = $this->route('MedicalCenter');
return [
'name' => 'required|max:100|unique:medical_centers,id,'.$MedicalCenter->id,
// 'operatores.*.name'=>'required|string|max:255',
// 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users',
// 'operatores.*.password'=>'required|string|min:6',
];
break;
}
default:
break;
}
}
}
+63 -63
View File
@@ -1,63 +1,63 @@
<?php␍
␍
namespace App\Http\Requests;␍
␍
use App\TestResult;␍
use Illuminate\Validation\Rule;␍
use Illuminate\Foundation\Http\FormRequest;␍
use Illuminate\Contracts\Validation\Validator;␍
␍
␍
class StoreTestResultRequest extends FormRequest␍
{␍
public function authorize()␍
{␍
if ($this->method() == 'POST') {␍
return auth('api')->check() && auth('api')->user()->can('store', TestResult::class);␍
} else {␍
$TestResult = $this->route('TestResult');␍
return auth('api')->check() && $TestResult && auth('api')->user()->can('update', $TestResult);␍
}␍
}␍
␍
public function rules()␍
{␍
switch ($this->method()) {␍
case 'POST': {␍
return [␍
// 'user_id' => 'required',␍
'autoclave_id' => 'required',␍
'test_type_id' => 'required|numeric|exists:test_types,id',␍
'result' => 'required',␍
// 'verified' => 'required',␍
// 'info.*.name'=>'required',␍
// 'info.*.type'=>'required',␍
// 'info.*.size'=>'nullable',␍
// 'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',␍
];␍
break;␍
}␍
case 'PUT':␍
case 'PATCH': {␍
// $TestResult = $this->route('TestResult');␍
return [␍
// 'user_id' => 'required',␍
'autoclave_id' => 'required',␍
'test_type_id' => 'required|numeric|exists:test_types,id',␍
'result' => 'required',␍
// 'verified' => 'required',␍
// 'info.*.name'=>'required',␍
// 'info.*.type'=>'required',␍
// 'info.*.size'=>'nullable',␍
// 'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',␍
];␍
break;␍
␍
}␍
default:␍
break;␍
}␍
␍
}␍
␍
}␍
<?php
namespace App\Http\Requests;
use App\TestResult;
use Illuminate\Validation\Rule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
class StoreTestResultRequest extends FormRequest
{
public function authorize()
{
if ($this->method() == 'POST') {
return auth('api')->check() && auth('api')->user()->can('store', TestResult::class);
} else {
$TestResult = $this->route('TestResult');
return auth('api')->check() && $TestResult && auth('api')->user()->can('update', $TestResult);
}
}
public function rules()
{
switch ($this->method()) {
case 'POST': {
return [
// 'user_id' => 'required',
'autoclave_id' => 'required',
'test_type_id' => 'required|numeric|exists:test_types,id',
'result' => 'required',
// 'verified' => 'required',
// 'info.*.name'=>'required',
// 'info.*.type'=>'required',
// 'info.*.size'=>'nullable',
// 'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
];
break;
}
case 'PUT':
case 'PATCH': {
// $TestResult = $this->route('TestResult');
return [
// 'user_id' => 'required',
'autoclave_id' => 'required',
'test_type_id' => 'required|numeric|exists:test_types,id',
'result' => 'required',
// 'verified' => 'required',
// 'info.*.name'=>'required',
// 'info.*.type'=>'required',
// 'info.*.size'=>'nullable',
// 'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
];
break;
}
default:
break;
}
}
}
+57 -57
View File
@@ -1,57 +1,57 @@
<?php␍
␍
namespace App\Http\Requests;␍
␍
use App\TestType;␍
use Illuminate\Validation\Rule;␍
use Illuminate\Foundation\Http\FormRequest;␍
use Illuminate\Contracts\Validation\Validator;␍
␍
␍
class StoreTestTypeRequest extends FormRequest␍
{␍
public function authorize()␍
{␍
if ($this->method() == 'POST') {␍
return auth('api')->check() && auth('api')->user()->can('store', TestType::class);␍
} else {␍
$TestType = $this->route('TestType');␍
return auth('api')->check() && $TestType && auth('api')->user()->can('update', $TestType);␍
}␍
}␍
␍
public function rules()␍
{␍
switch ($this->method()) {␍
case 'POST': {␍
return [␍
'name' => 'required|max:100|unique:test_types',␍
'unique_code' => 'required|max:100|unique:test_types',␍
'info.*.name'=>'required',␍
'info.*.type'=>'required',␍
'info.*.size'=>'nullable',␍
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',␍
];␍
break;␍
}␍
case 'PUT':␍
case 'PATCH': {␍
$TestType = $this->route('TestType');␍
return [␍
'name' => 'required|max:100|unique:test_types,id,'.$TestType->id,␍
'unique_code' => 'required|max:100|unique:test_types,id,'.$TestType->id,␍
'info.*.name'=>'required',␍
'info.*.type'=>'required',␍
'info.*.size'=>'nullable',␍
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',␍
];␍
break;␍
␍
}␍
default:␍
break;␍
}␍
␍
}␍
␍
}␍
<?php
namespace App\Http\Requests;
use App\TestType;
use Illuminate\Validation\Rule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
class StoreTestTypeRequest extends FormRequest
{
public function authorize()
{
if ($this->method() == 'POST') {
return auth('api')->check() && auth('api')->user()->can('store', TestType::class);
} else {
$TestType = $this->route('TestType');
return auth('api')->check() && $TestType && auth('api')->user()->can('update', $TestType);
}
}
public function rules()
{
switch ($this->method()) {
case 'POST': {
return [
'name' => 'required|max:100|unique:test_types',
'unique_code' => 'required|max:100|unique:test_types',
'info.*.name'=>'required',
'info.*.type'=>'required',
'info.*.size'=>'nullable',
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
];
break;
}
case 'PUT':
case 'PATCH': {
$TestType = $this->route('TestType');
return [
'name' => 'required|max:100|unique:test_types,id,'.$TestType->id,
'unique_code' => 'required|max:100|unique:test_types,id,'.$TestType->id,
'info.*.name'=>'required',
'info.*.type'=>'required',
'info.*.size'=>'nullable',
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
];
break;
}
default:
break;
}
}
}
+53 -53
View File
@@ -1,53 +1,53 @@
<?php␍
␍
namespace App\Http\Requests;␍
␍
use App\User;␍
use Illuminate\Validation\Rule;␍
use Illuminate\Foundation\Http\FormRequest;␍
use Illuminate\Contracts\Validation\Validator;␍
␍
␍
class StoreUserRequest extends FormRequest␍
{␍
public function authorize()␍
{␍
if ($this->method() == 'POST') {␍
return auth('api')->check() && auth('api')->user()->can('store', User::class);␍
} else {␍
$User = $this->route('User');␍
return auth('api')->check() && $User && auth('api')->user()->can('update', $User);␍
}␍
}␍
␍
public function rules()␍
{␍
switch ($this->method()) {␍
case 'POST': {␍
return [␍
'name'=>'required|string|max:255',␍
'cell_number'=>'required|digits_between:10,11|unique:users',␍
'password'=>'required|string|min:6',␍
'medical_center_id' => 'required|numeric|exists:medical_centers,id',␍
];␍
break;␍
}␍
case 'PUT':␍
case 'PATCH': {␍
$User = $this->route('User');␍
return [␍
'name'=>'required|string|max:255',␍
'cell_number'=>'required|digits_between:10,11|unique:users,id,'.$User->id,␍
'password'=>'required|string|min:6',␍
'medical_center_id' => 'required|numeric|exists:medical_centers,id',␍
];␍
break;␍
␍
}␍
default:␍
break;␍
}␍
␍
}␍
␍
}␍
<?php
namespace App\Http\Requests;
use App\User;
use Illuminate\Validation\Rule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
class StoreUserRequest extends FormRequest
{
public function authorize()
{
if ($this->method() == 'POST') {
return auth('api')->check() && auth('api')->user()->can('store', User::class);
} else {
$User = $this->route('User');
return auth('api')->check() && $User && auth('api')->user()->can('update', $User);
}
}
public function rules()
{
switch ($this->method()) {
case 'POST': {
return [
'name'=>'required|string|max:255',
'cell_number'=>'required|digits_between:10,11|unique:users',
'password'=>'required|string|min:6',
'medical_center_id' => 'required|numeric|exists:medical_centers,id',
];
break;
}
case 'PUT':
case 'PATCH': {
$User = $this->route('User');
return [
'name'=>'required|string|max:255',
'cell_number'=>'required|digits_between:10,11|unique:users,id,'.$User->id,
'password'=>'required|string|min:6',
'medical_center_id' => 'required|numeric|exists:medical_centers,id',
];
break;
}
default:
break;
}
}
}
+40 -33
View File
@@ -1,33 +1,40 @@
<?php␍
␍
namespace App\Policies;␍
␍
use App\User;␍
use App\MedicalCenter;␍
use Doctrine\Tests\Common\Inflector\InflectorTest;␍
␍
class MedicalCenterPolicy␍
{␍
public function list(User $User)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
public function delete(User $User, MedicalCenter $MedicalCenter)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
␍
public function update(User $User, MedicalCenter $MedicalCenter)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
␍
public function store(User $User)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
}␍
<?php
namespace App\Policies;
use App\User;
use App\MedicalCenter;
use Doctrine\Tests\Common\Inflector\InflectorTest;
class MedicalCenterPolicy
{
public function list(User $User)
{
if($User->hasRole('Admin'))
return true;
}
public function delete(User $User, MedicalCenter $MedicalCenter)
{
if($User->hasRole('Admin') && $MedicalCenter->users->count() == 0)
return true;
}
public function update(User $User, MedicalCenter $MedicalCenter)
{
if($User->hasRole('Admin'))
return true;
}
public function store(User $User)
{
if($User->hasRole('Admin'))
return true;
}
public function getByMedicalCenter(User $User, MedicalCenter $MedicalCenter)
{
if($User->hasRole('Admin') || $MedicalCenter->id == $User->medical_center_id) {
return true;
}
return false;
}
}
+36 -37
View File
@@ -1,37 +1,36 @@
<?php␍
␍
namespace App\Policies;␍
␍
use App\User;␍
use App\TestResult;␍
use Doctrine\Tests\Common\Inflector\InflectorTest;␍
␍
class TestResultPolicy␍
{␍
␍
public function delete(User $User, TestResult $TestResult)␍
{␍
if($User->hasRole('Admin|Supervisor'))␍
return true;␍
}␍
␍
public function update(User $User, TestResult $TestResult)␍
{␍
if($User->hasRole('Admin|Supervisor'))␍
return true;␍
}␍
␍
public function store(User $User)␍
{␍
if($User->hasRole('Admin|Supervisor'))␍
return true;␍
}␍
public function verifyTestResult(User $User, TestResult $TestResult)␍
{␍
$TR_MID = $TestResult->user->medical_center_id;␍
$User_MID = $User->medical_center_id;␍
␍
if($User->hasRole('Supervisor|Admin') && $TR_MID == $User_MID)␍
return true;␍
}␍
}␍
<?php
namespace App\Policies;
use App\User;
use App\TestResult;
use Doctrine\Tests\Common\Inflector\InflectorTest;
class TestResultPolicy
{
public function delete(User $User, TestResult $TestResult)
{
if($User->hasRole('Admin|Supervisor'))
return true;
}
public function update(User $User, TestResult $TestResult)
{
if($TestResult->user_id == $User->id)
return true;
}
public function store(User $User)
{
return true;
}
public function verifyTestResult(User $User, TestResult $TestResult)
{
$TR_MID = $TestResult->user->medical_center_id;
$User_MID = $User->medical_center_id;
if($User->hasRole('Admin') || ( $User->hasRole('Supervisor') && $TR_MID == $User_MID))
return true;
}
}
+43 -43
View File
@@ -1,43 +1,43 @@
<?php␍
␍
namespace App\Policies;␍
␍
use App\User;␍
use App\TestType;␍
use Doctrine\Tests\Common\Inflector\InflectorTest;␍
␍
class TestTypePolicy␍
{␍
public function list(User $User)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
public function delete(User $User, TestType $TestType)␍
{␍
if($User->hasRole('SuperAdmin|Admin') && $TestType->test_results->count() == 0)␍
return true;␍
}␍
␍
public function update(User $User, TestType $TestType)␍
{␍
if($User->hasRole('SuperAdmin|Admin') && $TestType->test_results->count() == 0)␍
return true;␍
}␍
␍
public function store(User $User)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
public function getInputs(User $User)␍
{␍
// if($User->hasRole('Admin'))␍
return true;␍
}␍
public function generateBarcode(User $User, TestType $TestType)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
}␍
<?php
namespace App\Policies;
use App\User;
use App\TestType;
use Doctrine\Tests\Common\Inflector\InflectorTest;
class TestTypePolicy
{
public function list(User $User)
{
if($User->hasRole('Admin'))
return true;
}
public function delete(User $User, TestType $TestType)
{
if($User->hasRole('Admin') )
return true;
}
public function update(User $User, TestType $TestType)
{
if($User->hasRole('Admin') && $TestType->test_results->count() == 0)
return true;
}
public function store(User $User)
{
if($User->hasRole('Admin'))
return true;
}
public function getInputs(User $User)
{
// if($User->hasRole('Admin'))
return true;
}
public function generateBarcode(User $User, TestType $TestType)
{
if($User->hasRole('Admin'))
return true;
}
}
+42 -42
View File
@@ -1,42 +1,42 @@
<?php␍
␍
namespace App\Policies;␍
␍
use App\User;␍
use Doctrine\Tests\Common\Inflector\InflectorTest;␍
␍
class UserPolicy␍
{␍
public function list(User $User)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
public function delete(User $User, User $Operator)␍
{␍
// if($User->hasRole('Admin') || $User->hasRole('Supervisor'))␍
return true;␍
}␍
␍
public function update(User $User, User $Operator)␍
{␍
// if($User->hasRole('Admin') || $User->id == $Operator->id)␍
return true;␍
}␍
␍
public function store(User $User)␍
{␍
// if($User->hasRole('Admin'))␍
return true;␍
}␍
public function changeRole(User $User)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
public function changeStatus(User $User)␍
{␍
if($User->hasRole('SuperAdmin|Admin'))␍
return true;␍
}␍
}␍
<?php
namespace App\Policies;
use App\User;
use Doctrine\Tests\Common\Inflector\InflectorTest;
class UserPolicy
{
public function list(User $User)
{
if($User->hasRole('Admin|Supervisor'))
return true;
}
public function delete(User $User, User $Operator)
{
if($User->hasRole('Admin') && $Operator->test_results->count() == 0 && $Operator->test_types->count() == 0)
return true;
}
public function update(User $User, User $Operator)
{
if($User->id == $Operator->id)
return true;
}
public function store(User $User)
{
if($User->hasRole('Admin'))
return true;
}
public function changeRole(User $User)
{
if($User->hasRole('Admin'))
return true;
}
public function changeStatus(User $User)
{
if($User->hasRole('Admin|Supervisor'))
return true;
}
}
+12 -12
View File
@@ -1,12 +1,12 @@
<?php␍
namespace App\Transformers;␍
class Json␍
{␍
public static function response($data = null, $message = null)␍
{␍
return [␍
'data' => $data,␍
'message' => $message,␍
];␍
}␍
}␍
<?php
namespace App\Transformers;
class Json
{
public static function response($data = null, $message = null)
{
return [
'data' => $data,
'message' => $message,
];
}
}