Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.10.2021 22:05:13

Изменение пароля пользователя в админке

как в админке изменить пароль пользователя в модальном окне? на текущий момент в моем приложении на странице редактирования можно изменить персональные данные пользователя кроме пароля. теперь я хочу реализовать изменение пароля пользователя, чтобы при клике на ссылку "изменить пароль" открывалось модальное окно и в форме ввода ввести новый пароль. нужно ли создавать отдельный метод в контроллере или можно это реализовать в одном методе update()?
Метод update

public function update(Request $request, $id)
    {
        $request->validate([
            'login' => 'required',
            'first_name' => 'required',
            'last_name' => 'required',
        ]);

        $user = User::find($id);
        $data = $request->all();

        $user->update($data);

        return redirect()->route('user.index')->with('success', 'Изменения сохранены');
    }

Вид edit

<div class="content">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-12">
                        <div class="card">
                            <div class="card-header">
                                <h3 class="card-title">Редактирование пользователя</h3>
                            </div>
                            <form role="form" method="post" action="{{ route('user.update', ['user' => $user->id]) }}" >
                                @csrf
                                @method('PUT')
                                <div class="card-body">
                                    <div class="form-group">
                                        <label for="login">Логин</label>
                                        <input type="text" name="login" class="form-control @error('login') is-invalid @enderror" value="{{ $user->login }}">
                                        <a href="#" data-toggle="modal" data-target="#modal-default">Изменить пароль</a>
                                    </div>

                                    <div class="form-group">
                                        <label for="email">E-mail</label>
                                        <input type="text" name="email" class="form-control @error('email') is-invalid @enderror" value="{{ $user->email }}">
                                    </div>

                                    <div class="form-group">
                                        <label for="first_name">Фамилия</label>
                                        <input type="text" name="first_name" class="form-control @error('first_name') is-invalid @enderror" value="{{ $user->first_name }}">
                                    </div>

                                    <div class="form-group">
                                        <label for="last_name">Имя</label>
                                        <input type="text" name="last_name" class="form-control @error('last_name') is-invalid @enderror" value="{{ $user->last_name }}">
                                    </div>

                                    <div class="form-group">
                                        <label for="middle_name">Отчество</label>
                                        <input type="text" name="middle_name" class="form-control @error('middle_name') is-invalid @enderror" value="{{ $user->middle_name }}">
                                    </div>
                                    <div class="form-group">
                                        <label for="role_id">Роль</label>
                                        <select name="role_id" class="form-control">
                                            <option value="">пользователь</option>
                                            @foreach($roleList as $role)
                                            <option value="{{ $role->id }}" @if($role->id == $user->role_id) selected @endif>{{ $role->name }}</option>
                                            @endforeach
                                        </select>
                                    </div>
                                </div>
                                <div class="card-footer">
                                    <button type="submit" class="btn btn-primary">Сохранить</button>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <div class="modal fade" id="modal-default">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <h4 class="modal-title">Изменение пароля</h4>
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
                    <div class="modal-body">
                        <div class="input-group mb-3">
                            <input type="password" name="password" class="form-control" placeholder="Введите новый пароль">
                        </div>
                        <div class="input-group mb-3">
                            <input type="password" name="password_confirmation" class="form-control" placeholder="Подтвердите новый пароль">
                        </div>
                    </div>
                    <div class="modal-footer justify-content-between">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        <button type="button" class="btn btn-primary">Save changes</button>
                    </div>
                </div>
            </div>
        </div>

Не в сети

#2 13.10.2021 19:11:10

Re: Изменение пароля пользователя в админке

как в админке изменить пароль пользователя

  А как насчет защиты пользовательских данных? smile

Не в сети

#3 13.10.2021 19:34:25

Re: Изменение пароля пользователя в админке

А как насчет защиты пользовательских данных?

в данном случае приложение будет являться что-то вроде хелпдеск-системой и администратор сам будет добавлять пользователей, но в то же время у пользователей будет возможность самостоятельно зарегаться, если администратор в настройках приложения включит эту возможность.

Не в сети

Подвал раздела