]> _ Git - fluidbook-toolbox.git/commitdiff
wait #5809 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 15 Mar 2023 12:34:22 +0000 (13:34 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 15 Mar 2023 12:34:22 +0000 (13:34 +0100)
app/Http/Controllers/Admin/MyAccountController.php [new file with mode: 0644]
resources/views/account/my_account.blade.php [new file with mode: 0644]
routes/backpack/base.php [new file with mode: 0644]

diff --git a/app/Http/Controllers/Admin/MyAccountController.php b/app/Http/Controllers/Admin/MyAccountController.php
new file mode 100644 (file)
index 0000000..6eae7f8
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+// __('!! Mon compte')
+
+namespace App\Http\Controllers\Admin;
+use Illuminate\Http\Request;
+use Prologue\Alerts\Facades\Alert;
+
+class MyAccountController extends \Backpack\CRUD\app\Http\Controllers\MyAccountController
+{
+    public function getAccountInfoForm()
+    {
+        $this->data['title'] = __('Mon compte');
+        $this->data['user'] = $this->guard()->user();
+
+        return view('account.my_account', $this->data);
+    }
+
+    public function postMyAccountInfoForm(Request $request)
+    {
+
+        $allowedSettings = ['locale'];
+        $data = [];
+        foreach ($allowedSettings as $s) {
+            $data[$s] = $request->get($s);
+        }
+
+        $result = $this->guard()->user()->update($data);
+
+        if ($result) {
+            Alert::success(__('Information enregistrées'))->flash();
+        } else {
+            Alert::error(__('Une erreur s\'est produite'))->flash();
+        }
+
+        return redirect()->back();
+    }
+}
diff --git a/resources/views/account/my_account.blade.php b/resources/views/account/my_account.blade.php
new file mode 100644 (file)
index 0000000..9a64c94
--- /dev/null
@@ -0,0 +1,157 @@
+{{--__('!! Mon compte')--}}
+@extends(backpack_view('blank'))
+
+@section('after_styles')
+    <style media="screen">
+        .backpack-profile-form .required::after {
+            content: ' *';
+            color: red;
+        }
+    </style>
+@endsection
+
+@php
+    $breadcrumbs = [
+        trans('backpack::crud.admin') => url(config('backpack.base.route_prefix'), 'dashboard'),
+        trans('backpack::base.my_account') => false,
+    ];
+@endphp
+
+@section('header')
+    <section class="content-header">
+        <div class="container-fluid mb-3">
+            <h1>{{ __('Mon compte') }}</h1>
+        </div>
+    </section>
+@endsection
+
+@section('content')
+    <div class="row">
+
+        @if (session('success'))
+            <div class="col-lg-8">
+                <div class="alert alert-success">
+                    {{ session('success') }}
+                </div>
+            </div>
+        @endif
+
+        @if ($errors->count())
+            <div class="col-lg-8">
+                <div class="alert alert-danger">
+                    <ul class="mb-1">
+                        @foreach ($errors->all() as $e)
+                            <li>{{ $e }}</li>
+                        @endforeach
+                    </ul>
+                </div>
+            </div>
+        @endif
+
+        {{-- UPDATE INFO FORM --}}
+        <div class="col-lg-8">
+            <form class="form" action="{{ route('backpack.account.info.store') }}" method="post">
+
+                {!! csrf_field() !!}
+
+                <div class="card padding-10">
+
+                    <div class="card-header">
+                        {{ __('Modifier mes paramètres') }}
+                    </div>
+
+                    <div class="card-body backpack-profile-form bold-labels">
+                        <div class="row">
+                            <div class="col-md-6 form-group">
+                                @php
+                                    $field = 'locale';
+                                    $locales=['fr'=>'Français','en'=>'english'];
+                                    $v=old($field) ? old($field) : $user->$field;
+                                @endphp
+                                <label>{{ __('Langue') }}</label>
+                                <select class="form-control" name="{{ $field }}">
+                                    @foreach($locales as $code=>$label)
+                                        <option value="{{$code}}" @if($v==$code) selected @endif>{{$label}}</option>
+                                    @endforeach
+                                </select>
+                            </div>
+
+                            <div class="col-md-6 form-group">
+                                {{--                                @php--}}
+                                {{--                                    $label = config('backpack.base.authentication_column_name');--}}
+                                {{--                                    $field = backpack_authentication_column();--}}
+                                {{--                                @endphp--}}
+                                {{--                                <label class="required">{{ $label }}</label>--}}
+                                {{--                                <input required class="form-control" type="{{ backpack_authentication_column()=='email'?'email':'text' }}" name="{{ $field }}" value="{{ old($field) ? old($field) : $user->$field }}">--}}
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="card-footer">
+                        <button type="submit" class="btn btn-success"><i
+                                class="la la-save"></i> {{ __('Enregistrer') }}</button>
+                        <a href="{{ backpack_url() }}" class="btn">{{ __('Annuler') }}</a>
+                    </div>
+                </div>
+
+            </form>
+        </div>
+
+        {{-- CHANGE PASSWORD FORM --}}
+        <div class="col-lg-8">
+            <form class="form" action="{{ route('backpack.account.password') }}" method="post">
+
+                {!! csrf_field() !!}
+
+                <div class="card padding-10">
+
+                    <div class="card-header">
+                        {{ __('Modifier mon mot de passe') }}
+                    </div>
+
+                    <div class="card-body backpack-profile-form bold-labels">
+                        <div class="row">
+                            <div class="col-md-4 form-group">
+                                @php
+                                    $field = 'old_password';
+                                @endphp
+                                <label class="required">{{ __('Mot de passe actuel') }}</label>
+                                <input autocomplete="new-password" required class="form-control" type="password"
+                                       name="{{ $field }}" id="{{ $field }}" value="">
+                            </div>
+
+                            <div class="col-md-4 form-group">
+                                @php
+
+                                    $field = 'new_password';
+                                @endphp
+                                <label class="required">{{ __('Nouveau mot de passe') }}</label>
+                                <input autocomplete="new-password" required class="form-control" type="password"
+                                       name="{{ $field }}" id="{{ $field }}" value="">
+                            </div>
+
+                            <div class="col-md-4 form-group">
+                                @php
+
+                                    $field = 'confirm_password';
+                                @endphp
+                                <label class="required">{{ __('Confirmation du mot de passe') }}</label>
+                                <input autocomplete="new-password" required class="form-control" type="password"
+                                       name="{{ $field }}" id="{{ $field }}" value="">
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="card-footer">
+                        <button type="submit" class="btn btn-success"><i
+                                class="la la-save"></i> {{ __('Modifier mon mot de passe') }}</button>
+                        <a href="{{ backpack_url() }}" class="btn">{{__('Annuler') }}</a>
+                    </div>
+
+                </div>
+
+            </form>
+        </div>
+
+    </div>
+@endsection
diff --git a/routes/backpack/base.php b/routes/backpack/base.php
new file mode 100644 (file)
index 0000000..607c929
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+use Illuminate\Support\Facades\Route;
+
+/*
+|--------------------------------------------------------------------------
+| Backpack\Base Routes
+|--------------------------------------------------------------------------
+|
+| This file is where you may define all of the routes that are
+| handled by the Backpack\Base package.
+|
+*/
+
+Route::group(
+    [
+        'namespace' => 'Backpack\CRUD\app\Http\Controllers',
+        'middleware' => config('backpack.base.web_middleware', 'web'),
+        'prefix' => config('backpack.base.route_prefix'),
+    ],
+    function () {
+        // if not otherwise configured, setup the auth routes
+        if (config('backpack.base.setup_auth_routes')) {
+            // Authentication Routes...
+            Route::get('login', 'Auth\LoginController@showLoginForm')->name('backpack.auth.login');
+            Route::post('login', 'Auth\LoginController@login');
+            Route::get('logout', 'Auth\LoginController@logout')->name('backpack.auth.logout');
+            Route::post('logout', 'Auth\LoginController@logout');
+
+            // Registration Routes...
+            Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('backpack.auth.register');
+            Route::post('register', 'Auth\RegisterController@register');
+
+            // if not otherwise configured, setup the password recovery routes
+            if (config('backpack.base.setup_password_recovery_routes', true)) {
+                Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('backpack.auth.password.reset');
+                Route::post('password/reset', 'Auth\ResetPasswordController@reset');
+                Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('backpack.auth.password.reset.token');
+                Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('backpack.auth.password.email')->middleware('backpack.throttle.password.recovery:' . config('backpack.base.password_recovery_throttle_access'));
+            }
+        }
+
+        // if not otherwise configured, setup the dashboard routes
+        if (config('backpack.base.setup_dashboard_routes')) {
+            Route::get('dashboard', 'AdminController@dashboard')->name('backpack.dashboard');
+            Route::get('/', 'AdminController@redirect')->name('backpack');
+        }
+    });
+
+
+Route::group(
+    [
+        'namespace' => 'App\Http\Controllers\Admin',
+        'middleware' => config('backpack.base.web_middleware', 'web'),
+        'prefix' => config('backpack.base.route_prefix'),
+    ],
+    function () {
+        // if not otherwise configured, setup the "my account" routes
+        if (config('backpack.base.setup_my_account_routes')) {
+            Route::get('edit-account-info', 'MyAccountController@getAccountInfoForm')->name('backpack.account.info');
+            Route::post('edit-account-info', 'MyAccountController@postMyAccountInfoForm')->name('backpack.account.info.store');
+            Route::post('change-password', 'MyAccountController@postChangePasswordForm')->name('backpack.account.password');
+        }
+    }
+);