我想将用户限制为只有他们创建的数据库条目。这是他们的任何标准web2py方式吗? auth.requires_permission看起来不错,但它似乎需要一个硬编码的行ID,这不能解决我的问题。
答案 0 :(得分:1)
这不应该由web2py处理。您的数据库应该为此处理用户权限,因此您需要查看正在使用的db后端的文档。
此外,如果每个人的前端都有一个单独的用户帐户,所有用户帐户都连接到一个数据库用户,那么如果没有添加一堆独立的“安全”代码,您将无法控制权限。及其周围的数据库。例如,数据库中的一个表,用于查看web2py连接时提供的字段,以确定“用户”,然后相应地设置手动编码的权限。出于这个原因,数据库有用户。
答案 1 :(得分:0)
你可以使用CRUD
来做到这一点http://web2py.com/book/default/chapter/08#Authorization-and-CRUD
您可以为每条记录定义权限,只需一点代码,您就可以在创建记录时将权限默认设置为用户组ID。
答案 2 :(得分:0)
在db中添加'created_by'字段。插入记录时插入用户ID。使用此选项进行过滤。
答案 3 :(得分:0)
也许尝试使用常见的过滤器: http://web2py.com/books/default/chapter/29/06?search=common+filter#Common-filters
db.some_table._common_filter = lambda query: db.some_table.created_by == auth.user.id
答案 4 :(得分:0)
使用callback on delete函数,如果用户未创建该行,则返回True。
db.some_table._bedfore_delete = lambda query: False if db.some_table.created_by == auth.user_id else True