JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrcan('Manage User')) { $user = \Auth::user(); if (\Auth::user()->type == 'super admin') { $users = User::where('created_by', '=', $user->creatorId())->where('type', '=', 'company')->with('currentPlan')->get(); $CountUser = User::where('created_by')->get(); } else { $users = User::where('created_by', '=', $user->creatorId())->where('type', '!=', 'employee')->get(); } return view('user.index', compact('users')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function create() { if (\Auth::user()->can('Create User')) { $user = \Auth::user(); $roles = Role::where('created_by', '=', $user->creatorId())->where('name', '!=', 'employee')->get()->pluck('name', 'id'); $roles->prepend('Select Role', ''); return view('user.create', compact('roles')); } else { return response()->json(['error' => __('Permission denied.')], 401); } } public function store(Request $request) { if (\Auth::user()->can('Create User')) { $default_language = DB::table('settings')->select('value')->where('name', 'default_language')->where('created_by', \Auth::user()->creatorId())->first(); // new company default language if ($default_language == null) { $default_language = DB::table('settings')->select('value')->where('name', 'default_language')->first(); } $validator = \Validator::make( $request->all(), [ 'name' => 'required', 'email' => 'required|unique:users', // 'password' => 'required', ] ); if ($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } if (!empty($request->password_switch) && $request->password_switch == 'on') { $validator = \Validator::make( $request->all(), ['password' => 'required|min:6'] ); if ($validator->fails()) { return redirect()->back()->with('error', $validator->errors()->first()); } } do { $code = rand(100000, 999999); } while (User::where('referral_code', $code)->exists()); if (\Auth::user()->type == 'super admin') { $date = date("Y-m-d H:i:s"); $userpassword = $request->input('password'); $user = User::create( [ 'name' => $request['name'], 'email' => $request['email'], 'is_login_enable' => !empty($request->password_switch) && $request->password_switch == 'on' ? 1 : 0, 'password' => !empty($userpassword) ? Hash::make($userpassword) : null, 'type' => 'company', 'plan' => $plan = Plan::where('price', '<=', 0)->first()->id, 'lang' => !empty($default_language) ? $default_language->value : 'en', 'referral_code' => $code, 'created_by' => \Auth::user()->id, 'email_verified_at' => $date, ] ); $user->assignRole('Company'); $user->userDefaultData(); $user->userDefaultDataRegister($user->id); GenerateOfferLetter::defaultOfferLetterRegister($user->id); ExperienceCertificate::defaultExpCertificatRegister($user->id); JoiningLetter::defaultJoiningLetterRegister($user->id); NOC::defaultNocCertificateRegister($user->id); Utility::jobStage($user->id); $role_r = Role::findById(2); //create company default roles Utility::MakeRole($user->id); } else { $objUser = \Auth::user()->creatorId(); $objUser = User::find($objUser); $total_user = $objUser->countUsers(); $plan = Plan::find($objUser->plan); $userpassword = $request->input('password'); if ($total_user < $plan->max_users || $plan->max_users == -1) { $role_r = Role::findById($request->role); $date = date("Y-m-d H:i:s"); $user = User::create( [ 'name' => $request['name'], 'email' => $request['email'], 'is_login_enable' => !empty($request->password_switch) && $request->password_switch == 'on' ? 1 : 0, 'password' => !empty($userpassword) ? Hash::make($userpassword) : null, 'type' => $role_r->name, 'lang' => !empty($default_language) ? $default_language->value : 'en', 'created_by' => \Auth::user()->creatorId(), 'email_verified_at' => $date, ] ); $user->assignRole($role_r); } else { return redirect()->back()->with('error', __('Your user limit is over, Please upgrade plan.')); } } $setings = Utility::settings(); if ($setings['new_user'] == 1) { $uArr = [ 'email' => $user->email, 'password' => $request->password, ]; $resp = Utility::sendEmailTemplate('new_user', [$user->id => $user->email], $uArr); return redirect()->route('user.index')->with('success', __('User successfully created.') . ((!empty($resp) && $resp['is_success'] == false && !empty($resp['error'])) ? '
' . $resp['error'] . '' : '')); } return redirect()->route('user.index')->with('success', __('User successfully created.')); } else { return response()->json(['error' => __('Permission denied.')], 401); } } public function show(User $user) { return view('profile.index'); } public function edit($id) { if (\Auth::user()->can('Edit User')) { $user = User::find($id); $roles = Role::where('created_by', '=', $user->creatorId())->where('name', '!=', 'employee')->get()->pluck('name', 'id'); $roles->prepend('Select Role', ''); return view('user.edit', compact('user', 'roles')); } else { return response()->json(['error' => __('Permission denied.')], 401); } } public function update(Request $request, $id) { $validator = \Validator::make( $request->all(), [ 'name' => 'required', 'email' => 'unique:users,email,' . $id, ] ); if ($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } if (\Auth::user()->type == 'super admin') { $user = User::findOrFail($id); $input = $request->all(); $user->fill($input)->save(); } else { $user = User::findOrFail($id); $role = Role::findById($request->role); $input = $request->all(); $input['type'] = $role->name; $user->fill($input)->save(); $user->assignRole($role); } return redirect()->route('user.index')->with('success', 'User successfully updated.'); } public function destroy($id) { if (\Auth::user()->can('Delete User')) { $user = User::findOrFail($id); $sub_employee = Employee::where('created_by', $user->id)->delete(); $sub_user = User::where('created_by', $user->id)->delete(); $user->delete(); return redirect()->route('user.index')->with('success', 'User successfully deleted.'); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function profile() { $userDetail = \Auth::user(); return view('user.profile')->with('userDetail', $userDetail); } public function editprofile(Request $request) { $userDetail = \Auth::user(); $user = User::findOrFail($userDetail['id']); $validator = \Validator::make( $request->all(), [ 'name' => 'required|max:120', 'email' => 'required|email|unique:users,email,' . $userDetail['id'], // 'profile' => 'required', ] ); if ($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } if ($request->hasFile('profile')) { $filenameWithExt = $request->file('profile')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('profile')->getClientOriginalExtension(); $fileNameToStore = $filename . '_' . time() . '.' . $extension; $dir = 'uploads/avatar'; $image_path = $dir . $userDetail['avatar']; if (File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'profile', $fileNameToStore, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('profile', \Auth::user()->id)->with('error', __($path['msg'])); } } if (!empty($request->profile)) { $user['avatar'] = $fileNameToStore; } $user['name'] = $request['name']; $user['email'] = $request['email']; $user->save(); if (\Auth::user()->type == 'employee') { $employee = Employee::where('user_id', $user->id)->first(); $employee->email = $request['email']; $employee->save(); } return redirect()->back()->with( 'success', 'Profile successfully updated.' ); } public function LoginManage($id) { $eId = \Crypt::decrypt($id); $user = User::find($eId); if ($user->is_login_enable == 1) { $user->is_login_enable = 0; $user->save(); return redirect()->route('user.index')->with('success', 'User login disable successfully.'); } else { $user->is_login_enable = 1; $user->save(); return redirect()->route('user.index')->with('success', 'User login enable successfully.'); } } public function userPassword($id) { $eId = \Crypt::decrypt($id); $user = User::find($eId); $employee = User::where('id', $eId)->first(); return view('user.reset', compact('user', 'employee')); } public function userPasswordReset(Request $request, $id) { $validator = \Validator::make( $request->all(), [ 'password' => 'required|confirmed|same:password_confirmation', ] ); if ($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } $user = User::where('id', $id)->first(); $user->forceFill([ 'password' => Hash::make($request->password), 'is_login_enable' => 1, ])->save(); return redirect()->route('user.index')->with( 'success', 'User Password successfully updated.' ); } public function updatePassword(Request $request) { if (\Auth::Check()) { $request->validate( [ 'current_password' => 'required', 'new_password' => 'required|min:6', 'confirm_password' => 'required|same:new_password', ] ); $objUser = Auth::user(); $request_data = $request->All(); $current_password = $objUser->password; if (Hash::check($request_data['current_password'], $current_password)) { $user_id = Auth::User()->id; $obj_user = User::find($user_id); $obj_user->password = Hash::make($request_data['new_password']);; $obj_user->save(); return redirect()->route('profile', $objUser->id)->with('success', __('Password successfully updated.')); } else { return redirect()->route('profile', $objUser->id)->with('error', __('Please enter correct current password.')); } } else { return redirect()->route('profile', \Auth::user()->id)->with('error', __('Something is wrong.')); } } public function upgradePlan($user_id) { $user = User::find($user_id); $plans = Plan::where('is_disable', 1)->get(); return view('user.plan', compact('user', 'plans')); } public function activePlan($user_id, $plan_id) { $admin_payment_setting = Utility::getAdminPaymentSetting(); $user = User::find($user_id); $assignPlan = $user->assignPlan($plan_id); $plan = Plan::find($plan_id); if ($assignPlan['is_success'] == true && !empty($plan)) { $orderID = strtoupper(str_replace('.', '', uniqid('', true))); Order::create( [ 'order_id' => $orderID, 'name' => null, 'card_number' => null, 'card_exp_month' => null, 'card_exp_year' => null, 'plan_name' => $plan->name, 'plan_id' => $plan->id, 'price' => $plan->price, 'price_currency' => !empty($admin_payment_setting['currency']) ? $admin_payment_setting['currency'] : '$', 'txn_id' => '', 'payment_status' => 'succeeded', 'receipt' => null, 'user_id' => $user->id, ] ); return redirect()->back()->with('success', 'Plan successfully upgraded.'); } else { return redirect()->back()->with('error', 'Plan fail to upgrade.'); } } public function notificationSeen($user_id) { Notification::where('user_id', '=', $user_id)->update(['is_read' => 1]); return response()->json(['is_success' => true], 200); } public function LoginWithCompany(Request $request, User $user, $id) { $user = User::find($id); if ($user && auth()->check()) { Impersonate::take($request->user(), $user); return redirect('/dashboard'); } } public function ExitCompany(Request $request) { \Auth::user()->leaveImpersonation($request->user()); return redirect('/dashboard'); } public function CompnayInfo($id) { if (!empty($id)) { $data = $this->userCounter($id); if ($data['is_success']) { $users_data = $data['response']['users_data']; return view('user.companyinfo', compact('id', 'users_data')); } } else { return response()->json(['error' => __('Permission denied.')], 401); } } public function UserUnable(Request $request) { if (!empty($request->id) && !empty($request->company_id)) { if ($request->name == 'user') { User::where('id', $request->id)->update(['is_disable' => $request->is_disable]); $data = $this->userCounter($request->company_id); } if ($data['is_success']) { $users_data = $data['response']['users_data']; } if ($request->is_disable == 1) { return response()->json(['success' => __('Successfully Unable.'), 'users_data' => $users_data]); } else { return response()->json(['success' => __('Successfully Disable.'), 'users_data' => $users_data]); } } return response()->json('error'); } public function userCounter($id) { $response = []; if (!empty($id)) { $users = User::where('created_by', $id) ->selectRaw('COUNT(*) as total_users, SUM(CASE WHEN is_disable = 0 THEN 1 ELSE 0 END) as disable_users, SUM(CASE WHEN is_disable = 1 THEN 1 ELSE 0 END) as active_users') ->first(); $users_data = [ 'user_id' => !empty($id) ? $id : 0, 'total_users' => !empty($users->total_users) ? $users->total_users : 0, 'disable_users' => !empty($users->disable_users) ? $users->disable_users : 0, 'active_users' => !empty($users->active_users) ? $users->active_users : 0, ]; $response['users_data'] = $users_data; return [ 'is_success' => true, 'response' => $response, ]; } return [ 'is_success' => false, 'error' => 'User ID is invalid.', ]; } }