headers->get('referer')); // session(['previous_page' => $request->headers->get('referer')]); // dd(session()); return view('login.admin.index'); } //Login user public function login_user(Request $request){ $this->validate($request, ['email' => 'required', 'password' => 'required']); $email = $request->input('email'); $password = $request->input('password'); $login = auth()->attempt(['email' => $email, 'password' => $password]); if ($login) { $user = auth()->user(); Auth::login($user, true); if (Auth::user()->deleted_at !== null) { return redirect()->back()->with('login-error', 'Account Suspended!'); } $desc = [ 'title'=>'Login', 'data'=>$user->name, 'type'=>'login', ]; $activity = new ActivityLog; $activity->user_id = Auth::user()->id; $activity->user_type = 'admin'; $activity->description = json_encode($desc); $activity->save(); return redirect(url('admin')); } else { return redirect()->back()->with('login-error', 'Email/Password incorrect!'); } } //Logout User public function logout(){ auth()->logout(); return redirect()->to('/login'); } //Add user public function add_user(){ $password = bcrypt('kweku20'); $user = new User; $user->name = 'Kweku Debrah'; // $user->lastname = 'Debrah'; $user->email='kweku.debrah.emma@gmail.com'; $user->password = $password; $save = $user->save(); } public function show_merchant_register(){ $data = [ 'page_title' => 'Merchant Registration', ]; return view('login.merchant.register', $data); } public function merchant_register(Request $request){ // $this->validate($request, [ // 'fullname' => 'required', // 'phone'=> 'required|unique:merchants,phone', // 'language' => 'required' // ]); $request->validate([ 'fullname' => 'required', 'phone'=> 'required|unique:merchants,phone', // 'language' => 'required', 'country_iso' => 'required', Rule::in(['MW', 'ZM']) ], [ 'country_iso.exists' => 'Sorry, we do not currently support accounts from this country.', ]); $merchant_arr = $request->except('_token'); /* $phone = $this->validatePhoneNumber($request->phone); if ($phone == false) { Session::flash('error_message', 'Invalid phone number format. Check and try again'); return redirect()->back()->withInput(); } */ //todo : make the currency and country dynamic $country = ($request->country_iso == 'MW') ? "MALAWI" : 'ZAMBIA'; $currency = ($request->country_iso == 'MW') ? "MWK" : 'ZMW'; $phone = str_replace('+', '', $request->phone); $merchant_arr['phone'] = $phone; $merchant_arr['language'] = 'english'; $merchant_arr['country'] = $country; $merchant_arr['currency'] = $currency; $result = Models\Merchant::create($merchant_arr); if ($result == null) { Session::flash('error_message', 'Your request could not be handled at this time. Try again later'); return redirect()->back()->withInput(); } return redirect('merchant/register-success'); } public function register_success(){ $data = ['page_title' => 'Merchant Sign Successful']; return view('login.merchant.register-success',$data); } public function register_page(Request $request){ // $email = $request->input('email'); // $user = User::where('email', $email)->first(); // if ($user== null) { // abort(404); // } $data = [ // 'user'=>$user, ]; return view('login.register', $data); } public function reset_password(Request $request){ $validator = Validator::make($request->all(), [ 'user' => 'required', 'password'=>'required', 'cpassword'=>'required', ]); if($validator->fails()){ return redirect()->back()->with('login-error', 'Enter required data!'); } if ($request->input('password') !== $request->input('cpassword')) { return redirect()->back()->with('login-error', 'Password dont Match!'); } $user = $request->input('user'); $password = $request->input('password'); $user = User::where('id',$user)->update([ 'password'=>bcrypt($password), ]); return redirect()->to('/login')->with('login-success', 'Password Changed Successfully, Login to continue'); } public function forgot_page(){ return view('login.forgot'); } public function sendResetMail(Request $request){ // dd($request->all()); $validator = Validator::make($request->all(), [ 'email' => 'required', ]); if($validator->fails()){ return redirect()->back()->with('login-error', 'Enter required data!'); } $email = $request->input('email'); $user = User::where('email', $email)->first(); if ($user == null ) { return redirect()->back()->with('login-error', 'Email Doesnt Exist!'); } $newUser = [ 'name' => $user->name, 'email' => $email, ]; Mail::to($email)->send(new ResetPassword($newUser)); return redirect()->to('/confirm-mail'); } public function confirmMail() { return view('login.confirm'); } /** * Merchant Login Section */ public function merchant_login_page(){ return view('login.merchant.index'); } public function merchant_login(Request $request){ $request->validate([ 'phone_number' => 'required|string', 'pin' => 'required|string', 'country_iso' => 'required', Rule::in(['MW', 'ZM']) ], [ 'country_iso.exists' => 'Sorry, we do not currently support accounts from this country.', ]); // if($validator->fails()){ // return redirect()->back()->with('login-error', 'Phone Number/PIN is required!'); // } /* $phone_number = $this->validatePhoneNumber($request->phone_number); if($phone_number == false){ return redirect()->back()->with('login-error', 'Phone Number/PIN is incorrect!'); } */ // $phone_number = $request->input('phone_number'); | use hashing $pin = md5($request->input('pin')); // dump($request->all()); $phone_number = str_replace('+', '', $request->phone_number); $merchant = Merchant::where('phone', $phone_number)->where('pin', $pin)->first(); // dd($merchant); if($merchant == null){ return redirect()->back()->with('login-error', 'Phone Number/PIN incorrect!'); } session(['merchant' => $merchant]); return redirect()->to('merchant/landing'); } public function merchant_logout(){ session(['merchant' => null]); // return redirect()->to('/merchant/login'); return redirect()->to('/'); } public function checkSupportedCountry(Request $request){ $request->validate([ 'iso_code' => 'required|string|size:2' ]); $isoCode = strtoupper($request->iso_code); //todo retrieve this from the DB later // $isSupported = DB::table('supported_countries')->where('iso_code', $isoCode)->exists(); $supported_arr = ['MW', 'ZM']; if (in_array($isoCode, $supported_arr)) { return response()->json(['supported' => true]); } else { return response()->json([ 'supported' => false, 'message' => 'Sorry, we currently do not support accounts from this country.' ]); } } }