请帮助我在Laravel设计以下案例:
Laravel应用程序的每一个实例(前。一家公司将拥有一个可以控制子用户的单一用户名(超级用户)。超级用户将登录该应用程序一次,允许子用户在一天内多次登录和输出。如果没有超级用户登录,子用户将根本无法访问该应用程序。
经理每天登录一次的POS系统。它不会整天都在外面登记。出纳员只需输入密码即可获得访问权限,5分钟后自动注销。商店里只有一个系统,所以收银员必须不停地开和关。如果经理不登录,出纳员将无法使用POS。
我是拉勒维尔的新手。我知道我需要多个守卫,但是我怎样才能访问auth,这样它就不会一直引导我到超级用户那里?我正在考虑为超级用户使用默认的laravel身份验证。但是其他用户呢?
任何在正确方向上的帮助或指示都是非常感谢的!谢谢!
发布于 2018-04-10 21:40:15
Laravel不能同时保存多个经过身份验证的用户,但是对于这个系统,您不一定需要它,实际上,没有它,您可能能够设计一个更健壮的系统。
定义问题(而不是解决方案),我们会说,“系统必须允许经理为出纳员启用和禁用POS,这样他们才能在授权时才能访问它”。
可以使用单个Laravel身份验证系统,使用不同的角色(manager
、cashier
)和相关权限来构建实现该目标的系统。这(幸运的)与拉勒维尔非常直截了当。
用户流将按照以下方式进行:
管理人员的流动将遵循以下方针:
管理仪表板将是管理人员可以控制其他用户(创建和管理出纳员(编辑、删除、审计))并将系统状态设置为为出纳员激活的地方,这将通过政策进行保护。
在业务开始时,经理会登录到POS并通过将"active“标志设置为true为出纳员激活它,然后经理将退出。每天,任何出纳员都可以登录并使用它。在一天结束时,经理会登录并为出纳员停用POS。
该系统的另一个好处是,您可以允许经理也是出纳员,因此,如果他们需要在白天使用POS,他们将不需要单独的帐户。用户管理器状态可以是一个简单的is_manager
数据库列。您还可以另外实现按计划安排的POS可用性,即:“允许收银员在上午9点至下午5点之间登录”。
对于这个项目,Laravel是一个很好的选择,因为它提供了您需要的一切,如果您对您的实现有其他问题,请告诉我:-)
https://stackoverflow.com/questions/49762544
复制相似问题