Odoo 10按用户权限隐藏‘新建消息’按钮问题求助
解决Odoo Chatter中“新建消息”按钮仅管理员可见的问题
我看到你已经尝试通过groups属性来限制“新建消息”按钮的可见性,但没达到预期效果对吧?在Odoo自定义Chatter模板时,有几个常见的问题和可行的修复方案,我给你详细梳理下:
确认模板继承方式是否正确
如果你是直接重写mail.Chatter模板(用<t t-name="mail.Chatter">),很可能覆盖了原模板的上下文逻辑,导致groups属性无法正常解析。建议改用继承模式,保留原模板的基础结构:<t t-inherit="mail.Chatter" t-inherit-mode="primary"> <xpath expr="//button[hasclass('o_chatter_button_new_message')]" position="replace"> <button type="button" class="btn btn-sm btn-primary o_chatter_button_new_message" title="Send a message" groups="toweriq_pm.group_manager"> New message </button> </xpath> </t>这种方式只会替换目标按钮,不会破坏原Chatter的其他功能。
验证组的XML ID准确性
检查toweriq_pm.group_manager这个组的XML ID是否完全正确:- 进入Odoo后台的
Settings > Users & Companies > Groups - 搜索目标组,查看它的外部标识符(XML ID)是否和你代码里的一致
- 同时确认管理员用户确实属于这个组
- 进入Odoo后台的
改用
t-if条件渲染替代groups属性
有时候模板上下文的问题会导致groups属性失效,直接用user.has_group()方法做条件判断更可靠:<button type="button" class="btn btn-sm btn-primary o_chatter_button_new_message" title="Send a message" t-if="user.has_group('toweriq_pm.group_manager')"> New message </button>Odoo模板默认可以访问
user对象,has_group()方法会直接校验当前用户是否属于指定组。检查CSS样式干扰
偶尔会有自定义CSS或者原模板的CSS强制显示按钮的情况,你可以用浏览器开发者工具(F12)检查按钮元素的display属性,确认没有被强制设置为block或inline-block。如果有,可以添加自定义CSS规则:.o_chatter_button_new_message:not(.o_visible) { display: none !important; }
最后别忘了,修改完代码后要升级对应的模块,并清除浏览器缓存(Ctrl+Shift+R强制刷新),确保新的模板和逻辑被加载。
内容的提问来源于stack exchange,提问作者Ridma Gimhani
相关产品推荐
相关产品推荐

