Openerp 7 拒绝访问文档类型:消息,操作:创建
Openerp 7 Access Denied Document type: Message, Operation: create
有了管理员用户,我可以做任何事情,添加、删除、修改等等。这是应该的。
当我添加电子邮件配置良好的新用户时(可以在 openerp 消息传递模块上发送和接收电子邮件),但是当我调用我的函数时从我的自定义模块发送电子邮件:
<button name="send_email" string="Notifier Participants" states="open" type="object" icon="gtk-jump-to"/>
我的函数:
def send_email(self, cr, uid, ids, context=None):
res_id=''
objects_review = self.browse(cr, uid, ids, context=context)
for object_review in objects_review:
participant_names=''
for user_id in object_review.user_ids:
participant_names += '<tr><td>'+user_id.name+'<td></tr>'
email_template_obj = self.pool.get('email.template')
template_ids = email_template_obj.search(cr, uid, [], context=context)
if template_ids:
current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
values = email_template_obj.generate_email(cr, uid, template_ids[0], ids, context=context)
values['subject'] = object_review.name
values['email_from'] = current_user.email
values['email_to'] = object_review.participant_emails
values['body_html'] = 'Bonjour, </br> Convocation à la revue
:</br> <table><tr><td>Revue :
</td>'+'<td>'+str(object_review.name)+'</td></tr><tr>
<td>Référence</td><td>'+str(object_review.reference)+'</td>
</tr><tr><td>Date de la Revue</td>
<td>'+str(object_review.date)+'</td></tr><tr><td>
Lieu de la Revue</td><td>'+str(object_review.lieu)+'
</td></tr><tr><td>Type de la Revue</td>
<td>'+str(object_review.type.name)+'</td></tr><tr><table>
<th>Participants</th>'+participant_names+'</table></tr>
<tr><td>Object :</td><td>'+str(object_review.objet)
or ''+'</td></tr></table>'
values['body'] = '<table><tr><td> </td></tr></table>'
values['res_id'] = False
mail_mail_obj = self.pool.get('mail.mail')
msg_id = mail_mail_obj.create(cr, uid, values, context=context)
mail_mail_obj.send(cr, uid, [msg_id], context=context)
#email_template_obj.send_mail(cr, uid, template_ids[0], ids[0], force_send=True, context=context)
return True
我遇到了这个错误:
{'body': u'
Hello,
\n\n \n ', 'attachments': [], 'attachment_ids': [], 'auto_delete': True, 'email_recipients': False, 'body_html': u'Bonjour, Convocation \xe0 la revue : Revue :dfR\xe9f\xe9rence/001/2015Date de la Revue2015-09-16 14:57:32Lieu de la RevueFalseType de la RevueNoneParticipantsAdministratorObject :False', 'mail_server_id': False, 'email_to': u'admin@example.com', 'reply_to': False, 'email_cc': False, 'model': u'document.page.history', 'res_id': False, 'email_from': u'echange.nad@gmail.com', 'subject': u'df'}
2015-09-16 14:59:57,552 5688 WARNING tist openerp.osv.orm: No such field(s) in model mail.mail: attachments, email_recipients.
2015-09-16 14:59:57,564 5688 ERROR tist openerp.netsvc: Access Denied
The requested operation cannot be completed due to security restrictions. Please contact your system administrator.
(文档类型:消息,操作:创建)
追溯(最近一次通话):
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/netsvc.py”,第 306 行,在 dispatch_rpc 中
结果 = ExportService.getService(service_name).dispatch(方法, 参数)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/service/web_services.py”,第 632 行,正在调度中
res = fn(db, uid, *params)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 190 行,在 execute_kw 中
return self.execute(db、uid、obj、方法、*args、**kw 或 {})
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 132 行,在包装器中
return f(self, dbname, *args, **kwargs)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 199 行,在执行中
res = self.execute_cr(cr, uid, obj, 方法, *args, **kw)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/audittrail/audittrail.py”,第 532 行,在 execute_cr 中
return fct_src(cr, uid, 模型, 方法, *args, **kw)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 187 行,在 execute_cr 中
return getattr(对象, 方法)(cr, uid, *args, **kw)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mgmtsystem_review/mgmtsystem_review.py”,第 129 行,在 send_email 中
msg_id = mail_mail_obj.create(cr, uid, values, context=context)
创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/fetchmail/fetchmail.py”,第 305 行
res = super(mail_mail, self).create(cr, uid, values, 上下文=上下文)
创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_mail.py”,第 93 行
return super(mail_mail, self).create(cr, uid, values, 上下文=上下文)
创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/orm.py”,第 4489 行
record_id = self.pool.get(table).create(cr, user, tocreate[table], context=parent_context)
创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_message.py”,第 754 行
newid = super(mail_message, self).create(cr, uid, 值, 上下文)
创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/orm.py”,第 4615 行
self.check_access_rule(cr, 用户, [id_new], 'create', 上下文=上下文)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/portal/mail_message.py”,第 63 行,在 check_access_rule 中
return super(mail_message, self).check_access_rule(cr, uid, ids=ids, operation=operation, context=context)
文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_message.py”,第 744 行,在 check_access_rule 中
(self._description, 运算))
except_osv: (u'访问被拒绝', u'请求的操作由于安全限制无法完成。请联系您的系统管理员。\n\n(文档类型:消息,操作:创建)')
我使用函数 send_mail 而不是发送,我有同样的问题
所以我在模型 mail.message 上创建了一个规则:
<record id="mes_email_rule" model="ir.rule">
<field name="name">Email send</field>
<field name="model_id" ref="mail.model_mail_message"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field eval="True" name="perm_unlink"/>
<field eval="True" name="perm_write"/>
<field eval="True" name="perm_read"/>
<field eval="True" name="perm_create"/>
但还是有同样的问题
我通过创建一个操作服务器来解决这个问题,我从我的按钮调用发送电子邮件,所以我不再使用该功能 send_email。
有了管理员用户,我可以做任何事情,添加、删除、修改等等。这是应该的。 当我添加电子邮件配置良好的新用户时(可以在 openerp 消息传递模块上发送和接收电子邮件),但是当我调用我的函数时从我的自定义模块发送电子邮件:
<button name="send_email" string="Notifier Participants" states="open" type="object" icon="gtk-jump-to"/>
我的函数:
def send_email(self, cr, uid, ids, context=None):
res_id=''
objects_review = self.browse(cr, uid, ids, context=context)
for object_review in objects_review:
participant_names=''
for user_id in object_review.user_ids:
participant_names += '<tr><td>'+user_id.name+'<td></tr>'
email_template_obj = self.pool.get('email.template')
template_ids = email_template_obj.search(cr, uid, [], context=context)
if template_ids:
current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
values = email_template_obj.generate_email(cr, uid, template_ids[0], ids, context=context)
values['subject'] = object_review.name
values['email_from'] = current_user.email
values['email_to'] = object_review.participant_emails
values['body_html'] = 'Bonjour, </br> Convocation à la revue
:</br> <table><tr><td>Revue :
</td>'+'<td>'+str(object_review.name)+'</td></tr><tr>
<td>Référence</td><td>'+str(object_review.reference)+'</td>
</tr><tr><td>Date de la Revue</td>
<td>'+str(object_review.date)+'</td></tr><tr><td>
Lieu de la Revue</td><td>'+str(object_review.lieu)+'
</td></tr><tr><td>Type de la Revue</td>
<td>'+str(object_review.type.name)+'</td></tr><tr><table>
<th>Participants</th>'+participant_names+'</table></tr>
<tr><td>Object :</td><td>'+str(object_review.objet)
or ''+'</td></tr></table>'
values['body'] = '<table><tr><td> </td></tr></table>'
values['res_id'] = False
mail_mail_obj = self.pool.get('mail.mail')
msg_id = mail_mail_obj.create(cr, uid, values, context=context)
mail_mail_obj.send(cr, uid, [msg_id], context=context)
#email_template_obj.send_mail(cr, uid, template_ids[0], ids[0], force_send=True, context=context)
return True
我遇到了这个错误:
{'body': u'
Hello,
\n\n \n ', 'attachments': [], 'attachment_ids': [], 'auto_delete': True, 'email_recipients': False, 'body_html': u'Bonjour, Convocation \xe0 la revue : Revue :dfR\xe9f\xe9rence/001/2015Date de la Revue2015-09-16 14:57:32Lieu de la RevueFalseType de la RevueNoneParticipantsAdministratorObject :False', 'mail_server_id': False, 'email_to': u'admin@example.com', 'reply_to': False, 'email_cc': False, 'model': u'document.page.history', 'res_id': False, 'email_from': u'echange.nad@gmail.com', 'subject': u'df'} 2015-09-16 14:59:57,552 5688 WARNING tist openerp.osv.orm: No such field(s) in model mail.mail: attachments, email_recipients. 2015-09-16 14:59:57,564 5688 ERROR tist openerp.netsvc: Access Denied The requested operation cannot be completed due to security restrictions. Please contact your system administrator.
(文档类型:消息,操作:创建) 追溯(最近一次通话): 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/netsvc.py”,第 306 行,在 dispatch_rpc 中 结果 = ExportService.getService(service_name).dispatch(方法, 参数) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/service/web_services.py”,第 632 行,正在调度中 res = fn(db, uid, *params) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 190 行,在 execute_kw 中 return self.execute(db、uid、obj、方法、*args、**kw 或 {}) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 132 行,在包装器中 return f(self, dbname, *args, **kwargs) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 199 行,在执行中 res = self.execute_cr(cr, uid, obj, 方法, *args, **kw) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/audittrail/audittrail.py”,第 532 行,在 execute_cr 中 return fct_src(cr, uid, 模型, 方法, *args, **kw) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py”,第 187 行,在 execute_cr 中 return getattr(对象, 方法)(cr, uid, *args, **kw) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mgmtsystem_review/mgmtsystem_review.py”,第 129 行,在 send_email 中 msg_id = mail_mail_obj.create(cr, uid, values, context=context) 创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/fetchmail/fetchmail.py”,第 305 行 res = super(mail_mail, self).create(cr, uid, values, 上下文=上下文) 创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_mail.py”,第 93 行 return super(mail_mail, self).create(cr, uid, values, 上下文=上下文) 创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/orm.py”,第 4489 行 record_id = self.pool.get(table).create(cr, user, tocreate[table], context=parent_context) 创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_message.py”,第 754 行 newid = super(mail_message, self).create(cr, uid, 值, 上下文) 创建文件“/home/nadia/barid/server2/openerp15-9-15/openerp/osv/orm.py”,第 4615 行 self.check_access_rule(cr, 用户, [id_new], 'create', 上下文=上下文) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/portal/mail_message.py”,第 63 行,在 check_access_rule 中 return super(mail_message, self).check_access_rule(cr, uid, ids=ids, operation=operation, context=context) 文件“/home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_message.py”,第 744 行,在 check_access_rule 中 (self._description, 运算)) except_osv: (u'访问被拒绝', u'请求的操作由于安全限制无法完成。请联系您的系统管理员。\n\n(文档类型:消息,操作:创建)')
我使用函数 send_mail 而不是发送,我有同样的问题
所以我在模型 mail.message 上创建了一个规则:
<record id="mes_email_rule" model="ir.rule">
<field name="name">Email send</field>
<field name="model_id" ref="mail.model_mail_message"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field eval="True" name="perm_unlink"/>
<field eval="True" name="perm_write"/>
<field eval="True" name="perm_read"/>
<field eval="True" name="perm_create"/>
但还是有同样的问题
我通过创建一个操作服务器来解决这个问题,我从我的按钮调用发送电子邮件,所以我不再使用该功能 send_email。