admin = $admin; } public function index() { $check = checkSidebarAccess('user-list'); if (!$check) { abort(404); } return view('Admin.Pages.manage_sub_admin.manage_sub_admin', [ 'users' => $this->admin->getAllAdmin() ]); } // public function role_list() // { // return view('Admin.Pages.manage_sub_admin.role_list'); // } // public function view_role() // { // return view('Admin.Pages.manage_sub_admin.view_role'); // } public function status(Request $request) { $statusChanged = $this->admin->changeStatus($request); return $statusChanged ? $this->response('Status Changed!', 200) : $this->response('Error Changing Status!', 400); } public function listSubAdmin() { $check = checkSidebarAccess('sub-admin'); if (!$check) { abort(404); } $subAdmin = User::where(['role' => 2, 'status' => 1])->whereNotIn('id', [auth()->user()->id])->orderBy('last_login','desc')->get(); // $subAdmin = User::where('status', 1)->whereIn('role', ['1', '2'])->whereNotIn('id', [auth()->user()->id])->latest()->get(); // dd($subAdmin); return view('Admin.sub_admin_list', ['subAdmin' => $subAdmin]); } public function addSubAdmin(Request $request) { // dd($request->all()); $validator = Validator::make($request->post(), [ 'name' => 'required', // 'address' => 'required', 'mobile_number' => 'required', 'password' => 'required', 'email' => 'required', ], [ 'unique' => ':attribute should be unique', 'required' => ':attribute is required' ]); $validationMessage = validationErrorMessage($validator); if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage]); } // $principalType = Iam_Principal_Type::find($request->role_type); $alreadyExists = User::where('email',$request->email)->orWhere('contact_number',$request->contact_number)->exists(); if($alreadyExists) { return response()->json(['status' => 400, 'message' =>'email or mobile number already exists']); } // defining user type if ($request->role_type == 1) { $roleType = 1; } else if ($request->role_type == 2) { $roleType = 2; } else { $roleType = 0; } // dd(Hash::make($request->password)); $addUser = User::insertGetId([ // 'principal_type_xid' => $principalType->id, 'name' => $request->name, 'email' => $request->email, 'contact_number' => $request->mobile_number, 'password' => Hash::make($request->password), 'role' => $roleType, ]); // $addUser = null; if ($addUser == null) { return response()->json(['status' => 400, 'message' => 'Something error!']); } // dd('hello'); foreach ($request->all() as $key => $value) { if ($key == '_token' || $key == 'name' || $key == 'email' || $key == 'mobile_number' || $key == 'role_type' || $key == 'password') { continue; } else { // dd($value ); $appResource = Iam_App_Resources::find((int)$value); $addAppResourceActionLink = Iam_App_Resource_Action_Link::create([ 'user_xid' => $addUser, 'app_resource_xid' => $appResource->id, ]); } } return response()->json(['status' => 200, 'message' => 'User Added!']); } public function viewSubAdmin(Request $request) { // dd((int)$request->id); $id = (int)$request->id; $user = User::find($id); $accessPage = Iam_App_Resource_Action_Link::where('user_xid', $id)->pluck('app_resource_xid'); // dd($accessPage); return view('Admin.view-sub-admin', ['user' => $user, 'accessPage' => $accessPage, 'id' => $id]); } public function updateSubAdmin(Request $request) { // dd($request->all()); // dd($request->ip()); $id = (int)$request->id; // dd($id); $validator = Validator::make($request->all(), [ 'name' => 'required', // 'address' => 'required', 'mobile_number' => 'required|unique:users,contact_number,' . $id . '', // 'pan_no' => 'required|unique:users,pan_no,' . $id . '', 'email' => 'required|unique:users,email,' . $id . '', ], [ 'email.unique' => 'Email is not unique', 'mobile_number.unique' => 'Mobile Number is not unique', 'name.required' => 'Name is required', 'email.required' => 'Email is required' ]); $validationMessage = validationErrorMessage($validator); if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage]); } $updateUser = User::where('id', $id)->update([ 'name' => $request->name, // 'address' => $request->address, 'contact_number' => $request->mobile_number, 'role' => $request->role_type, 'email' => $request->email, ]); // getting old resource access id $oldAccessResourceId = array(); $olddata = Iam_App_Resource_Action_Link::where('user_xid', $id)->pluck('app_resource_xid'); foreach ($olddata as $oldAppId) { array_push($oldAccessResourceId, $oldAppId); } // getting new access id $newAccessResourceId = array(); foreach ($request->all() as $key => $value) { if ($key == '_token' || $key == '_method' || $key == 'id' || $key == 'name' || $key == 'email' || $key == 'role_type' || $key == 'mobile_number') { continue; } else { array_push($newAccessResourceId, intval($value)); } } // dd($newAccessResourceId); // getting id for removing $removeOldResourceAccessId = array_diff($oldAccessResourceId, $newAccessResourceId); // removing old access foreach ($removeOldResourceAccessId as $oldAccessId) { Iam_App_Resource_Action_Link::where(['user_xid' => $id, 'app_resource_xid' => $oldAccessId])->delete(); } // adding new access id foreach ($request->all() as $key => $value) { if ($key == '_token' || $key == '_method' || $key == 'id' || $key == 'name' || $key == 'email' || $key == 'mobile_number' || $key == 'role_type') { continue; } else { // dd($request->post()); $checkAccess = Iam_App_Resource_Action_Link::where(['user_xid' => $id, 'app_resource_xid' => $value])->doesntExist(); if ($checkAccess) { $appResource = Iam_App_Resources::find((int)$value); $addAppResourceActionLink = Iam_App_Resource_Action_Link::create([ 'user_xid' => $id, 'app_resource_xid' => $appResource->id, ]); } } } return response()->json(['status' => 200, 'message' => 'User Updated!']); } public function editSubAdmin(Request $request) { $id = (int)$request->id; $user = User::find($id); $accessPage = Iam_App_Resource_Action_Link::where('user_xid', $id)->pluck('app_resource_xid'); return view('Admin.edit-sub-admin', ['user' => $user, 'accessPage' => $accessPage, 'id' => $id]); } }