如何在 odoo 中添加安全性以添加、编辑、删除和查看数据?
How to add security in odoo for adding,editing,deleting and viewing of data?
我目前正在odoo 8中开发一个房间预订模块。很多用户可以预订房间。每个用户都可以查看其他人完成的预订的详细信息。但是用户不能编辑或删除其他用户创建的详细信息。但他可以创建、删除和编辑自己的预订。如何应用?
- 在您的模型中添加一个名为 security 的文件夹
- 添加名为 ir.model.access.csv
的文件
- 添加一个组,或 select 您将使用的组(从配置 > 用户 > 组)。我们将从 Account 模块中获取会计部分,但您可以创建自己的。
- 像这样添加一个header:
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
假设您的模型是 book.room,帐户组有两个权限,"manager" 和 "user":
经理线是这样的(他可以阅读,编辑,创建和删除):
"access_book_room_manager","book.room manager access", "model_book_room", "account.group_account_manager",1,1,1,1
用户行(只读):
"access_book_room_user","book.room user access", "model_book_room", "account.group_account_manager",1,0,0,0
现在,当您创建用户并授予组访问权限时,根据您是 select 用户还是管理员,他将只能访问读取权限或所有权限。
Book.room:
user_id = fields.Many2one('res.users', 'User')
@api.model
def create(self, values)
values['user_id'] = self.env.context.uid
return super(YourClassName, self).create(values)
@api.multi
def write(self, values)
if self.user_id.id != self.env.context.uid:
raise Warning('You cant edit this document')
return super(YourClassName, self).write(values)
我目前正在odoo 8中开发一个房间预订模块。很多用户可以预订房间。每个用户都可以查看其他人完成的预订的详细信息。但是用户不能编辑或删除其他用户创建的详细信息。但他可以创建、删除和编辑自己的预订。如何应用?
- 在您的模型中添加一个名为 security 的文件夹
- 添加名为 ir.model.access.csv 的文件
- 添加一个组,或 select 您将使用的组(从配置 > 用户 > 组)。我们将从 Account 模块中获取会计部分,但您可以创建自己的。
- 像这样添加一个header:
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
假设您的模型是 book.room,帐户组有两个权限,"manager" 和 "user":
经理线是这样的(他可以阅读,编辑,创建和删除):
"access_book_room_manager","book.room manager access", "model_book_room", "account.group_account_manager",1,1,1,1
用户行(只读):
"access_book_room_user","book.room user access", "model_book_room", "account.group_account_manager",1,0,0,0
现在,当您创建用户并授予组访问权限时,根据您是 select 用户还是管理员,他将只能访问读取权限或所有权限。
Book.room:
user_id = fields.Many2one('res.users', 'User')
@api.model
def create(self, values)
values['user_id'] = self.env.context.uid
return super(YourClassName, self).create(values)
@api.multi
def write(self, values)
if self.user_id.id != self.env.context.uid:
raise Warning('You cant edit this document')
return super(YourClassName, self).write(values)