create new userManagement
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
namespace App\Http\Controllers\V3\Dashboard;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V3\Dashboard\UserManagement\GivePermissionRequest;
|
||||
use App\Http\Requests\V3\Dashboard\UserManagement\GiveRoleRequest;
|
||||
use App\Http\Requests\V3\Dashboard\UserManagement\PermissionUpdateRequest;
|
||||
use App\Http\Requests\V3\Dashboard\UserManagement\StoreRequest;
|
||||
use App\Http\Requests\V3\Dashboard\UserManagement\UpdateRequest;
|
||||
@@ -25,15 +27,8 @@ use Illuminate\Support\Facades\Storage;
|
||||
class UserManagementController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
// public function index()
|
||||
// {
|
||||
// if (Auth::user()->can('full-user-managment') || Auth::user()->can('limited-user-management')) {
|
||||
// return view('version2.dashboard_pages.user_management.list');
|
||||
// }
|
||||
//
|
||||
// abort(403);
|
||||
// }
|
||||
public function indexUser(Request $request)
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
auth()->user()->addActivityComplete(1038);
|
||||
|
||||
@@ -88,25 +83,28 @@ class UserManagementController extends Controller
|
||||
|
||||
public function store(StoreRequest $request): jsonResponse
|
||||
{
|
||||
auth()->user()->addActivityComplete(1039);
|
||||
$user = auth()->user();
|
||||
|
||||
$user ->addActivityComplete(1039);
|
||||
|
||||
User::query()->create([
|
||||
'username' => $request->username,
|
||||
'national_code' => $request->national_code,
|
||||
'password' => Hash::make($request->password),
|
||||
'province_id' => $request->province_id,
|
||||
'edarate_ostani_id' => $request->edarate_ostani_id,
|
||||
'city_id' => $request->city_id,
|
||||
'edarate_shahri_id' => $request->edarate_shahri_id,
|
||||
'username' => $request->username,
|
||||
'national_code' => $request->national_code,
|
||||
'password' => Hash::make($request->password),
|
||||
'province_id' => $request->province_id ?: null,
|
||||
'city_id' => $request->city_id ?: null,
|
||||
'edarate_ostani_id' => $request->edarate_ostani_id,
|
||||
'edarate_shahri_id' => $request->edarate_shahri_id,
|
||||
'first_name' => $request->first_name,
|
||||
'last_name' => $request->last_name,
|
||||
'position' => $request->position,
|
||||
'mobile' => $request->mobile,
|
||||
'degree' => $request->degree,
|
||||
'major' => $request->major,
|
||||
]);
|
||||
|
||||
$user = new User();
|
||||
$user->username = $request->username;
|
||||
|
||||
$user->province_id = $request->province_id == 0 ? null : $request->province_id;
|
||||
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
|
||||
|
||||
$user->city_id = $request->city_id == 0 ? null : $request->city_id;
|
||||
$user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa ;
|
||||
|
||||
if ($request->edarate_ostani_id != 'null') {
|
||||
@@ -132,8 +130,6 @@ class UserManagementController extends Controller
|
||||
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->national_code = $request->national_code;
|
||||
$user->save();
|
||||
|
||||
|
||||
return $this->successResponse($user);
|
||||
}
|
||||
@@ -141,39 +137,37 @@ class UserManagementController extends Controller
|
||||
public function show(User $user)
|
||||
{
|
||||
$user = User::where('id', $user->id)->with(['roles', 'permissions'])->get();
|
||||
return response()->json([
|
||||
'status' => '200',
|
||||
'message' => 'success',
|
||||
'data' => $user
|
||||
], 200);
|
||||
return $this->successResponse($user);
|
||||
}
|
||||
|
||||
public function update(UpdateRequest $request, User $user): JsonResponse
|
||||
{
|
||||
auth()->user()->addActivityComplete(1040);
|
||||
|
||||
$user->update([
|
||||
'username' => $request->username,
|
||||
'national_code' => $request->national_code,
|
||||
'password' => Hash::make($request->password),
|
||||
'province_id' => $request->province_id,
|
||||
'edarate_ostani_id' => $request->edarate_ostani_id,
|
||||
'city_id' => $request->city_id,
|
||||
'edarate_shahri_id' => $request->edarate_shahri_id,
|
||||
'username' => $request->username,
|
||||
'national_code' => $request->national_code,
|
||||
'password' => Hash::make($request->password),
|
||||
'province_id' => $request->province_id ?: null,
|
||||
'city_id' => $request->city_id ?: null,
|
||||
'edarate_ostani_id' => $request->edarate_ostani_id,
|
||||
'edarate_shahri_id' => $request->edarate_shahri_id,
|
||||
'first_name' => $request->first_name,
|
||||
'last_name' => $request->last_name,
|
||||
'position' => $request->position,
|
||||
'mobile' => $request->mobile,
|
||||
'degree' => $request->degree,
|
||||
'major' => $request->major,
|
||||
]);
|
||||
|
||||
$user->province_id = $request->province_id == 0 ? null : $request->province_id;
|
||||
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
|
||||
|
||||
$user->city_id = $request->city_id == 0 ? null : $request->city_id;
|
||||
$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;
|
||||
$user->edarate_ostani_id = $request->edarate_ostani_id;
|
||||
$user->edarate_ostani_name = $temp;
|
||||
|
||||
$user->edarate_shahri_id = null;
|
||||
$user->edarate_shahri_name = null;
|
||||
|
||||
if ($request->province_id == 0) {
|
||||
$user->name = $temp .' '. $user->province_fa;
|
||||
} else {
|
||||
@@ -183,8 +177,7 @@ class UserManagementController extends Controller
|
||||
$temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
||||
$user->edarate_shahri_id = $request->edarate_shahri_id;
|
||||
$user->edarate_shahri_name = $temp;
|
||||
$user->edarate_ostani_id = null;
|
||||
$user->edarate_ostani_name = null;
|
||||
|
||||
if ($request->province_id == 0) {
|
||||
$user->name = $temp .' '. $user->province_fa;
|
||||
} else {
|
||||
@@ -192,40 +185,58 @@ class UserManagementController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$user->first_name = $request->first_name;
|
||||
$user->last_name = $request->last_name;
|
||||
$user->position = $request->position;
|
||||
$user->mobile = $request->mobile;
|
||||
$user->degree = $request->degree;
|
||||
$user->major = $request->major;
|
||||
$user->national_code = $request->national_code;
|
||||
|
||||
if (!is_null($request->password)) {
|
||||
$request->validate([
|
||||
'password' => ['string']
|
||||
]);
|
||||
$user->password = Hash::make($request->password);
|
||||
}
|
||||
|
||||
if (! $request->permissions == null) {
|
||||
if (!is_null($request->permissions)) {
|
||||
$user->syncPermissions(explode(",", $request->permissions));
|
||||
}
|
||||
|
||||
$roles = $request->only('roles');
|
||||
if (! $roles == null) {
|
||||
$user->syncRoles($roles);
|
||||
if ($request->filled('roles')) {
|
||||
$user->syncRoles($request->roles);
|
||||
}
|
||||
|
||||
$user->save();
|
||||
|
||||
if (auth()->user()) {
|
||||
auth()->user()->addActivityComplete(1040, $user);
|
||||
}
|
||||
return $this->successResponse($user);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'message' => 'success',
|
||||
'data' => $user
|
||||
]);
|
||||
public function destroy(User $user)
|
||||
{
|
||||
$user->delete();
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function givePermissionsTo(GivePermissionRequest $request,User $user): JsonResponse
|
||||
{
|
||||
|
||||
$user->givePermissionTo($request->permissions);
|
||||
|
||||
return $this->successResponse($user->load('permissions'));
|
||||
}
|
||||
|
||||
public function givePermissionsToRole(GivePermissionRequest $request, Role $role): JsonResponse
|
||||
{
|
||||
$permissionId = $request->permissions;
|
||||
$role->syncPermissions($permissionId);
|
||||
|
||||
return $this->successResponse($role->load('permissions'));
|
||||
}
|
||||
public function giveRolesToUser(GiveRoleRequest $request, User $user): JsonResponse
|
||||
{
|
||||
$roles = $request->roles;
|
||||
|
||||
$user->assignRole($roles);
|
||||
|
||||
return $this->successResponse($user->load('roles'));
|
||||
}
|
||||
|
||||
public function getUserPermissions(): JsonResponse
|
||||
{
|
||||
$userPermissions = Auth::user()->getUserPermissions();
|
||||
|
||||
return $this->successResponse($userPermissions);
|
||||
}
|
||||
|
||||
public function activityReport()
|
||||
@@ -254,9 +265,8 @@ class UserManagementController extends Controller
|
||||
User::whereIn('id', $user_ids)->update([
|
||||
'confirmed' => $request->confirm
|
||||
]);
|
||||
return response()->json([
|
||||
'status' => 'succeed',
|
||||
]);
|
||||
return $this->successResponse();
|
||||
|
||||
}
|
||||
|
||||
public function changePassword(User $user, Request $request)
|
||||
@@ -266,70 +276,9 @@ class UserManagementController extends Controller
|
||||
]);
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->save();
|
||||
return response()->json(['message' => "password changed successfully!!!!"], 200);
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function givePermissionsTo(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'user_ids' => 'required|regex:/^(\d+)(,\d+)*$/',
|
||||
'permission_ids' => 'required',
|
||||
]);
|
||||
|
||||
$user_ids = explode(",", $request->user_ids);
|
||||
$permission_ids = $request->permission_ids;
|
||||
|
||||
User::whereIn('id', $user_ids)->get()->each(function ($user) use ($permission_ids) {
|
||||
$user->syncPermissions($permission_ids);
|
||||
});
|
||||
|
||||
return response()->json([
|
||||
'status' => 'succeed',
|
||||
'message' => 'permissions assigned to users succussfully.'
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'user_ids' => 'required|regex:/^(\d+)(,\d+)*$/',
|
||||
]);
|
||||
|
||||
$user_ids = explode(',', $request->user_ids);
|
||||
|
||||
foreach ($user_ids as $id) {
|
||||
$user = User::find($id);
|
||||
|
||||
if ($user->avatar) {
|
||||
if (Storage::disk('public')->exists(str_replace('storage/', '', $user->avatar))) {
|
||||
Storage::disk('public')->delete(str_replace('storage/', '', $user->avatar));
|
||||
}
|
||||
}
|
||||
|
||||
if ($user->photo) {
|
||||
if (Storage::disk('public')->exists(str_replace('storage/', '', $user->photo))) {
|
||||
Storage::disk('public')->delete(str_replace('storage/', '', $user->photo));
|
||||
}
|
||||
}
|
||||
|
||||
$user->delete();
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 200,
|
||||
'message' => 'The users deleted succussfully.'
|
||||
]);
|
||||
}
|
||||
|
||||
public function getUserPermissions()
|
||||
{
|
||||
$userPermissions = Auth::user()->getUserPermissions();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'success',
|
||||
'data' => $userPermissions
|
||||
]);
|
||||
}
|
||||
|
||||
public function getUserSummaryReport(Request $request, User $user)
|
||||
{
|
||||
@@ -650,43 +599,15 @@ class UserManagementController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function showAllRoles(Request $request)
|
||||
{
|
||||
$roles = Role::where('for_report', 0)->get();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'success',
|
||||
'data' => $roles
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteRole(Request $request, $id)
|
||||
{
|
||||
if (auth()->user()) {
|
||||
auth()->user()->addActivityComplete(1045);
|
||||
}
|
||||
$role = Role::find($id)->delete();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'success',
|
||||
'data' => 1
|
||||
]);
|
||||
}
|
||||
|
||||
public function changeUserEnabeld(User $user)
|
||||
{
|
||||
if (Auth::user()->checkUserHasPermission('full-user-management')) {
|
||||
$user->enabled = !$user->enabled;
|
||||
$user->save();
|
||||
return response()->json([
|
||||
'message' => 'success'
|
||||
], 200);
|
||||
return $this->successResponse($user);
|
||||
} elseif (Auth::user()->checkUserHasPermission('limited-user-management') && Auth::user()->province_id == $user->province_id) {
|
||||
$user->enabled = !$user->enabled;
|
||||
$user->save();
|
||||
return response()->json([
|
||||
'message' => 'success'
|
||||
], 200);
|
||||
return $this->successResponse();
|
||||
} else {
|
||||
return response()->json([
|
||||
'message' => 'Forbidden'
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\Dashboard\UserManagement;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class GivePermissionRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'permissions' => 'array',
|
||||
'permissions.*' => 'integer|exists:permissions,id'
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\Dashboard\UserManagement;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class GiveRoleRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'roles' => 'array',
|
||||
'roles.*' => 'integer|exists:permissions,id'
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Requests\V3\Dashboard\UserManagement;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
@@ -18,7 +19,7 @@ class UpdateRequest extends FormRequest
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
* @return array<string, ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
|
||||
@@ -17,7 +17,7 @@ class Harim extends Model
|
||||
return $this->hasMany(HarimHistory::class);
|
||||
}
|
||||
|
||||
protected function polygon(): Attribute
|
||||
protected function primaryArea(): Attribute
|
||||
{
|
||||
return Attribute::make(
|
||||
get: fn($value) => json_decode($value)
|
||||
|
||||
@@ -26,7 +26,10 @@ class User extends Authenticatable
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name', 'email', 'major', 'password', 'username', 'first_name', 'last_name', 'position', 'mobile', 'province_id', 'city_id', 'confirmed', 'enabled', 'avatar', 'city_fa', 'province_fa', 'degree'
|
||||
'name', 'email', 'major', 'password', 'username', 'first_name', 'last_name', 'position', 'mobile', 'province_id', 'city_id', 'confirmed', 'enabled', 'avatar', 'city_fa', 'province_fa', 'degree',
|
||||
'national_code',
|
||||
'edarate_ostani_id',
|
||||
'edarate_shahri_id'
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -587,7 +587,14 @@ Route::prefix('user_management')
|
||||
->controller(UserManagementController::class)
|
||||
->group(function () {
|
||||
// Route::get('/', 'index')->name('index');
|
||||
Route::get('/index_user', 'indexUser')->name('indexUser');
|
||||
Route::get('/', 'index')->name('index');
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::get('/{user}', 'show')->name('show');
|
||||
Route::post('/{user}', 'update')->name('update');
|
||||
Route::delete('/{user}', 'destroy')->name('destroy');
|
||||
Route::post('/give_permissions_to', 'givePermissionsTo')->name('givePermissionsTo');
|
||||
Route::post('/give_permissions_to_role', 'givePermissionsToRole')->name('givePermissionsToRole');
|
||||
Route::post('/give_roles_to_user','giveRolesToUser')->name('giveRolesToUser');
|
||||
Route::get('/activity_report', 'activityReport')->name('activityReport');
|
||||
Route::get('/userActivityLogs', 'userActivityLogs')->name('userActivityLogs');
|
||||
Route::post('/change_confirmed_status', 'changeConfirmedStatus')->name('changeConfirmedStatus');
|
||||
@@ -597,16 +604,8 @@ Route::prefix('user_management')
|
||||
Route::get('/print_group', 'printGroup')->name('printGroup');
|
||||
Route::get('/user_permission', 'userPermission')->name('userPermission');
|
||||
Route::get('/assign_permission', 'assignPermission')->name('assignPermission');
|
||||
Route::get('/show_all_roles', 'showAllRoles')->name('showAllRoles');
|
||||
Route::post('/change_user_enabeld','changeUserEnabeld')->name('changeUserEnabeld');
|
||||
Route::post('/','store')->name('store');
|
||||
Route::post('/create_role','createRole')->name('createRole');
|
||||
Route::post('/edit_role','editRole')->name('editRole');
|
||||
Route::get('/{user}', 'show')->name('show');
|
||||
Route::post('/{user}', 'update')->name('update');
|
||||
Route::delete('/{user}', 'destroy')->name('destroy');
|
||||
Route::post('/change_password/{user}', 'changePassword')->name('changePassword');
|
||||
Route::post('delete-role/{id}', 'deleteRole')->name('deleteRole');
|
||||
});
|
||||
Route::prefix('role')
|
||||
->name('role.')
|
||||
|
||||
Reference in New Issue
Block a user