user()->id);
return view('Admin.Pages.manage_sub_admin.edit_admin_profile', compact('data'));
}
public function sendOtpOnMail(Request $request)
{
// dd($request->all());
$validator = validator::make($request->all(),['new_email'=>'required|unique:users,email'],['requreid'=>'Email field is required.','unique'=>'Email should be unique.']);
$validateMessage = validationErrorMessage($validator);
if($validateMessage)
{
return response()->json(['status'=>400,'message'=>$validateMessage]);
}
$OTP = rand(1000,9999);
Mail::to($request->new_email)->send(new sendEmailOTP($OTP));
session()->forget(['email_update_otp','old_email','new_email']);
session()->put('email_update_otp',$OTP);
session()->put('old_email',$request->old_email);
session()->put('new_email',$request->new_email);
if(session()->has('email_update_otp') || session()->has('old_email') || session()->has('new_email'))
{
return response()->json(['status'=>200,'message'=>"OTP has been send to your mail."]);
}
return response()->json(['status'=>400,'message'=>"Error in sending OTP."]);
}
public function verifyEmailOtp(Request $request)
{
$otp = session()->get('email_update_otp');
$old_email = session()->get('old_email');
$new_email = session()->get('new_email');
// dd($new_email,$old_email);
if(!$otp && !$old_email && !$new_email)
{
return response()->json(['status'=>400,'message'=>'Enter your email again.']);
}
if((int)$otp != (int)$request->email_otp)
{
return response()->json(['status'=>400,'message'=>'OTP not matched.']);
}
$updated = User::where('email',$old_email)->update(['email'=>$new_email]);
if($updated)
{
return response()->json(['status'=>200,'message'=>'Email updated successfully']);
}
}
public function getUsers(Request $request)
{
if ($request->ajax()) {
$data = User::where(['role' => 0, 'status' => 1])->get();
// dd($data);
return Datatables::of($data)
->addIndexColumn()
->addColumn('action', function ($row) {
$actionBtn = 'Edit Delete';
return $actionBtn;
})
->rawColumns(['action'])
// ->editColumn('name',function($row){
// return '
' . $row->name . '
';
// })
// ->editColumn('email',function($row){
// return '' . $row->email . '
';
// })
// ->editColumn('password',function($row){
// return '' . $row->password . '
';
// })
// ->addColumn('edit',function ($row){
// $email = $row->email;
// $password = $row->password;
// $editBtn = '
//
// ';
// return $editBtn;
// })
// ->rawColumns(['name','email','password','edit'])
->make(true);
}
// return view('Admin.edit_admin_profile');
}
public function editProfile(Request $request)
{
$validator = Validator::make($request->all(), [
'update_id' => 'required',
'name' => [
'required',
// 'regex:/^[a-zA-Z\s]+$/',
],
'email' => [
'required',
// 'regex/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/',
],
'mobile_number' => [
'required',
'min:10',
'max:12',
// 'regex:regex:/^(\+\d{1,3}[- ]?)?\d{10,12}$/',
],
'profile_image' => [
'mimes:jpeg,png,jpg,gif,svg',
'max:2048',
],
], [
'required' => 'This :attribute field is required',
'mobile_number.min' => 'Mobile number should be minimum 10 digits',
'mobile_number.max' => 'Mobile number should be maxmium 12 digits',
'profile_image.mimes' => "Image accepts only jpeg,png,jpg,gif,svg",
'profile_image.max' => "Image size not more than 2mb",
'name.regex' => 'This :attribute contain only alphabets',
'email.regex' => 'Enter valid email address',
'mobile_number.regex' => 'Mobile number contain only digits',
]);
$validationMessage = validationErrorMessage($validator);
if ($validationMessage) {
return response()->json(
[
'status' => 400,
'message' => $validationMessage
]
);
}
$uploadImage = $request->has('profile_image') ? $this->uploadProfileImage(Auth::user()->id, $request->profile_image) : Auth::user()->getRawOriginal('profile_image');
$data = User::where('id', Auth::user()->id)->update([
'name' => $request->name,
'email' => $request->email,
'contact_number' => $request->mobile_number,
'profile_image' => $uploadImage,
]);
if ($data) {
return response()->json(
[
'status' => 200,
'message' => "Profile update successfull"
]
);
}
return response()->json(
[
'status' => 204,
'message' => 'Profile not updated, Something error!'
]
);
}
public function uploadProfileImage($id, $image)
{
$user = User::where('id', $id)->first();
if (\Storage::exists($user->profile_image)) {
\Storage::delete($user->profile_image);
}
$fileName = time() . Auth::user()->id . '.' . $image->extension();
$image->move(public_path('/uploads/profile/img'), $fileName);
return $fileName;
}
public function UpdatePassword(Request $request)
{
$validator = Validator::make($request->all(), [
'current_password' => 'required',
'password' => ['required', 'min:8', 'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%@]).*$/', 'confirmed']
// 'confirm_password' => 'required_with:new_password|same:new_password|required',
], [
'required' => 'The :attribute field is required',
'same' => 'The :attribute must contain the same password',
'min' => 'The :attribute field must be 8 characters minimum',
'regex' => 'The :attribute field must contain at least 1 uppercase letter and symbol and also a number',
'confirmed' => 'Password does not match'
]);
$validationMessage = validationErrorMessage($validator);
if ($validationMessage) {
return response()->json(['status' => 400, 'message' => $validationMessage]);
}
$user = User::find(Auth::user()->id);
if (Hash::check($request->current_password, $user->password)) {
$updatePassword = User::where('id', $request->updateId)->update([
'password' => bcrypt($request->password),
]);
if ($updatePassword) {
Session::flush();
\Auth::logout();
return response()->json(['status' => 200, 'message' => "Password update successfull"]);
} else {
return response()->json(['status' => 204, 'message' => 'Password not updated, Something error!']);
}
}
return response()->json(['status' => 204, 'message' => 'Password not matched!']);
}
public function viewUsersProfile()
{
$check = checkSidebarAccess('update-user-password');
if (!$check) {
abort(404);
}
$users = User::where(['role' => false, 'status' => true])->get();
return view('Admin.Pages.manage_sub_admin.update_user_password', compact('users'));
}
public function updateUsersProfile(Request $request)
{
// dd($request->all());
$validate = Validator::make($request->all(), [
'password' => 'required|min:8',
'confirm_password' => 'required_with:password|same:password|min:8',
], [
'required' => "This field is required",
'password.confirmed' => "Password not matched",
]);
if ($validate->fails()) {
return response()->json(
[
"status" => 400,
"message" => $validate->errors(),
]
);
}
$email = $request->email;
$newPassword = $request->password;
$userData = User::where('email', $email)->first();
if ($userData->password == $newPassword) {
return response()->json([
'status' => 201,
'message' => "Password matched same",
]);
} else {
$updatePassword = User::where('email', $email)->update([
'password' => bcrypt($newPassword),
]);
if ($updatePassword) {
Mail::to($email)->send(new UpdatePasswordMail($newPassword));
return response()->json([
'status' => 200,
'message' => "Password update successfully",
]);
}
return response()->json([
'status' => 201,
'message' => "Password not updated",
]);
}
}
}