我正在研究odoo v8,我正在尝试修改用户表单中的访问权限视图。我想修改表单,这样当我为每个模块的类别选择一个角色时,它将调用onchange方法并更新下面的复选框(技术设置,可用性和其他)。目前所做的更改只会在我保存表单后显示。但是我想让它更新onfly以便管理员在保存到数据库之前进行验证。但是当我从onchange方法返回一个dict时,系统似乎并不知道该字段的存在(例如in_group_1,in_group_2等虚拟字段)。反正有吗?
@api.v7
def check_acl(self, cr, uid, ids, my_field, context=None):
return {'value': {'in_group_1': True}}
答案 0 :(得分:0)
您可以通过此功能检查是否为管理员
def check_user(self, uid=None):
if uid is None:
uid = request.uid
is_admin = request.registry['res.users']._is_admin(request.cr, uid, [uid])
if not is_admin:
raise openerp.exceptions.AccessError("Only administrators can upload a module")
并使用以下参数调用此函数:
uid = request.session.authenticate(request.db, login, password)
self.check_user(uid)
您可以在onchange中使用此功能
@api.v7
def check_acl(self, cr, uid, ids, my_field, context=None):
if self.check_user(uid):
return {'value': {'in_group_1': True}}