Files
Odoo-Modules/fusion_helpdesk/__manifest__.py
gsinghpal 5e2e7ec29c fix(fusion_helpdesk): define missing _norm_email helper (NameError on every inbox endpoint)
The IDOR-hardening commit (fb345be3) referenced _norm_email in submit()
and _identity() but never defined or imported it, so every inbox endpoint
(my_tickets, ticket_detail, ticket_reply, unread_count) and the New-ticket
submit path raised NameError at runtime — surfaced as a JSON-RPC error in
the dialog. The smoke test missed it because it replicated build_scope_domain
directly instead of calling the controller.

Add _norm_email(*candidates) to utils.py (returns the first candidate that
email_normalize accepts, else '' — rejecting self-set wildcards like '%' so
the inbox scope key can't be widened), import it in main.py, drop the now-unused
email_normalize import there, and add unit tests + a guard that the controller
namespace resolves the name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 09:13:13 -04:00

49 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2026 Nexa Systems Inc.
# License OPL-1 (Odoo Proprietary License v1.0)
{
'name': 'Fusion Helpdesk Reporter',
'version': '19.0.1.4.1',
'category': 'Productivity',
'summary': 'One-click in-app bug reporting & feature requesting — '
'auto-creates a helpdesk.ticket on a central Odoo Helpdesk.',
'description': """
Fusion Helpdesk Reporter
========================
A standalone module that gives every backend user a quick "Report an
Issue / Request a Feature" button in the Odoo top systray.
Submissions are forwarded over JSON-RPC / XML-RPC to a central Odoo
instance (typically the support shop's main Odoo) and become
`helpdesk.ticket` records with screenshots, file attachments, and
diagnostic context (URL, user agent, current user/company, error
code) automatically captured.
Designed to ship alongside any other Fusion / Nexa Systems client
module bundle. No dependencies on the rest of Fusion Plating.
""",
'author': 'Nexa Systems Inc.',
'website': 'https://www.nexasystems.ca',
'license': 'OPL-1',
'depends': ['base', 'web', 'mail'],
'data': [
'security/fusion_helpdesk_groups.xml',
'security/ir.model.access.csv',
'data/ir_config_parameter_data.xml',
'views/res_config_settings_views.xml',
],
'assets': {
'web.assets_backend': [
'fusion_helpdesk/static/src/scss/fusion_helpdesk.scss',
'fusion_helpdesk/static/src/xml/fusion_helpdesk_systray.xml',
'fusion_helpdesk/static/src/xml/fusion_helpdesk_dialog.xml',
'fusion_helpdesk/static/src/js/fusion_helpdesk_systray.js',
'fusion_helpdesk/static/src/js/fusion_helpdesk_dialog.js',
],
},
'images': ['static/description/icon.png'],
'installable': True,
'auto_install': False,
'application': False,
}