在ActiveJDBC中实现记录级别或字段级别的安全性

时间:2017-06-14 21:27:34

标签: activejdbc javalite

伊戈尔, 我想知道你是否可以提供一些关于如何使用ActiveJDBC实现记录级别或可能的字段级安全性的提示。我玩了扩展Model类来覆盖Model中的一些方法。然而,它不是一个非常优雅的"解决方案并开始变得相当混乱。我知道你的Model类有某些事件的钩子,但似乎没有任何东西可以用来修改行为。我能够抓住"设置"并且"得到"没有太多黑客攻击的电话来实现简单的现场级安全性#34;类型逻辑,但是重载其他方法变得非常困难,例如那些返回List的方法。

同样,我更多地寻求有关如何执行此操作的建议,而无需实际更改Model或LazyList类(尽管我也可以使用该路径)。

我已经使用ActiveJDBC多年了,而且它确实是一个很好的构建框架。感谢您的辛勤工作!

1 个答案:

答案 0 :(得分:1)

哈哈,谢谢你直接通过名字给我发了言!

我们一直这样做,因为以明文形式保存数据库中的密码并不那么聪明。通常,我们对特定模型使用回调:http://javalite.io/lifecycle_callbacks

您想要做的是注册回调:http://javalite.io/lifecycle_callbacks#registration-of-external-listeners

或覆盖模型上的方法public function create() { $categories = Category::pluck('name','id'); return view('admin.product.create',compact('categories')); } public function store(Request $request) { $formInput = $request->except('image'); $image = $request->image; if($image){ $imageName = $image->getClientOriginalName(); $image->move('images', $imageName); $formInput['image']=$imageName; } Product::create($formInput); return redirect()->route('admin.index'); } ,因为每个模型也是其事件的事件侦听器。