编辑Laravel App的用户

时间:2015-04-16 17:40:20

标签: php forms laravel laravel-5

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

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

只能为管理员访问创建和编辑表单。这个表单在创建方面很有效,但是我试图想办法如何处理编辑方面。现在,密码字段显然是空的,因为Laravel隐藏了用户模型输入密码的默认行为。

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

如果管理员在该用户当前登录时将用户的角色更改为其他内容的情况,该怎么办呢。如何处理可能启用/阻止用户访问应用程序部分的事实基于他们何时使用之前的角色登录。

2 个答案:

答案 0 :(得分:1)

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

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

关于角色更改,我不了解Laravel的任何内置功能,强制用户在下次访问经过身份验证的页面时登录。但这可能是你想要做的。标记用户再次登录,或者只是等到他们的会话到期并且必须再次登录。

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

答案 1 :(得分:1)

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

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

因此,当管理员更改用户的角色时,如果该信息未存储在用户的会话中,则直接从数据库检查角色时,不需要任何反应。如果用户会话中的角色 且该会话位于数据库中,则可以从数据库中删除该用户的会话,强制他们重新登录下一个请求,以获取新角色。这仅适用于您有适当的过滤器来检查用户会话信息。