0

我是 Laravel 的新手,所以我想知道是否有人可以告诉我实现临时用户的最佳方法。我尝试添加一个变量,为我带来 active 的值,然后尝试为每个角色添加条件,但它不起作用。有人可以帮助我吗?

  • 我的 LoginController 中有这个

    public function login()
        {
            $credentials = $this->validate(request(), [
                'email' => 'email|required|string',
                'password' => 'required|string',
            ]);
    
    
            if (Auth::attempt($credentials)) { //auth attemptdevuelve verdadero o falso en caso de que las credenciales correspondan o no
                //Inician cambios RDAN
                $user = Auth::user();
                if ($user->hasRole('admin')) {
                    return redirect('main');
                } else if ($user->hasRole('externo')) {
                    return redirect('es/user_form');
                } else if ($user->hasRole('profesor')) {
                    return redirect('main');
                } else if ($user->hasRole('registrador')) {
                    return redirect('select_lang');
                } else {
                    return back()->withErrors(['email' => 'Incorrect user permissions'])
                        ->withInput(request(['email']));
                }
                //Terminan cambios RDAN
    
            } else {
                return back()->withErrors(['email' => 'Incorrect user permissions'])
                    ->withInput(request(['email']));
            }
        }

在 MySQL 数据库中,我在“users”表中添加了“tinyint(1)”类型的“活动”列。所以我想添加一个条件或验证用户是活动(1)还是非活动(0)的东西。我还想将它添加到用户“管理员”可以使用复选框启用或禁用用户的视图中。

  • 索引视图:

   <td class="small  text-center">
      <div class="row">
         <div>
           <!--VIEW-->
           <button onclick="verUsuario({{$user->id}})" class="btn btn-sm btn-outline-success m-1">
           <i class="bi bi-eye align-content-center"></i>
           </button>
         </div>    
         <div>
           <!--EDIT-->
           <button onclick="editarUsuario({{$user->id}})" class="btn btn-sm btn-outline-warning m-1">
           <i class="bi bi-pencil-fill align-content-center"></i>
           </button>
         </div>
           <!--Delete-->
           <form id="delete"  action="{{url('Usuario/'.$user->id)}}" method="post">
            {{csrf_field()}}
            {{method_field('DELETE')}}
              <button type="submit" onclick="return confirm('Va a borrar la usuario {{$user->name}} ¿está seguro?')" class="btn btn-sm btn-outline-danger m-1">
              <i class="bi bi-trash-fill align-content-center"></i></button>
           </form>
        </div>
     </td>

4

1 回答 1

0

您可以再添加 1 个条件。

public function login()
        {
            $credentials = $this->validate(request(), [
                'email' => 'email|required|string',
                'password' => 'required|string',
            ]);
    

        if (Auth::attempt($credentials)) { //auth attemptdevuelve verdadero o falso en caso de que las credenciales correspondan o no
            //Inician cambios RDAN
            $user = Auth::user();
          if($user->active)  // checking your user is active or not
        {
            if ($user->hasRole('admin')) {
                return redirect('main');
            } else if ($user->hasRole('externo')) {
                return redirect('es/user_form');
            } else if ($user->hasRole('profesor')) {
                return redirect('main');
            } else if ($user->hasRole('registrador')) {
                return redirect('select_lang');
            } else {
                return back()->withErrors(['email' => 'Incorrect user permissions'])
                    ->withInput(request(['email']));
            }
          }
           else
          {
              Auth::logout(); //to logout user
        return back()->withErrors(['email' => 'Account Deactivated please contact admin'])->withInput(request(['email'])); // error message if user deactivated.
              }
            //Terminan cambios RDAN

        } else {
            return back()->withErrors(['email' => 'Incorrect user permissions'])
                ->withInput(request(['email']));
        }
    }

来到问题的第二部分,您可以在选中或未选中复选框时简单地调用 ajax。

于 2022-01-06T07:26:43.747 回答