web2py:限制用户只能看到自己创建的行
我想限制用户只能访问他们自己创建的数据库条目。有没有什么标准的方法可以在web2py中做到这一点?我看到auth.requires_permission这个方法看起来不错,但它似乎需要一个固定的行ID,这并不能解决我的问题。
5 个回答
0
在数据库里添加一个'created_by'字段。当你插入记录的时候,把用户的ID也插进去。这样在选择数据的时候就可以用这个字段来筛选了。
0
你可以通过CRUD来实现这个功能。
http://web2py.com/book/default/chapter/08#Authorization-and-CRUD
你可以为每一条记录定义权限,只需要写一点代码,就能在创建记录时把默认权限设置为用户组的ID。
1
这个问题不应该由web2py来处理。你的数据库应该负责管理用户权限,所以你需要查看你使用的数据库后端的文档。
另外,如果每个人在前端都有一个单独的用户账户,而这些账户都连接到同一个数据库用户,那么你就无法控制权限了,除非在数据库上面加一堆独立的“安全”代码。举个例子,数据库中的一个表可以根据web2py连接时提供的某个字段来判断“用户”,然后相应地设置权限。数据库之所以有用户,就是为了这个目的。