【问题标题】:Editing A User For Laravel App为 Laravel 应用程序编辑用户
【发布时间】:2015-06-23 07:12:36
【问题描述】:

在尝试将包含用户创建的所有输入的表单部分放在一起时,我对此有几个问题。

表单字段:first_name、last_name、email、password、password_confirmation、user_role_id。

只有管理员才能访问创建和编辑表单。该表单在事物的创建方面效果很好,但是我正在尝试考虑如何处理编辑方面。现在密码字段显然是空的,因为 Laravel 的默认行为是对用户模型隐藏密码输入。

所以对于管理员编辑用户我应该做些什么来调整。由于这种情况可能只是电子邮件地址或名称需要更改,然后单击提交按钮将没有密码值。我是否继续并让密码字段不隐藏。

另外,如果管理员在用户当前登录时将用户的角色更改为其他角色,该怎么办?我该怎么做才能启用/阻止用户根据他们何时访问应用程序的某些部分?以之前的角色登录。

【问题讨论】:

    标签: php forms laravel laravel-5


    【解决方案1】:

    我会使用数据库来存储会话,这样您就可以删除特定用户的会话数据,这将迫使他们在下一次请求时重新进行身份验证。

    在处理请求之前,您需要使用过滤器来检查数据库中是否存在会话数据。如果没有,请重定向到登录。

    因此,当管理员更改用户的角色时,如果该信息未存储在用户的会话中,则如果直接从数据库中检查角色,则无需重新验证。如果角色 在用户会话中并且该会话在数据库中,则您可以从数据库中删除用户的会话,强制他们在下一次请求时重新登录以获取新角色。这只有在您有适当的过滤器来检查用户会话信息时才有效。

    【讨论】:

      【解决方案2】:

      希望我能正确理解您的问题。如果没有,请告诉我。

      关于密码,我之前所做的是将密码和确认密码输入字段留空。然后,如果第一个密码字段中有任何内容,那么我假设您想要更改密码。然后我验证以确保两个密码匹配并相应地更新用户。

      关于角色更改,我不知道 Laravel 有任何内置功能可以强制用户在下次访问经过身份验证的页面时登录。但这可能是您想要做的。要么标记用户重新登录,要么等到他们的会话过期并重新登录。

      我很想知道其他人是如何处理这种情况的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-23
        • 2012-08-23
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        • 1970-01-01
        相关资源
        最近更新 更多