Обновление роли пользователя Laravel auth - PullRequest
0 голосов
/ 25 мая 2018

У меня есть проект, который я сделал, в Laravel.На моей панели администратора я могу просматривать список пользователей и выполнять CRUD-операции. Одна из них заключается в том, что я могу с помощью простой кнопки изменить роль пользователя с «user» на «admin».Теперь я не хочу, чтобы вошедший в систему пользователь мог понизить свои собственные привилегии, поскольку я, очевидно, получаю сообщение об ошибке, поскольку в сущности они там, где они не принадлежат.

Мой код для фактическоготаблица:

@if($users->count() > 0)
     @foreach ($users as $user)
         <tr>
             <td><img src="{{ asset($user->avatar) }}" alt="Avatar" width="45px" height="45px" style="border-radius: 50%"></td>
             <td>{{ $user->firstname }}</td>
             <td>{{ $user->lastname }}</td>
             <td>{{ $user->username }}</td>
             <td>{{ $user->email }}</td>
             <td>
                                    @if($user->admin)
                                        <a class="button warning small warnBtn" href="{{ route('user.not.admin',['id' => $user->id]) }}" class="btn btn-xs btn-danger"><i class="fas fa-hand-point-down fa-lg" style="color: white"></i> Make User</a>
                                    @else
                                        <a class="button warning small warnBtn" href="{{ route('user.admin',['id' => $user->id]) }}" class="btn btn-xs btn-success"><i class="fas fa-hand-point-up fa-lg" style="color: white"></i> Make Admin</a>
                                    @endif</td>
                                <td align="center"><a href="{{ route('user.edit', [$user->id]) }}"class="btn.btn-info"><i class="fas fa-edit fa-lg" style="color: green"></i></a></td>
                                <td align="center"><a href="{{ route('user.delete', [$user->id]) }}"><i class="fas fa-trash-alt fa-lg" style="color: red"></i></a></td>
                            </tr>
                        @endforeach
                    @else
                        <tr>
                            <th colspan="8"><h2 align="center">There Are Currently No Users</h2></th>
                        </tr>
                    @endif

Как бы я спрятал кнопку, только в строке для вошедшего в систему пользователя?Я попытался:

@if($user->admin && !Auth::user())//Show the button

Очевидно, что он сделал именно то, что я сказал, и выпал на утверждение else и изменил кнопку для каждого администратора.

Я на самом деле довольно озадачен здесь,это, наверное, самое простое решение тоже.Если у кого-нибудь есть совет, это было бы здорово, спасибо.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вам просто нужно сравнить, если зарегистрированный пользователь не совпадает с визуализированным пользователем внутри foreach.

@if($user->admin && $user->id != Auth::user()->id) // Show the button
   <a class="button warning small warnBtn" href="{{ route('user.not.admin',['id' => $user->id]) }}" class="btn btn-xs btn-danger">
       <i class="fas fa-hand-point-down fa-lg" style="color: white></i> 
       Make User
   </a>
@else
   [...]
@endif

Тогда, если они не отличаются, пользователь не будетбыть в состоянии понизить его привилегии.Рассматривали ли вы изменить эти кнопки для выбора?

0 голосов
/ 25 мая 2018

Вы можете сравнить их идентификаторы, чтобы увидеть, совпадает ли пользователь строки с зарегистрированным пользователем.

@if($user->admin && $user->id != Auth::user()->id) // Show the button
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...