From 87c2184f46f859ec1227ed836d54ebae3ecfd975 Mon Sep 17 00:00:00 2001 From: A1Gard Date: Wed, 25 Sep 2024 01:30:48 +0330 Subject: [PATCH] added mail register & reset password fixed some bugs added simple register theme part --- .github/workflows/laravel.yml | 1 - app/Helpers/Helper.php | 2 +- .../Controllers/Admin/GuestLogController.php | 108 ++++++++++++++++++ app/Http/Controllers/ClientController.php | 48 ++++++++ app/Http/Requests/GuestLogSaveRequest.php | 28 +++++ app/Mail/AuthMail.php | 60 ++++++++++ config/app.php | 4 +- database/seeders/PartSeeder.php | 9 ++ resources/js/client.js | 1 + resources/sass/client.scss | 1 + .../admin/guestlogs/guestlog-form.blade.php | 42 +++++++ .../admin/guestlogs/guestlog-list.blade.php | 15 +++ .../views/components/panel-header.blade.php | 8 +- .../components/panel-side-navbar.blade.php | 2 +- .../AvisaCustomer/AvisaCustomer.blade.php | 56 ++++----- .../SimpleRegister/SimpleRegister.blade.php | 23 ++++ .../register/SimpleRegister/SimpleRegister.js | 0 .../SimpleRegister/SimpleRegister.json | 10 ++ .../SimpleRegister/SimpleRegister.php | 21 ++++ .../SimpleRegister/SimpleRegister.scss | 16 +++ .../register/SimpleRegister/screenshot.png | Bin 0 -> 16321 bytes resources/views/website/auth-mail.blade.php | 6 + .../views/website/inc/website-head.blade.php | 8 +- routes/web.php | 2 + 24 files changed, 434 insertions(+), 37 deletions(-) create mode 100644 app/Http/Controllers/Admin/GuestLogController.php create mode 100644 app/Http/Requests/GuestLogSaveRequest.php create mode 100644 app/Mail/AuthMail.php create mode 100644 resources/views/admin/guestlogs/guestlog-form.blade.php create mode 100644 resources/views/admin/guestlogs/guestlog-list.blade.php create mode 100644 resources/views/segments/register/SimpleRegister/SimpleRegister.blade.php create mode 100644 resources/views/segments/register/SimpleRegister/SimpleRegister.js create mode 100644 resources/views/segments/register/SimpleRegister/SimpleRegister.json create mode 100644 resources/views/segments/register/SimpleRegister/SimpleRegister.php create mode 100644 resources/views/segments/register/SimpleRegister/SimpleRegister.scss create mode 100644 resources/views/segments/register/SimpleRegister/screenshot.png create mode 100644 resources/views/website/auth-mail.blade.php diff --git a/.github/workflows/laravel.yml b/.github/workflows/laravel.yml index 485c35a..dcdbb9d 100644 --- a/.github/workflows/laravel.yml +++ b/.github/workflows/laravel.yml @@ -4,7 +4,6 @@ on: push: tags: - "*" - branches: [ "master" ] pull_request: branches: [ "master" ] diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 5879273..f4e1177 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -999,7 +999,7 @@ function isGuestMaxAttemptTry($action, $max = 5, $minutes = 60) { if (\App\Models\GuestLog::where('ip', request()->ip()) ->where('action', $action) - ->where('created_at', '<', time() - ($minutes * 60))->count() >= $max) { + ->where('created_at', '>', time() - ($minutes * 60))->count() >= $max) { return true; } else { return false; diff --git a/app/Http/Controllers/Admin/GuestLogController.php b/app/Http/Controllers/Admin/GuestLogController.php new file mode 100644 index 0000000..2d4f44c --- /dev/null +++ b/app/Http/Controllers/Admin/GuestLogController.php @@ -0,0 +1,108 @@ + +// ['title' => "Edit", 'class' => 'btn-outline-primary', 'icon' => 'ri-edit-2-line'], +// 'show' => +// ['title' => "Detail", 'class' => 'btn-outline-light', 'icon' => 'ri-eye-line'], +// 'destroy' => +// ['title' => "Remove", 'class' => 'btn-outline-danger delete-confirm', 'icon' => 'ri-close-line'], + ]; + + + public function __construct() + { + parent::__construct(GuestLog::class, GuestLogSaveRequest::class); + } + + /** + * @param $guestlog GuestLog + * @param $request GuestLogSaveRequest + * @return GuestLog + */ + public function save($guestlog, $request) + { + + $guestlog->save(); + return $guestlog; + + } + + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + return view($this->formView); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(GuestLog $item) + { + // + return view($this->formView, compact('item')); + } + + public function bulk(Request $request) + { + +// dd($request->all()); + $data = explode('.', $request->input('action')); + $action = $data[0]; + $ids = $request->input('id'); + switch ($action) { + case 'delete': + $msg = __(':COUNT items deleted successfully', ['COUNT' => count($ids)]); + $this->_MODEL_::destroy($ids); + break; + + default: + $msg = __('Unknown bulk action : :ACTION', ["ACTION" => $action]); + } + + return $this->do_bulk($msg, $action, $ids); + } + + public function destroy(GuestLog $item) + { + return parent::delete($item); + } + + + public function update(Request $request, GuestLog $item) + { + return $this->bringUp($request, $item); + } + + +} diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 3c4183f..373ac6a 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Contracts\Payment; use App\Http\Requests\ContactSubmitRequest; +use App\Mail\AuthMail; use App\Models\Attachment; use App\Models\Category; use App\Models\Clip; @@ -20,6 +21,7 @@ use App\Models\Rate; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Route; use Plank\Metable\Meta; use Spatie\Tags\Tag; @@ -231,6 +233,14 @@ class ClientController extends Controller public function search(Request $request) { + + + if (isGuestMaxAttemptTry('search', 5, 1)) { + return abort(403); + } + + guestLog('search'); + $q = trim($request->input('q')); if (mb_strlen($q) < 3) { return abort(403, __('Search word is too short')); @@ -476,7 +486,45 @@ class ClientController extends Controller public function signUp() { + if (config('app.sms.sign')){ + return abort(403); + } + $area = 'register'; + $title = __("sign up"); + $subtitle = __('Sign up as customer'); + return view('client.default-list', compact('area', 'title', 'subtitle')); + } + public function signUpNow(Request $request) + { + if (config('app.sms.sign')){ + return abort(403); + } + + $request->validate([ + 'email' => ['required','email'] + ]); + + if (isGuestMaxAttemptTry('email', 1, 5)) { + return redirect()->back()->withErrors( __('You try attempts, Try it a few minutes')); + } + + guestLog('email'); + + $passwd = generateUniqueID(12); + Mail::to($request->input('email'))->send(new AuthMail($passwd)); + $c = Customer::where('email', $request->email); + if ($c->count() > 0) { + $customer = $c->first(); + $msg = __('Your account password has been changed successfully.'); + }else{ + $customer = new Customer(); + $customer->email = $request->email; + $msg = __('Your account has been created successfully.'); + } + $customer->password = bcrypt($passwd); + $customer->save(); + return redirect()->back()->with(['message' => $msg]); } public function singInDo(Request $request) diff --git a/app/Http/Requests/GuestLogSaveRequest.php b/app/Http/Requests/GuestLogSaveRequest.php new file mode 100644 index 0000000..9a8f50c --- /dev/null +++ b/app/Http/Requests/GuestLogSaveRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Mail/AuthMail.php b/app/Mail/AuthMail.php new file mode 100644 index 0000000..c1ff42a --- /dev/null +++ b/app/Mail/AuthMail.php @@ -0,0 +1,60 @@ + $this->code + ], + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/config/app.php b/config/app.php index 8d6dbb6..5dce2cd 100644 --- a/config/app.php +++ b/config/app.php @@ -15,8 +15,8 @@ return [ | */ - 'name' => env('APP_NAME', 'Laravel'), - 'version' => env('APP_VERSION', '2.0.0-beta-3'), + 'name' => env('APP_NAME', 'xShop'), + 'version' => env('APP_VERSION', '2.0.0'), 'demo' => env('APP_DEMO', false), /* |-------------------------------------------------------------------------- diff --git a/database/seeders/PartSeeder.php b/database/seeders/PartSeeder.php index 164177c..9d637eb 100644 --- a/database/seeders/PartSeeder.php +++ b/database/seeders/PartSeeder.php @@ -263,6 +263,15 @@ class PartSeeder extends Seeder // ------------------------------------------------------------- + $part = new Part(); + $part->segment = 'register'; + $part->part = 'SimpleRegister'; + $part->area_id = Area::where('name', 'register')->first()->id; + $part->sort = 1; + $part->save(); + + // ------------------------------------------------------------- + $part = new Part(); $part->segment = 'customer'; $part->part = 'AvisaCustomer'; diff --git a/resources/js/client.js b/resources/js/client.js index 8b1f314..12a125e 100644 --- a/resources/js/client.js +++ b/resources/js/client.js @@ -37,6 +37,7 @@ import "../views/segments/galleries_page/GalleriesList/GalleriesList.js"; import "../views/segments/gallery/GallaryGrid/GallaryGrid.js"; import "../views/segments/compare/CompareProducts/CompareProducts.js"; import "../views/segments/login/LoginPatternBg/LoginPatternBg.js"; +import "../views/segments/register/SimpleRegister/SimpleRegister.js"; import "../views/segments/customer/AvisaCustomer/AvisaCustomer.js"; import "../views/segments/attachments_page/DenaAttachList/DenaAttachList.js"; import "../views/segments/attachment/AttachmentWithPreview/AttachmentWithPreview.js"; diff --git a/resources/sass/client.scss b/resources/sass/client.scss index 2ceaad4..2561e8e 100644 --- a/resources/sass/client.scss +++ b/resources/sass/client.scss @@ -48,6 +48,7 @@ $xshop-shadow:2px 2px 4px #777777; @import "../views/segments/gallery/GallaryGrid/GallaryGrid"; @import "../views/segments/compare/CompareProducts/CompareProducts"; @import "../views/segments/login/LoginPatternBg/LoginPatternBg"; +@import "../views/segments/register/SimpleRegister/SimpleRegister"; @import "../views/segments/customer/AvisaCustomer/AvisaCustomer"; @import "../views/segments/attachments_page/DenaAttachList/DenaAttachList"; @import "../views/segments/attachment/AttachmentWithPreview/AttachmentWithPreview"; diff --git a/resources/views/admin/guestlogs/guestlog-form.blade.php b/resources/views/admin/guestlogs/guestlog-form.blade.php new file mode 100644 index 0000000..4b40052 --- /dev/null +++ b/resources/views/admin/guestlogs/guestlog-form.blade.php @@ -0,0 +1,42 @@ +@extends('admin.templates.panel-form-template') +@section('title') + @if(isset($item)) + {{__("Edit guestlog")}} [{{$item->id}}] + @else + {{__("Add new guestlog")}} + @endif - +@endsection +@section('form') + +
+
+ + @include('components.err') +
+

+ + {{__("Tips")}} +

+
    +
  • + {{__("Recommends")}} +
  • +
+
+ +
+
+
+ +

+ @if(isset($item)) + {{__("Edit guestlog")}} [{{$item->id}}] + @else + {{__("Add new guestlog")}} + @endif +

+ +
+
+
+@endsection diff --git a/resources/views/admin/guestlogs/guestlog-list.blade.php b/resources/views/admin/guestlogs/guestlog-list.blade.php new file mode 100644 index 0000000..586ccbd --- /dev/null +++ b/resources/views/admin/guestlogs/guestlog-list.blade.php @@ -0,0 +1,15 @@ +@extends('admin.templates.panel-list-template') + +@section('list-title') + + {{__("GuestLogs list")}} +@endsection +@section('title') + {{__("GuestLogs list")}} - +@endsection +@section('filter') + {{-- Other filters --}} +@endsection +@section('bulk') + {{-- --}} +@endsection diff --git a/resources/views/components/panel-header.blade.php b/resources/views/components/panel-header.blade.php index 388a32d..435b50c 100644 --- a/resources/views/components/panel-header.blade.php +++ b/resources/views/components/panel-header.blade.php @@ -6,7 +6,13 @@ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> - + + + {{-- open graph --}} + + + + diff --git a/resources/views/components/panel-side-navbar.blade.php b/resources/views/components/panel-side-navbar.blade.php index 708b07d..181060f 100644 --- a/resources/views/components/panel-side-navbar.blade.php +++ b/resources/views/components/panel-side-navbar.blade.php @@ -301,7 +301,7 @@ @endif @if( auth()->user()->hasAnyAccess( 'guestlog' ))
  • - + {{__('Logs of guests')}} diff --git a/resources/views/segments/customer/AvisaCustomer/AvisaCustomer.blade.php b/resources/views/segments/customer/AvisaCustomer/AvisaCustomer.blade.php index bfbd557..8dd5ecb 100644 --- a/resources/views/segments/customer/AvisaCustomer/AvisaCustomer.blade.php +++ b/resources/views/segments/customer/AvisaCustomer/AvisaCustomer.blade.php @@ -78,6 +78,34 @@
     
     
    @include('components.err') + @if(cardCount() > 0) +
    + + {{__("Continue")}} + +
    + {{__("System notification")}} +
    + {{__("You have some products in your shopping card.")}} +
    +
    + @endif + @if( auth('customer')->user()->name == null || trim(auth('customer')->user()->name) == '') +
    +
    + {{__("System notification")}} +
    + {{__("Your information is insufficient, Please complete your information")}} +
    + @endif + @if( auth('customer')->user()->addresses()->count() == 0) +
    +
    + {{__("System notification")}} +
    + {{__("You need at least one address to order, Please add address")}} +
    + @endif
    @@ -148,34 +176,6 @@
    - @if(cardCount() > 0) -
    - - {{__("Continue")}} - -
    - {{__("System notification")}} -
    - {{__("You have some products in your shopping card.")}} -
    -
    - @endif - @if( auth('customer')->user()->name == null || trim(auth('customer')->user()->name) == '') -
    -
    - {{__("System notification")}} -
    - {{__("Your information is insufficient, Please complete your information")}} -
    - @endif - @if( auth('customer')->user()->addresses()->count() == 0) -
    -
    - {{__("System notification")}} -
    - {{__("You need at least one address to order, Please add address")}} -
    - @endif
    diff --git a/resources/views/segments/register/SimpleRegister/SimpleRegister.blade.php b/resources/views/segments/register/SimpleRegister/SimpleRegister.blade.php new file mode 100644 index 0000000..5f40bb2 --- /dev/null +++ b/resources/views/segments/register/SimpleRegister/SimpleRegister.blade.php @@ -0,0 +1,23 @@ +
    +
    +
    + @csrf + @include('components.err') + +
    + {{__("Register or Reset password")}} +
    +
    + + +
    + + + +
    +
    diff --git a/resources/views/segments/register/SimpleRegister/SimpleRegister.js b/resources/views/segments/register/SimpleRegister/SimpleRegister.js new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/segments/register/SimpleRegister/SimpleRegister.json b/resources/views/segments/register/SimpleRegister/SimpleRegister.json new file mode 100644 index 0000000..795db20 --- /dev/null +++ b/resources/views/segments/register/SimpleRegister/SimpleRegister.json @@ -0,0 +1,10 @@ +{ + "name": "SimpleRegister", + "version": "1.0", + "author": "xStack", + "email": "xshop@xstack.ir", + "license": "GPL-3.0-or-later", + "url": "https:\/\/xstack.ir", + "author_url": "https:\/\/4xmen.ir", + "packages": [] +} \ No newline at end of file diff --git a/resources/views/segments/register/SimpleRegister/SimpleRegister.php b/resources/views/segments/register/SimpleRegister/SimpleRegister.php new file mode 100644 index 0000000..937b8b8 --- /dev/null +++ b/resources/views/segments/register/SimpleRegister/SimpleRegister.php @@ -0,0 +1,21 @@ +l-?0((gh^6 zP}HH9NbdxMgieqEA(Z5PVP?*mS^t0UUFY8aU+b=QhqXxZ?ec!_e)hZHx}V)P*5&3r z%?Sd5xb<$`xC;WY&x1g0Ax91aEmgc~_kgc;|9kg+?%Jb8J-rdmuI?~VAB-nV6z1pZ z3?VOs0KI95_<;U`@$JYy=ik@@7Y^3e?$@Hi15|Vk> z&1w@$My*ZdRypM=__CF7u^1tGsFDhz{lBM@Wb9$AF5P1iw|)?P8RS;ch{&@asD*L@k@C~ z^xN>5?S`x`=bA%ig7LMqssN57FXj3Qi%-2-Fq4n{B|LFC|CFB&_|vIRD&HqsG^bp+ zIIUX0Iz6*w9pi#Y-$iZ|sD`s?y;f=FD%Zzf(^yGc1;R(xu4Cu_$1j|1ff=U2e!V zLiCA_KIT+tjS$)64Mw|>axYC} z*$K`Em##$K5q*D5VF|Y%&Hi&b z*GP;|n~7=b+!LDoPL8CE-?5FN>bi<8uN_cUUcoH4r{|FuCoTs}%uHye*6j!63=nyv z4|$hgz9Ux*NU5JIAdUBp4AmSFaA|udgab_45AF$wDF~zi@$209Jv7fz zY8%dpx;kl|gDM)y7

    L9=hK0_lBAJ8{c#EcXL#AItS6>)bLXS2*6=J_M(1pcMqhR zpXRv(x@y30Rx|jV=)n*lH_dbRjc$u-BfMdv3epPFGEzEzuD){Tv^YgIyq%oY?%ufh zI|<-P^V~xpA5S$f7>!0tqvfR$-Y#HSRaI56j2u`_P6`+yg~WLH*!xL&AkVW%{6^yj z4C(0Y>gnT(@DOFuw0A(Dd^FFU1Nue(;1BL;Wb{w+9?0KO0Pq0&*?WRzrDecyIQY*q zkUl!T0FmDr`cG#d?*WGzd>4j9pu8PnI=(OupYwkv;pF(w`JO0m_k-m)If7yCFgP$2 z3A|PIFR#?qGrIlH87v4~T;ZMvvjDLFGSbJ@`CnlDg*R5u!E*l02r&JhbpJB?kF_5R z21Xefsog+0qFC(d-OxP8dcT?z!qL@9?ck@9oT`$8qobpgvZ6CgN+`IcmFe2EK*JYDOCkICj}XpjFi2zk^;bu3QWo#2Joe* z=;)xV2vd|-QdT)2<>aV#6X6ZF2e#7{ZtnsEdwRGWbg%$dyLMYo^PHTt%)eT0yW9IX z0~0jQ8M=C){QlK(&lL_c^|5E6DXT1}EGMfVtEea^r>v}?{I5agFmEIvi7cA3GSc!2 z2R*E9Q3DnO0Bg^ZQ-HuhJFpftZEu*p55oH%0^zQCj>VEFYvw<@jez6iWbb2t!`=r5 z5S5WrP?J$rlT*AWBdaDWrzWo`AtSFQ|EKW?Cs$|8|86wv@Q7;sw&k~6k-+;g2Ti}7 zC{vi%Z%@BHy1O16B~j6XL!oBx_}dbY_P#Ku13m#-zjZl2wD)j<0ovntas8v+^*<2> z1!qSY8CgdeDFtOkKpvD;RHW>kWMEP%GJrhEIx5TBJIeo+IuhaRgSPjEU2_3&1h4|c z^8hQ+%Lf}J{@2myhcMPI0Dwu!s7n1uz`(yR7|hZcf2>#o{2wsUI2iCJB?HX+tqo9K zfG!08QyKn_8B6W_H~#&;7ypfK07(D+l79=|zv22Du73-Ge{1mH()Bl7{}uxO*5JRT z>%R;x&VPkdFb}{BLIc4PT&(&n5NI8CFwngLasWAjyu9Ic-vcd2J#SecK_Kb#tbaDY zY=|$=$l;@Bq{A_P^wfzf=P~K)kwBAxkIsD`Z3LXeq)Z$NqA+QRK?ZWsPI4psWo17LIqAOfkVIvBWM3&lRZjT^AXdJX z4CQa;OPRehC@M1JL*L=!=X-Mbha;B5WzkMihEZ*D(IYP1lt_Wl?|)3V^~(=wgqF<6 z&_oKoJCUH8CSO9G;4CUCY67?eVQ*i&$@>0I2>AE`$b^7Izpw$HPk8=r{J#O@h|eE* zKEBHF2cG{wHTnr(mjBKUtB6L=Es|ea;Dao2XkTZ$HxDm^H0EMs`0m%hJE+Mob3bL zxF|?vmYa(&j7Ytq=J{Ubu+XX3kTB1xt{oEv#8@N1Y69Qmu>#Vd zaB=Y=QPi6upzqbzmP`G1m9#;P0iwYEFunl1o&F9q$<79Jg*nrFL3obu{!ezR@gvmv zdk_I`tFiP#P~N#y*mglup=Q0(ZAs?<1Y&ifRG#QJ`+B?w|1o+Sv-+!eG?MhK<)WT3y$2<5 z`6TzDDNOrGpU2v_F?wgC^Yho+#iOaI^2P)`(@T&U2r>|EL>?S)_BJzfjufaPR;G{M zPKP8yz*r5Jt&II<%gavgIy&7Rg6RduDq58LRcjXf;aEAWjd6lT8}k)tO0@it(9{p# zRyMonbL#P2^;Pk4&d%CFTEU&Ni8iLG*av?1Y;aztJ3G7SrRfd9V_SIUYOSgDgSd-l zlvZgg{7MS5>{N12MXngcs{ZRMe|IGx6o~|3lI-5Z^U2|G(%7K>*Q#!NRd^VAWAEX9 zO(A?@tFWqs-zY65-pIYZ;*8R04KIizQEDC(_NJb}kR+BVGKsy}dQq|@QsT&M<_qR{ zvam&bdeH+o|Ad&V%< zy1SlnZ{}SQ@A|y5LMNCNtkaAZU{B&5#Q{1AGj~Z(x*m3CkPH3~X|P1c61lrgCt3^!fIYgivp!Z-MBgiejeKx) zX&xLP<<6yO?ope~@6F=ErCWPb)v0l35Thl#0d3RA*3(qWk$rJRbb8K9Ov~~}9vDo( zKz1=ZJ6m*CCoa|1Ze8oWc|LNMzd%IK>+)Lz1O4@}V>WRYFqEj; z_53_jWP4R<^`oYCtNkhM-Th%7+J=)U6rFPqn$7TvG=iI%O==)KZ2A?>I!atAt1p)) zS`t$zl9p+VCr_qHX^(Kb<=sdZLqbbruseD;{E|_p4!`v)aG_Nym^+XN5WW9Tt@iFZt+84j|v<>5pE*fx#h zff8gILyM=9Nz2XOfHj&JpwYp&yo=1uwK5-HG-ZgZSYu`*W%zbFllG;|in{jsbLBp{ zdd|rlZq&`(M3iO2*RT@Ni!HMpE@`hFqRNYzn3@3ps0*2HkJjU=k?WtDn_m)%*C2snq#EGF$Agbs0%YU2S{a~c?sf< zXQD1ZCig$;G=3L zqDw5_Z9Ns%5t_M*HHJtT#m0u*QI&bcuV~cjI@A1eel9+S&zt0$JDVWu*sCe?inLNI zS6y?3-#96OHRcRK*X<3xCM5z5kh#W$+@^(0X@RRMR_C4#u3 zrPX$L-!#X#%_TzfQufo9!Jz*69{T(pUDC$4m-N<^@N`cqR*O7;FP3ZdXY)JjyDKlu zE$+O|$^Tfbg!WziM~-EXCnsu%Z|L5hT`8##MH7VOF=NXXCVmkw ziu2lrjMY(onwsqFn3aBU%+r~DHo)NtEAEYo>O3{}ssXatdZA5wWo6`j(5{_iO#EDQ zi*WRM)OAKc*LgZEo0f~U69uQKo@e^?zs3;p)%1nYijjeV*aj;Z2(a%9^Av(5!Zrn# zT$zQ-zryrif2O+Q1#De%<|V^Z5xL>P`^oOa3JF+tHhmcoi0z#ne8420wE^TZorbOs zp5)j_LCg)`tu5BGkWC9?oTzIS8#C(`S=a@I78;shZFgv1%RxqFFfE*?z5cPMfruca z7K&20u(HyT*Ox;!Z4peRiYbwxeYvD&-N99_TA{i+%$z38d0`mkE>oMEAOwZ1q#QSE6O=GyZkZ?+CadC0yDRm`V%*Qs>TCc!}bPaK| z0^-y+cbZFTJbXMRGR4QiMyXUh9ET%|@DpX<67v#fd&fKo`^gWYE&%4mS1WM)C%o6r zhrl3GzPqbi$ETx4s<>c7|HFsZ^OHUFI=WNE`8cch5;CbZuBJ%(9)@0?akasZT-YBU zKlc%bv-0ngT3Di(1OYOG9863!w@#%3dWjY%CGw5SW323AqPmz^zjBt057zceze*sJ zkoYCR4a${9o2m-^C^e=GA5q)ej}!_pWGUSzz+9|-3vIEqiTEc^K2oe2 z9-$a}?=2E7OruRN8Ml@U7IqyvE_O+e0RSX9hQFv+R!|@zV(pKu$BgEgVA4=+61&#if9D)Qb%U126)gD=mgb5+zpa#Y|8a_Kt~}=)o;qahqG@ zXf#ni@W(nGw;__{Ofv}uNQQ|^x8LGQNn^}USGNrQuXZ!p@EGC_}Q)Ldn9bk)Z8E#@e07Q4mMDkf2G z(8A6!7m>JcCr+p$9Zc(o2IFd#Jv#FsH6GjA&y(`oV*rm~AwsC_LtdgKH2!+VD~Hkq zuh@`=vB9*o=@zHm;t2dwgt~ljnOr2-inVO7K%vJ(T=A19FQma8!*@_4ql0P4ONO^( z+eRb0@pj9@G4Zk4l_lU7-qeEWL8%Y|?U`dU7xvVqGHpCss8%iNLf062){$2ufgl)Q z$nfjU3e4H7*Yrg(CwItuPNe*4rnI(4kihS-4^XzGVM zx9&c;y!@?#+u9n_RpMbt@i-f}@kJV+{q(w)@48-qB&5cD4Q~I)2>z&`K&~cmtpQt! zATt|o-s3xrU}-If<2O6E%x?`b>?Q> zzJ)DKSV~H!E&{IOPL&tEeZ+-S!+i#cG%yez#ls>UM|IUg0OLPCStI2VArgQ7^y#v9 znew?2XW|2Vms`1|l9BXrRn@?~DvhcN#d0^dK3hrhbWxFB)FEx^*vMG?<`|CRl^)L( z^w7-aZfk!}X1Vv0qvgbyFm1YTesQs%YrmTYCn7Z`YEz-CxU%uA9j&8KNZr+;-t+6x z#CvA3;*K|6HgCIMXsgO7ir6HPRC7zcN|y4aBn(g^j$+bol!g7e)jmKaSp`z1s+ZS3 zQ{NtaiCHR4Wc|BRmOA*&i@Ftg!5xjJzqZ|?P$-!h4r}OfT>R9e?1p;$NzS~>U=!jI z+!m!{HQu5iFTZ_rE;YJ6Dk?=bL!3A&^`*sJ3ztl-4<1S?>)lUUVH8rYJ`zxSJ(el* z_8!!ne8wd$4G{2ZbW3-j+r;PxAJp9ZPUwN7?h!y~Hp283Rg&0`ophQ`=uvgpco%5L z7%yB|?i3RVe7ODV<6Y`r4W=V5MK#ze0`agluDJLfpw#)3A9x!W7)Yn9i@6vjyh_V} z#k&(__c8_()}Lq0-69;<+Q4j_+PolOeTR`neJ71wRvoPwql<#BzF`;qx;pt@mbaqP zCD__}QWfo?^VN7}}S_Y?|{uqs_I37ATZEo#c;&!`%qPN#6hlLPsY8 z@b{@nN$cxv(d+fqNV(#-=hAEECdKOZS=c#_-ToQEkX+Q0bG}@)6W+A3vBg7)WB8x| z&;1ObP>ker=DWg%%27==p%>}nx+szJpv^hm}nfpTVoqi!8 zV0-5^>nx2)g@@AapBg`>wRE%+`v!(&;96GR(a8(`2+dBT$!O_p>tB)1B2T z62iNq-MQO86qM6SdHoizTqzsq-~$CrtFb}{hbW17DU&Gtd#}KpWnb=%-7slQl;M6t zzZsO`Rr|@Kr?jA4LOm2G2`)qoJ68ApBdvO`aG}o|@XpKZt~&y5ruXg+IdHH0B0WB1 zcPlCk=d(xzgJqSiaIN>CFCT3s$Fi_(PPFH1;u?cE8f#eorL zG>+|UWXR`0#s}+LroUGV7}=eEdF>aV}FC`Xt?ZSe4wuZr`G43CT?T5HGesJq{rIG)zRN(=GWR~93>lOjGIe^7^9 z9iJ{?KHA^;K-!)gUr>|^SVAF z{#i5{?b{N0b7WvBz4XKh46)~!sf~Hu^~2!0tt9d2=nKqp|1LJHyRWa$Y^}ECW1>=k zd3&gq;Bb|rZXDO4Y264lxiIc7{D%(;b0WU?g99g36SaKymtS}LVh0nQwzU(hQ7Ax3 zi1ehfBOkd@7psw`m-+5Kc#uSs)VKmH0|>Q|ea#=|zU*WipH3bA@~SzbgK1PO63r`> z&|sOz!ze_GDUdah&U1BP;8TpLtinPC$FQwO!*V`)<@=c66X8vJzHV-u0vfJFK%<61 z{OAKYACEJ--sS1h8n2pHX!%;Nzf|{~T@?zU?#|2Vx@>&;wsXAYMO)ZOF5y1rXYMmw zD%Zv*xwyDyYceeGs4e@?B9gK3u_Pg+bHK;%?AG?XkAQfL*qa=RAJm@{f%x0ALOkdT zfm9=P-<tuBx#*`|YOON`Z$h~m|~O-!PfQ(d$H(LCWSWM50h0iW~45GnmJ2urKRGK){P-T4YA=bb?BHfxie+6@3G?PFw883qa1^DOtvADE7t zNgr^$9@m&XNxJKE@-9w>7))^BmW8W`Ki97Bn0m(BLdn$qeR@l_0d>IC=GC!F#+?FS zHL#nyx_oBNrOfvBvbsuTqD|eS2A5YCD&0q-_<2`!)*i-)wFMjp#^clCk&eWab2dqsugE1XFUNk=NS|V-|^0sAHOF2T%jCwp^-9y3_$>ieV7(PymzMj_w=Ed#F9`&$a2@SaJZv3}6o$6py zgXc|7lkaMPNY!o9duhd{5Ogbw?}4Rdcr!>NHhvu6`a@c-zP^5%XU-qE{1_y1IV4-A@CJ?xh?Ubs97v=KuucWIps(b{IJ~bSNdu4p| z%8Vu^=>0(k+($uEpwdG^kAwUlQpxz89Lx10)KYnQC0H>#o3%1<(Sy`*#GcV;Xm=+! zsIhPEl#ksF!4RHCYNF$pCm|nC{#WL(r!1DjT~c2UffE`Cl=#?KGAj=@-u%tPP4l4m zuw`mtk$3jsC*xIjnwAt%YwoFlsios7Rs#Jo5DCL{uC#Zg52_8Ke4OCAE@}b(+-za8C{ZldVvIknN$~_u*8uyfmDD=$yJUt+x8bA(Bs@0SXfs( z2bo|1?8r)8U7{J3_A{(`V1RTiHzmb&U;y*JNHd=3rHjK=P>`w7OH1YNGqi?E9@G(F zEQjTyX%0ClOk_(G6!yI(P%H6!;Kiua6-<+eD{7@fn6Top_u@!l{`rd+FVe@`#9)q4 z=wxt9s_W8H*9oz-giq0hwAtow^r<~D$obv=ni`h3*l%vOvbp=zDV@m9T9M%0Ne!g4 zR%IY8_7?1zp=cnNb%2EzB9& zu}O}I0HP-YJw3hWO?AxWxbE%?ZSUIK>w=k4K%&bm7vC82JuA1(6ZG`DTsiKNqM2FZ zkcw7Gx|U*JK|z=a9~5dG+d=L!ax+0(G2nQF;6Xu&+f}eDVID-y5A`jzF1t8DCo8|5nPf}j#y?;Ktp)7n?uxVmsVgNg zkV*g;)hc(#Ov(dkg5a-5E$ZE%jEC19^`q{^$IWtpH6$8_`=eA*6#!-i9baVUmEn^q z4eDRl+!t2caA|29{Nb36LV;>b$Dl^dx4q^r%k?L8s(f9JbdlzSUKG?YF$$HMI#Ta8 zWJ9r}7Ds&KJ(_=|yr_;4a_C^))@b-}0zZPGb9!m9tgb*p$lBVXXE2Ue>i#Q0Cyopd z(;I45wwC7?yE!5>&dnJ;Gz2o0(zf1E|1ex2)1m7;ko!)C8YQMA_4WcBJGX7E&~pPQ zXBevKH3(P6(5KAxxpL>M;zCKl9t(RAV>>8TQD05RTk4;%@$#*u+67XBp>(gLC*KiNTHdgO)>330mxl$FT^%^}Y*f+4 z`B$!N)mZ6ZFq4XC-t7tQeUf5K$UuyQ630P)o?}9rDH|?aax8Zr*I7z}S;H8L?;V zf2n!-#d&h6d45UN%n+YbQgAXhL$z}rVrQFrydZJ19A6->>^>HE#!^Y(2tZ{kr?~8# zNDAiuVa|(*w;@;hnw7HhKlIyyRP1VYcFW6AmNxe*;MB9^$o0Lzh?mqVkxiRtEqp~lL(irfq>}q zMMQTHO=@CJ4lP|RfvB48TA)y{50-%9>l2>$BF~!~{Qa%GfyqyJ);L~L3$&O`fnTH3 z^%01YCm_&T;T`Ai8PROGp@4B*tF_0ZFRHVAm16 z>JW2zj^1X1jbqZDMZ(r+^-S*Pl$1b#&?T?1Ft8U@w-*UkxP365F~7Rn4Q=p61qaO_ zdWVM-dV71_hpWCFeZr`Q43B&oi{@ z&JbSB6f&8d63~52^9SIL@(f^7Gzx;Y+OdRGv~*hlalbooCt8H?Yfg^)@O%46n3DT& z0>OHdp0fT^G&Q2KPEi6{+&)yyXpSzX#VhY!QD%^H#H^jaeO32fi7XzQqwVhOlp$S` zIgYZ>5gY~VF0v)nU_GL;K~XH-$ARV(W%$-})c~YtRjp7p#1y z4^?mC#yD(e^$**UpNp@0B{w%WFT1;qArm$E^&Drmm)*yz3A?n{*u97KyLFU+H>^5v zW5!C4U9c12k&V@BHsGg+EJ__Is0fAy?k^)zjh_?X2kyc@5S8wSKk&fB!c#rzxNcFoE!q3gk zX&b_8UE$Y=;3f5uDp%8+0|VKanewdND!~j$L|rh= zF*FVe3Sz93L&@`*{LY>8Jqy70n*{p@os`yiluj#gz3%8yx2eR-$GRb)vQfvVz(&Q_ z&o+&e!Q66;6QdRv^JC&-$f34Owd6|oE-xVejBZ#GvS_GRWidToza3$iuA~@WPdEC! zdvi*SR$x&i9T^jas0yOOAWVWTv-}Y&dmghVEYVSIT@MvLnQM; ztJpCQ+Z1^d8pj#nLPuzjJX`38iV9K^0xQ-cf;My}q@_}VDIBWnzkHU*PU5FwN{Gp* zWPYi3-jaPUW37c>Sz^o$T%UNt<0<;`wBi-!S|v96=<(C0=H_u2B-yF?#X^82va7No zx|UL{3~reJWaamf9(tIiEBr1QrtJ-Ttw%;uFJL;7rS;6r2G%P2*jQPgJ+}V-{!`z9 zK!hX7j{&6uGy$In7dL=xH0$EVlaTz9`-V_#!!?lSZPX?$x8%OU5n!0cBMj6f4(A~c z#EALXMPp_7f<94}VtIE42k&TJfgfgTyjI~AVCgYTW_JK4aMhN=O!c3$S9@%p4+Z+X zCKh$?-W6FegQHSqet;G_nl=hErV$(H0qBq@R(ioNiSI zRQ2ax$ejoA#BHsn?d@yxl9z!hK&8s7o>Wb72|ljFkJ)noh7F)D!FBLtsW}z^SCnz? z>$=AQy%AwO4k*L_xXQmaropT@gjD7atLc}!>0oMxVqM;pzjEj?1o`c7KF!LiNodcj z%S)X|j!FvF2CDmw^*+V_WIFLu(7kcU=U20}2jTCh#H@`R71_mqRGxAtE3#IL-Xxvs)Z#@_=d+ri3= z^7P~jh{jzs6PUlO$aR4H&~xuI9c(JwoZ6IYEYowFR=9Vl30j5~n|Q`@pcQjhg~D4c0CoVqi~G z0yl;Y&)CLRSk`!tX%;OkA)Ccnz%^czcf1K_%+={S>uc*Mtt=b$&94^{2csc%4z7cR zBe1KWMm8AWHw=fbKaUFBFNx^PkLwoPtsnDVgjJHaX~ejJ8eXy9(%u-K2|J=L`QJ~`B*m(%Pl>nN-Uw}K7AmyCD2CpGIQ>&umwa4472?e>3^ zELDKhqQHAidy>`-5|q8jFzU3MdA6&MPViP`i}TLL$6LgjOfiT}nWFmW4wne4D6{r1 zHn~O)?hd;-1YQ2N*|T{fQ3)p}p^SRzXC0pkQ5>4ARup0Mey*NICnHx%l*uTO2C<@* zIt)?7#3ahyW1-y^JDu@iWnMOrbsefP^Q6>BQmj;J_0GO7EYQ&`$_e9m$2Ef|CE2Ot4sya;0Uucscq{eX6d-_YO6o^Ci=Z|8hj^)m&W6|#9Zefz% zcP!nIhS}e5!he%Dh`tccq-TvINqH7~1hMSmG6lq5XYU3ra__Di1dlYB^l>%?_;QUr z#rTF$B1u3V)DDda%3=)}RG~1JkwO(Kr9#L$-#Frvs%mk>Q?+bb^(fOC)I!vD9sAO}Fz8I9#UGHiQ_7fvCHEWlL`w z)1pnStmMcQ8*P|@L?b#yq=b5d?J@hWK%6@qHhPDI*_CjajgIeZYq7=NpWH0V z`|K6GpwqWL(E#ziv9z!t+)51mHl4DijGiq}hPN9;3Mbp{t(4L?YENbrx>FEMVg%vX zGa|!Uf^&Mk_=??UBIlNujSz&!HEiYTqQT6&7Mwc}`DWoA2+Xk{3C68WAVtHhh3lG_ zyDxSg4IAka0`Xh`VoE!(bN9Qhfq0SFsO#RFKnba~LgEA|vdITyq4(&DKFuw)t4oL; z?`BT2ZK${c*31-#;$1xk@%idZ|E_#7N%fo@$tBv4v%5=`>008)Z&EOZJL-&?X)APJ zPHx2{_gH{j&S?5SSUKG(fqQ1ANhS5PR*nAg*Ok~UAk(jb+uZIA&mpn%8yo0Y=m8s1 z%>+d9BRK-UcpklivhK?rB7g0>G#d`Fh6HMEI>^%7jFP=SKbxVJIX15 zn(U(K(I#Lc%t)GLXR_sC!qtY|LHfR8X6Y4li7U zLo?gHCgnlBypSe4y+0dCB`SNg_kW9}H$Ls#s#zYAhRBKRPM#OfNoWYBzxaUKA_bTr zl`#ieJbI_SMA>NuCkA2cx)|WdjEdTuAL>nl9AT?AeQA|x>f-zjZ)CGCJ{<=*l%_AU z)4RS(1=Mwgboi2`pqj6E8~mNMnDNvyCsY7qVb^UvlAoY&OKfDLYoa|UZRyP25PDd+ z3;7sU6~c>{Zw)K4h$YlxR*%Q+&sMlmr-wRQKa|E+BUXy>JEk-k)UrhE7)bEy)4{>P zx3VA;(nV#k|AR{6Mru#!k=?u+oO@)^HkST;0Yg00=iRSjU2c3&V@;N02^;IbJg?WwVPuoZ)Nv7Cw+Dj_`QPE~#650{2u zA26uR+#FIs@{47J0>W3vlT0FuIss2jJWSCn8|H#wY>F+dH;HIDsDM0wDGOJZIp^!e zF;(3O#D>Ug&;9{e&)Y@YEd`;*b2viw-|x&$4;GKM^{~ zx+i!wD$Dy3g44zeq%w@Lk=qvj9yl|h{oSh-Vd@|bTd#RdmVd=nH{8GB((h$09+P|s z#G#v^A%L=i>Ob1yK5&)_(gvdM9IL&1*{O130&dPRbyXnHL_CHoEybt*Q}I2*qU^~j z)y&Q#k3)nOVvY7kD&A^LEVavjvAA_7lid@<#~C8_b3w{z^5{q%E`=SaQs>36UiXRd z;=wTN6c7x~6WjisOT2qF;FA{*{p<4MVnG2n8;J4*uov6f>ZSD`e*mos1EKg6$cG`5 zw1@lm4)jMjn`N)=`HJVg|m9= zq!SWyGPf0e0P$E{y!aFtyR{Y|()f{;`q+djy|+!Otp)C4HcL*{OO2_kHvzXP3}c3% z(79iM!fNpP4a;t}1Am903j{)cI6r>`(0^>?!HB;b|0ijN|0PPlp8)__Kz#og`Tta7 dBXWYtt5nt%A;~{T1o#B$=@{QAzHax^{{T4lJOuy% literal 0 HcmV?d00001 diff --git a/resources/views/website/auth-mail.blade.php b/resources/views/website/auth-mail.blade.php new file mode 100644 index 0000000..4ea8790 --- /dev/null +++ b/resources/views/website/auth-mail.blade.php @@ -0,0 +1,6 @@ +

    + {{__("Your Authentication Mail")}} +

    +

    + {{__("Password or new password is:")}} {{$code}} +

    diff --git a/resources/views/website/inc/website-head.blade.php b/resources/views/website/inc/website-head.blade.php index 3854bfa..05b03a6 100644 --- a/resources/views/website/inc/website-head.blade.php +++ b/resources/views/website/inc/website-head.blade.php @@ -6,7 +6,9 @@ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> - + @if(! config('app.demo')) + + @endif {{-- Please don't modify or remove generator --}} @@ -15,7 +17,7 @@ @yield('title') - @if(langIsRTL(config('app.locale'))) + @if(langIsRTL(app()->getLocale())) @else @@ -30,7 +32,7 @@ {{-- seo --}} - + @if(isset($breadcrumb)) {!! markUpBreadcrumbList($breadcrumb) !!} @endif diff --git a/routes/web.php b/routes/web.php index dfc4d33..21770f7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,6 +20,7 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group( Route::post('ckeditor/upload', [\App\Http\Controllers\Admin\CkeditorController::class, 'upload'])->name('ckeditor.upload'); Route::get('adminlogs', [\App\Http\Controllers\Admin\AdminLogController::class, 'index'])->name('adminlog.index'); + Route::get('guestlog', [\App\Http\Controllers\Admin\GuestLogController::class, 'index'])->name('guestlog.index'); Route::get('rates', [\App\Http\Controllers\Admin\RateController::class, 'index'])->name('rate.index'); Route::get('adminlogs/{user}', [\App\Http\Controllers\Admin\AdminLogController::class, 'log'])->name('adminlog.show'); Route::post('images/store/{gallery}', [\App\Http\Controllers\Admin\ImageController::class, 'store'])->name('image.store'); @@ -396,6 +397,7 @@ Route::middleware([\App\Http\Middleware\VisitorCounter::class]) Route::post('/customer/sign-in/do', [ClientController::class, 'singInDo'])->name('sign-in-do'); Route::get('/customer/sign-in', [ClientController::class, 'signIn'])->name('sign-in'); Route::get('/customer/sign-up', [ClientController::class, 'signUp'])->name('sign-up'); + Route::post('/customer/sign-up/now', [ClientController::class, 'signUpNow'])->name('sign-up-now'); Route::get('/customer/send/auth-code', [ClientController::class, 'sendSms'])->name('send-sms'); Route::get('/customer/check/auth-code', [ClientController::class, 'checkAuth'])->name('check-auth'); Route::get('/customer/profile', [ClientController::class, 'profile'])->name('profile');