拦截JayStorm数据服务的插入/更新/删除/查询



如果我想注入一些代码在我的odata插入/更新/删除/查询结束点有办法做到这一点吗?

例如:

  • 在查询中,我想注入基于进一步约束的安全性(如如果角色是x,则返回数据子集)。
  • 更新我想防止某些字段被更新(如CreateDate),所以某种形式的overpost保护。或者我不允许普通用户更新管理数据列。
  • 在插入/更新上,我想让基于服务器的逻辑计算某些列值,并进一步触发某些服务器操作。
  • 在删除时,我想取消删除,将记录插入到审计表中,并设置实体的DeleteDate列-也称为软删除。

这些可能吗?有关于如何做到这一点的文档/教程吗?

谢谢

我们没有列级安全,只有表级安全。然而,你可以实现你想要使用前/后事件,如beforeCreate, beforeUpdate,在那里你可以插入你的服务器端javascript代码进行干预。

我推荐JayData - the Entity中有关事件处理程序的最新博文你可以在JayStorm PaaS应用程序管理器上定制之前/之后的entityset级别事件。

实现基于角色的行为:'this'变量包含一个用户,您可以使用它来实现自定义逻辑。

var self = this; //it's better to avoid confusions later
var currentUser = self.User;

检查用户组成员:

if (currentUser.Groups.indexOf('admin') <0 ){
  items.forEach(function(it)){
    //items is an array of created/updated/deleted entities
  }
}

用户属性:Groups——返回字符串数组登录名,名,姓,启用,密码

Softdelete 这需要定制开发。我建议您禁止对安全组执行删除操作,并发布一个服务方法来提供此功能。

相关内容

  • 没有找到相关文章

最新更新