在 PHP laravel 中审核用户操作

Posted

技术标签:

【中文标题】在 PHP laravel 中审核用户操作【英文标题】:Audit users actions in Php laravel 【发布时间】:2018-03-25 07:31:46 【问题描述】:

我正在为 laravel 5 中的项目开发管理部分。我有多个管理员和一个超级管理员。在这个项目中,超级管理员可以审核子管理员的操作。

现在超级管理员想检查其他管理员在管理面板上正在做什么。

示例: 管理员更新了用户信息,例如地址、电话号码或电子邮件。超级管理员如何知道是哪个管理员执行了此操作以及管理员更新的用户是谁。

如果我将每个操作都保存到数据库表中,最好的做法是什么?或任何最佳实践?

【问题讨论】:

尝试管理每个查询的活动日志 使用审计表 我认为最好的方法是在用户更新时使用模型事件,然后检查是否是更新它的子经理,然后在您应该创建的活动表中添加一行;)跨度> 嗯,你应该有一个日志模型..每个动作都会保存一个日志.. 【参考方案1】:

您必须创建一个新表来存储管理员执行的所有操作。

您的新表应该包含存储以下详细信息的字段

who - The person who performed an action

what - what action he/she performed(update, delete)

when - when the action is performed

on whom - on which user the action is performed

现在您必须在您要跟踪的所有模型(用户)上创建 observers

见 - laravel Observers

您的观察者应该拥有管理员执行操作的所有方法(创建、存储、更新、删除)

您的观察者方法应该将该管理员执行的操作记录到您新创建的表中。

超级管理员可以查看此表中的条目以跟踪管理员的行为。

【讨论】:

@user7597883 如果你喜欢这个答案,你应该考虑接受它

以上是关于在 PHP laravel 中审核用户操作的主要内容,如果未能解决你的问题,请参考以下文章

php注册审查

Laravel 审核更新事件不起作用

如何用PHP做到页面注册审核

Laravel 5.2 - 用户仅在成功登录重定向后登录,一旦我执行操作用户不再登录

从Laravel,Yii,Thinkphp中学习php 操作数据库的事务嵌套

如何在 laravel php 中使用 ajax 根据日期范围从 mysql 数据库中检索数据?