门户用户如何在 Odoo 8 中修改自己的合作伙伴数据?
How can a portal user modify his own partner data in Odoo 8?
我试图创建一个模块,门户用户可以在其中修改关联的合作伙伴数据。但是我收到一个安全错误,只有管理员用户可以修改配置。
File
".../server/openerp/addons/base/res/res_config.py",
line 541, in execute
raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
我试过像这样授予它安全访问权限:
access_config_portal,portal_partner_config.settings,model_portal_partner_config_settings,base.group_portal,1,1,0,0
但没有用...我认为这是因为错误显示在 res_config.py 执行函数中它检查用户是否为 SUPERUSER:
if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
像这样:
class Configuration(models.TransientModel):
_inherit = 'res.config.settings'
_name = 'portal_partner_config.settings'
name = fields.Char()
street = fields.Char()
city = fields.Char()
@api.model
def get_default_inova_values(self,fields):
users = self.pool.get('res.users')
current_user = users.browse(self._cr, self._uid, self._uid, context=self._context)
name = current_user.partner_id.name
street = current_user.partner_id.street
city = current_user.partner_id.city
return {
'name': name,
'street': street,
'city': city,}
@api.one
def set_inova_values(self):
users = self.pool.get('res.users')
current_user = users.browse(self._cr, self._uid, self._uid, context=self._context)
users.sudo().write(self._cr, self._uid, current_user.id, {'name': self.name,
'street': self.street,
'city': self.city,
},
context=self._context)
有没有一种方法可以让门户用户更改他们的自定义数据,关联支付来源,例如信用卡?
已解决!
在视图定义中更改 res_config 的调用方法,如下所示:
<button string="Apply" type="object" name="execute2" class="oe_highlight" />
并在 res_config 模型中复制 execute def 并清除 SUPERUSERID 检查。
我没有覆盖执行函数,所以在其他配置中 SUPERUSERID 检查是 perfom
我试图创建一个模块,门户用户可以在其中修改关联的合作伙伴数据。但是我收到一个安全错误,只有管理员用户可以修改配置。
File ".../server/openerp/addons/base/res/res_config.py", line 541, in execute raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
我试过像这样授予它安全访问权限:
access_config_portal,portal_partner_config.settings,model_portal_partner_config_settings,base.group_portal,1,1,0,0
但没有用...我认为这是因为错误显示在 res_config.py 执行函数中它检查用户是否为 SUPERUSER:
if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
像这样:
class Configuration(models.TransientModel):
_inherit = 'res.config.settings'
_name = 'portal_partner_config.settings'
name = fields.Char()
street = fields.Char()
city = fields.Char()
@api.model
def get_default_inova_values(self,fields):
users = self.pool.get('res.users')
current_user = users.browse(self._cr, self._uid, self._uid, context=self._context)
name = current_user.partner_id.name
street = current_user.partner_id.street
city = current_user.partner_id.city
return {
'name': name,
'street': street,
'city': city,}
@api.one
def set_inova_values(self):
users = self.pool.get('res.users')
current_user = users.browse(self._cr, self._uid, self._uid, context=self._context)
users.sudo().write(self._cr, self._uid, current_user.id, {'name': self.name,
'street': self.street,
'city': self.city,
},
context=self._context)
有没有一种方法可以让门户用户更改他们的自定义数据,关联支付来源,例如信用卡?
已解决!
在视图定义中更改 res_config 的调用方法,如下所示:
<button string="Apply" type="object" name="execute2" class="oe_highlight" />
并在 res_config 模型中复制 execute def 并清除 SUPERUSERID 检查。 我没有覆盖执行函数,所以在其他配置中 SUPERUSERID 检查是 perfom