admin = $admin; } public function index() { 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() { $subAdmin = User::where(['role'=>1, 'status'=>1])->whereNotIn('id',[auth()->user()->id])->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', // 'contact_number' => 'required|unique:users,contact_number', // 'pan_no' => 'required|unique:users,pan_no', 'email' => 'required|unique:users,email', ], ['email.unique' => 'Email is not unique', 'name.required' => 'Name is required']); $validationMessage = $this->validationError($validator); if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage]); } $principalType = Iam_Principal_Type::find($request->role_type); // defining user type if ($request->role_type == 1) { $roleType = 1; } else if ($request->role_type == 2) { $roleType = 2; } else { $roleType = 0; } $addUser = User::insertGetId([ 'principal_type_xid' => $principalType->id, 'name' => $request->name, 'email' => $request->email, 'contact_number' => $request->mobile_number, 'role' => $roleType, ]); foreach ($request->all() as $key => $value) { if ($key == '_token' || $key == 'name' || $key == 'email' || $key == 'mobile_number' || $key == 'role_type') { continue; } else { $appResource = Iam_App_Resources::find($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($request->all()); $id = $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]); } public function updateSubAdmin(Request $request) { // dd($request->all()); // dd($request->ip()); $id = $request->id; // dd($id); $validator = Validator::make($request->all(), [ 'name' => 'required', // 'address' => 'required', // 'contact_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', 'name.required' => 'Name is required', 'email.required' => 'Email is required' ]); $validationMessage = $this->validationError($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($value); $addAppResourceActionLink = Iam_App_Resource_Action_Link::create([ 'user_xid' => $id, 'app_resource_xid' => $appResource->id, ]); } } } return response()->json(['status' => 200, 'message' => 'User Updated!']); } }