improve code in controller and forme requst
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\V3\Dashboard;
|
namespace App\Http\Controllers\V3\Dashboard;
|
||||||
|
|
||||||
|
use App\Facades\DataTable\DataTableFacade;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\V3\Dashboard\UserManagement\GivePermissionRequest;
|
use App\Http\Requests\V3\Dashboard\UserManagement\GivePermissionRequest;
|
||||||
use App\Http\Requests\V3\Dashboard\UserManagement\GiveRoleRequest;
|
use App\Http\Requests\V3\Dashboard\UserManagement\GiveRoleRequest;
|
||||||
@@ -25,58 +26,101 @@ class UserManagementController extends Controller
|
|||||||
{
|
{
|
||||||
use ApiResponse;
|
use ApiResponse;
|
||||||
|
|
||||||
|
// public function index(Request $request)
|
||||||
|
// {
|
||||||
|
// auth()->user()->addActivityComplete(1038);
|
||||||
|
//
|
||||||
|
// $province = $request->province ?? null;
|
||||||
|
// $city = $request->city ?? null;
|
||||||
|
// $province_office = $request->province_office ?? null;
|
||||||
|
//
|
||||||
|
// if (Auth::user()->checkUserHasPermission('full-user-management')) {
|
||||||
|
// $users = User::when($province, function ($query, $province) {
|
||||||
|
// return $query->where('province_id', $province);
|
||||||
|
// })
|
||||||
|
// ->when($city, function ($query, $city) {
|
||||||
|
// return $query->where('city_id', $city);
|
||||||
|
// })
|
||||||
|
// ->when($province_office, function ($query, $province_office) {
|
||||||
|
// if ($province_office == -1) {
|
||||||
|
// return $query->where('edarate_ostani_id', null)->whereNotNull('edarate_shahri_id');
|
||||||
|
// } else {
|
||||||
|
// return $query->where('edarate_ostani_id', $province_office);
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// ->with(['roles' => function ($query) {
|
||||||
|
// $query->where('for_report', 1);
|
||||||
|
// }])
|
||||||
|
// ->get();
|
||||||
|
// } elseif (Auth::user()->checkUserHasPermission('limited-user-management')) {
|
||||||
|
// $users = User::when($province, function ($query, $province) {
|
||||||
|
// return $query->where('province_id', $province);
|
||||||
|
// })
|
||||||
|
// ->where('province_id', Auth::user()->province_id)
|
||||||
|
// ->when($city, function ($query, $city) {
|
||||||
|
// return $query->where('city_id', $city);
|
||||||
|
// })
|
||||||
|
// ->when($province_office, function ($query, $province_office) {
|
||||||
|
// if ($province_office == -1) {
|
||||||
|
// return $query->where('edarate_ostani_id', null)->whereNotNull('edarate_shahri_id');
|
||||||
|
// } else {
|
||||||
|
// return $query->where('edarate_ostani_id', $province_office);
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// ->with(['roles' => function ($query) {
|
||||||
|
// $query->where('for_report', 1);
|
||||||
|
// }])
|
||||||
|
// ->get();
|
||||||
|
// } else {
|
||||||
|
// return response()->json([
|
||||||
|
// 'message' => 'Forbidden',
|
||||||
|
// ], 403);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return $this->successResponse($users);
|
||||||
|
// }
|
||||||
|
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
auth()->user()->addActivityComplete(1038);
|
$currentUser = Auth::user();
|
||||||
|
$currentUser->addActivityComplete(1038);
|
||||||
|
|
||||||
$province = $request->province ?? null;
|
$province = $request->province ?? null;
|
||||||
$city = $request->city ?? null;
|
$city = $request->city ?? null;
|
||||||
$province_office = $request->province_office ?? null;
|
$province_office = $request->province_office ?? null;
|
||||||
|
if (
|
||||||
if (Auth::user()->checkUserHasPermission('full-user-management')) {
|
! $currentUser->checkUserHasPermission('full-user-management') &&
|
||||||
$users = User::when($province, function ($query, $province) {
|
! $currentUser->checkUserHasPermission('limited-user-management')
|
||||||
return $query->where('province_id', $province);
|
) {
|
||||||
})
|
return response()->json(['message' => 'Forbidden'], 403);
|
||||||
->when($city, function ($query, $city) {
|
|
||||||
return $query->where('city_id', $city);
|
|
||||||
})
|
|
||||||
->when($province_office, function ($query, $province_office) {
|
|
||||||
if ($province_office == -1) {
|
|
||||||
return $query->where('edarate_ostani_id', null)->whereNotNull('edarate_shahri_id');
|
|
||||||
} else {
|
|
||||||
return $query->where('edarate_ostani_id', $province_office);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->with(['roles' => function ($query) {
|
|
||||||
$query->where('for_report', 1);
|
|
||||||
}])
|
|
||||||
->get();
|
|
||||||
} elseif (Auth::user()->checkUserHasPermission('limited-user-management')) {
|
|
||||||
$users = User::when($province, function ($query, $province) {
|
|
||||||
return $query->where('province_id', $province);
|
|
||||||
})
|
|
||||||
->where('province_id', Auth::user()->province_id)
|
|
||||||
->when($city, function ($query, $city) {
|
|
||||||
return $query->where('city_id', $city);
|
|
||||||
})
|
|
||||||
->when($province_office, function ($query, $province_office) {
|
|
||||||
if ($province_office == -1) {
|
|
||||||
return $query->where('edarate_ostani_id', null)->whereNotNull('edarate_shahri_id');
|
|
||||||
} else {
|
|
||||||
return $query->where('edarate_ostani_id', $province_office);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
->with(['roles' => function ($query) {
|
|
||||||
$query->where('for_report', 1);
|
|
||||||
}])
|
|
||||||
->get();
|
|
||||||
} else {
|
|
||||||
return response()->json([
|
|
||||||
'message' => 'Forbidden',
|
|
||||||
], 403);
|
|
||||||
}
|
}
|
||||||
|
$query = User::query()
|
||||||
|
->when($province, function ($query, $province) {
|
||||||
|
return $query->where('province_id', $province);
|
||||||
|
})
|
||||||
|
->with(['roles' => fn($q) => $q->where('for_report', 1)])
|
||||||
|
->when($city, function ($query, $city) {
|
||||||
|
return $query->where('city_id', $city);
|
||||||
|
})
|
||||||
|
->when($province_office, function ($query, $province_office) {
|
||||||
|
if ($province_office === -1) {
|
||||||
|
return $query->whereNull('edarate_ostani_id')->whereNotNull('edarate_shahri_id');
|
||||||
|
} else {
|
||||||
|
return $query->where('edarate_ostani_id', $province_office);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return $this->successResponse($users);
|
if ($currentUser->checkUserHasPermission('limited-user-management')) {
|
||||||
|
$query->where('province_id', $currentUser->province_id);
|
||||||
|
}
|
||||||
|
$data = DataTableFacade::run(
|
||||||
|
$query,
|
||||||
|
$request,
|
||||||
|
allowedFilters: ['*'],
|
||||||
|
allowedSortings: ['*']
|
||||||
|
);
|
||||||
|
|
||||||
|
return $this->successResponse($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function store(StoreRequest $request): jsonResponse
|
public function store(StoreRequest $request): jsonResponse
|
||||||
@@ -85,51 +129,53 @@ class UserManagementController extends Controller
|
|||||||
|
|
||||||
$user->addActivityComplete(1039);
|
$user->addActivityComplete(1039);
|
||||||
|
|
||||||
User::query()->create([
|
$createdUser = DB::transaction(function () use ($request) {
|
||||||
'username' => $request->username,
|
$user = User::query()->create([
|
||||||
'national_code' => $request->national_code,
|
'username' => $request->username,
|
||||||
'password' => Hash::make($request->password),
|
'national_code' => $request->national_code,
|
||||||
'province_id' => $request->province_id ?: null,
|
'password' => Hash::make($request->password),
|
||||||
'city_id' => $request->city_id ?: null,
|
'province_id' => $request->province_id ?: null,
|
||||||
'edarate_ostani_id' => $request->edarate_ostani_id,
|
'city_id' => $request->city_id ?: null,
|
||||||
'edarate_shahri_id' => $request->edarate_shahri_id,
|
'edarate_ostani_id' => $request->edarate_ostani_id,
|
||||||
'first_name' => $request->first_name,
|
'edarate_shahri_id' => $request->edarate_shahri_id,
|
||||||
'last_name' => $request->last_name,
|
'first_name' => $request->first_name,
|
||||||
'position' => $request->position,
|
'last_name' => $request->last_name,
|
||||||
'mobile' => $request->mobile,
|
'position' => $request->position,
|
||||||
'degree' => $request->degree,
|
'mobile' => $request->mobile,
|
||||||
'major' => $request->major,
|
'degree' => $request->degree,
|
||||||
]);
|
'major' => $request->major,
|
||||||
|
]);
|
||||||
|
|
||||||
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
|
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
|
||||||
|
|
||||||
$user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa;
|
$user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa;
|
||||||
|
|
||||||
if ($request->edarate_ostani_id != 'null') {
|
if ($request->edarate_ostani_id != null) {
|
||||||
$temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
|
$temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
|
||||||
$user->edarate_ostani_id = $request->edarate_ostani_id;
|
$user->edarate_ostani_id = $request->edarate_ostani_id;
|
||||||
$user->edarate_ostani_name = $temp;
|
$user->edarate_ostani_name = $temp;
|
||||||
if ($request->province_id == 0) {
|
if ($request->province_id == 0) {
|
||||||
$user->name = $temp.' '.$user->province_fa;
|
$user->name = $temp.' '.$user->province_fa;
|
||||||
|
} else {
|
||||||
|
$user->name = $temp.' استان '.$user->province_fa;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$user->name = $temp.' استان '.$user->province_fa;
|
$temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
||||||
|
$user->edarate_shahri_id = $request->edarate_shahri_id;
|
||||||
|
$user->edarate_shahri_name = $temp;
|
||||||
|
|
||||||
|
if ($request->province_id == 0) {
|
||||||
|
$user->name = $temp.' '.$user->province_fa;
|
||||||
|
} else {
|
||||||
|
$user->name = $temp.' استان '.$user->province_fa;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
$user->save();
|
||||||
$temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
|
||||||
$user->edarate_shahri_id = $request->edarate_shahri_id;
|
|
||||||
$user->edarate_shahri_name = $temp;
|
|
||||||
|
|
||||||
if ($request->province_id == 0) {
|
return $user;
|
||||||
$user->name = $temp.' '.$user->province_fa;
|
});
|
||||||
} else {
|
|
||||||
$user->name = $temp.' استان '.$user->province_fa;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$user->password = Hash::make($request->password);
|
return $this->successResponse($createdUser);
|
||||||
$user->national_code = $request->national_code;
|
|
||||||
|
|
||||||
return $this->successResponse($user);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show(User $user)
|
public function show(User $user)
|
||||||
@@ -142,47 +188,47 @@ class UserManagementController extends Controller
|
|||||||
public function update(UpdateRequest $request, User $user): JsonResponse
|
public function update(UpdateRequest $request, User $user): JsonResponse
|
||||||
{
|
{
|
||||||
auth()->user()->addActivityComplete(1040);
|
auth()->user()->addActivityComplete(1040);
|
||||||
|
$createdUser = DB::transaction(function () use ($request, $user) {
|
||||||
|
|
||||||
$user->update([
|
$user->update([
|
||||||
'username' => $request->username,
|
'username' => $request->username,
|
||||||
'national_code' => $request->national_code,
|
'national_code' => $request->national_code,
|
||||||
'password' => Hash::make($request->password),
|
'province_id' => $request->province_id ?: null,
|
||||||
'province_id' => $request->province_id ?: null,
|
'city_id' => $request->city_id ?: null,
|
||||||
'city_id' => $request->city_id ?: null,
|
'edarate_ostani_id' => $request->edarate_ostani_id,
|
||||||
'edarate_ostani_id' => $request->edarate_ostani_id,
|
'edarate_shahri_id' => $request->edarate_shahri_id,
|
||||||
'edarate_shahri_id' => $request->edarate_shahri_id,
|
'first_name' => $request->first_name,
|
||||||
'first_name' => $request->first_name,
|
'last_name' => $request->last_name,
|
||||||
'last_name' => $request->last_name,
|
'position' => $request->position,
|
||||||
'position' => $request->position,
|
'mobile' => $request->mobile,
|
||||||
'mobile' => $request->mobile,
|
'degree' => $request->degree,
|
||||||
'degree' => $request->degree,
|
'major' => $request->major,
|
||||||
'major' => $request->major,
|
]);
|
||||||
]);
|
|
||||||
|
|
||||||
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
|
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
|
||||||
|
|
||||||
$user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa;
|
$user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa;
|
||||||
|
|
||||||
if ($request->edarate_ostani_id != 'null') {
|
if ($request->edarate_ostani_id != null) {
|
||||||
$temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
|
$temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
|
||||||
$user->edarate_ostani_id = $request->edarate_ostani_id;
|
$user->edarate_ostani_id = $request->edarate_ostani_id;
|
||||||
$user->edarate_ostani_name = $temp;
|
$user->edarate_ostani_name = $temp;
|
||||||
if ($request->province_id == 0) {
|
if ($request->province_id == 0) {
|
||||||
$user->name = $temp.' '.$user->province_fa;
|
$user->name = $temp . ' ' . $user->province_fa;
|
||||||
|
} else {
|
||||||
|
$user->name = $temp . ' استان ' . $user->province_fa;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$user->name = $temp.' استان '.$user->province_fa;
|
$temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
||||||
}
|
$user->edarate_shahri_id = $request->edarate_shahri_id;
|
||||||
} else {
|
$user->edarate_shahri_name = $temp;
|
||||||
$temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
|
||||||
$user->edarate_shahri_id = $request->edarate_shahri_id;
|
|
||||||
$user->edarate_shahri_name = $temp;
|
|
||||||
|
|
||||||
if ($request->province_id == 0) {
|
if ($request->province_id == 0) {
|
||||||
$user->name = $temp.' '.$user->province_fa;
|
$user->name = $temp . ' ' . $user->province_fa;
|
||||||
} else {
|
} else {
|
||||||
$user->name = $temp.' استان '.$user->province_fa;
|
$user->name = $temp . ' استان ' . $user->province_fa;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (! is_null($request->password)) {
|
if (! is_null($request->password)) {
|
||||||
$user->password = Hash::make($request->password);
|
$user->password = Hash::make($request->password);
|
||||||
@@ -192,13 +238,14 @@ class UserManagementController extends Controller
|
|||||||
$user->syncPermissions(explode(',', $request->permissions));
|
$user->syncPermissions(explode(',', $request->permissions));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->filled('roles')) {
|
if ($request->filled('roles')) {
|
||||||
$user->syncRoles($request->roles);
|
$user->syncRoles($request->roles);
|
||||||
}
|
}
|
||||||
|
|
||||||
$user->save();
|
$user->save();
|
||||||
|
});
|
||||||
|
|
||||||
return $this->successResponse($user);
|
return $this->successResponse($createdUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function destroy(User $user)
|
public function destroy(User $user)
|
||||||
|
|||||||
@@ -30,6 +30,12 @@ class StoreRequest extends FormRequest
|
|||||||
'username' => 'required|unique:users,username',
|
'username' => 'required|unique:users,username',
|
||||||
'national_code' => 'unique:users,national_code',
|
'national_code' => 'unique:users,national_code',
|
||||||
'password' => 'required|min:8',
|
'password' => 'required|min:8',
|
||||||
|
'first_name' => 'required|string',
|
||||||
|
'last_name' => 'required|string',
|
||||||
|
'position' => 'required|string',
|
||||||
|
'mobile' => 'required|string',
|
||||||
|
'degree' => 'required|string',
|
||||||
|
'major' => 'required|string',
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,12 @@ class UpdateRequest extends FormRequest
|
|||||||
'username' => ['required', Rule::unique('users', 'username')->ignore($this->user->id)],
|
'username' => ['required', Rule::unique('users', 'username')->ignore($this->user->id)],
|
||||||
'national_code' => ['required', Rule::unique('users', 'national_code')->ignore($this->user->id)],
|
'national_code' => ['required', Rule::unique('users', 'national_code')->ignore($this->user->id)],
|
||||||
'password' => 'required|min:8',
|
'password' => 'required|min:8',
|
||||||
|
'first_name' => 'required|string',
|
||||||
|
'last_name' => 'required|string',
|
||||||
|
'position' => 'required|string',
|
||||||
|
'mobile' => 'required|string',
|
||||||
|
'degree' => 'required|string',
|
||||||
|
'major' => 'required|string',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user