2016-07-07 19 views
6

Portal kullanıcılarının ilişkili iş ortağı verilerini değiştirebileceği bir modül oluşturmaya çalışıyordum. Ancak, yalnızca yönetici kullanıcıların yapılandırmaları değiştirebileceği bir güvenlik hatası alıyorum.Portal kullanıcı Odoo 8'deki kendi iş ortağı verilerini nasıl değiştirebilir?

Dosya ".../sunucu/OpenERP/addons/baz/res/res_config.py", hat 541, içinde zam openerp.exceptions.AccessError yürütmek (_ ("Yalnızca yöneticiler değiştirebilir

ben o güvenlik böyle erişim sağlayarak çalıştı ayarları ")):

access_config_portal, portal_partner_config.settings, model_portal_partner_config_settings, base.group_portal, 1,1,0,0

Ama ... ben hata res_config.py o SUPERUSER olmak kullanıcıları kontrol var işlevi yürütmek olduğunu gösteriyor nedeniyle bu derste öyle düşünüyorum işe yaramadı: Bunun gibi

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) 

Portal kullanıcılarına özel verilerini değiştirmenin, kredi kartı gibi bir ödeme kaynağını ilişkilendirmenin bir yolu var mı?

cevap

2

Çözüldü!

<button string="Apply" type="object" name="execute2" class="oe_highlight" /> 

ve res_config modelinde def yürütmek kopyalayıp SUPERUSERID kontrolünü silmek: görünüm tanımda

böyle res_config çağrı yöntemini değiştirmek. Yürütme işlevinin üzerine yazmam, diğerlerinde SUPERUSERID denetiminin yapılandırması perfom

İlgili konular