2016-07-07 2 views
6

포털 사용자가 관련 파트너 데이터를 수정할 수있는 모듈을 만들려고했습니다. 하지만 관리자 권한 사용자 만 구성을 수정할 수있는 보안 오류가 발생합니다.포털 사용자는 어떻게 Odoo 8에서 자신의 파트너 데이터를 수정할 수 있습니까?

파일 ".../서버/openerp/애드온/기본/고해상도/res_config.py" 라인 (541)에 인상 openerp.exceptions.AccessError을 실행 (_ ("관리자 만 변경할 수 있습니다

나는 그것을 보안이 같은 접근주는 시도 설정 ")) :

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

,

하지만 ... 난 오류가 res_config.py에 수퍼 유저로 사용자를 확인의 기능을 실행하는 것을 보여줍니다 렸기 때문에 그것을 생각 작동하지 않았다 : 이것처럼

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) 

포털 사용자가 신용 카드와 같은 결제 소스를 연결하는 맞춤 데이터를 변경하는 방법은 무엇입니까?

답변

2

해결되었습니다!

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

를 상기 res_config 모델의 데프 실행 복사 SUPERUSERID 체크 소거 : 뷰 정의

이 같은 res_config의 호출 방법을 변경. 실행 기능을 덮어 쓰지 않으므로 다른 설정에서 SUPERUSERID 검사가 수행됩니다