假设您有以下三个表,其中列出了重要的comlumns:
用户:user_id 实体:entity_id 事件:event_id,entity_id UserEntityPermissions:user_id,entity_id,is_admin
现在,当用户请求访问以查看给定一组搜索参数的事件或事件列表时,我想确保用户只能查看他们已被许可的实体的事件。 NHibernate有没有设施可以做到这一点?
此外,还有另一级别的权限,甚至更复杂,其中事件可以与其他对象关联,让我们称之为位置: 位置:location_id EventLocations:event_id,location_id UserLocationPermissions:user_id,location_id
在这种情况下,不是实体管理员的用户应该只能查看他们对所有链接位置具有权限的事件。似乎一旦我开始添加这些类型的权限,在事件查询中添加任何过滤器都会变得完全无法管理。
您将使用什么模式来简化中间层,以确保用户只能访问他们应该看到的事件?
您是否总是将所有事件从数据库返回到中间层,然后检查每个事件以查看用户是否具有权限?看起来这样做会有很大的开销。
答案 0 :(得分:0)
Ps:这只是一个实施的暗示。