TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Sales/Point of Sale
Folder size
0.91 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-10-05 00:19:49
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
odoo, Odoo Translation Bot, Christophe Matthieu, Géry Debongnie, Victor Feyens, Julien Mougenot, Tiffany Chang (tic), David Monnom (moda), Pedram (PEBR), Dylan Kiss (dyki), Sarah Bellefroid, Adrien Guilliams (adgu), shag-odoo, Mélanie, manv-afk, parp-odoo, Xavier Luyckx (xlu), paan-odoo, Jitendra Prajapat, Arthur Nanson, Pierre Pulinckx, Michaël Mattiello, Krzysztof Magusiak (krma), Ajit Singh, Robin Engels (roen), vpan-odoo, vlst-odoo, Guillaume V, Harrison Hutton, Meet Jivani [MEJI], Hadi El Yakhni, thha-odoo, sjai-odoo, Julien Launois (jula), Traina Ludo, rpka-odoo, Stephane Vanmeerhaeghe (stva), Thomas (thsc), Léopold Cantraine, abhk-odoo, ELCO, adgu-odoo, Shubham Agarwal, Shubham Agarwal(shag), Abhishek Khant, Vedant Pandey (vpan-odoo), Jean Schoenlaub, Aditi Pawar(adpaw)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
pos_hr_restaurant, spreadsheet_dashboard_pos_hr, spreadsheet_dashboard_pos_restaurant
Description
This module allows Employees (and not users) to log in to the Point of Sale application using a barcode, a PIN number or both.
The actual till still requires one user but an unlimited number of employees can log on to that till and process sales.
    

Code Analysis info_outline

Views touched (13)
XML IDNameModelTypeStatus
pos_config_form_view_inherit pos.config.form.view.inherit pos.config form Inherits point_of_sale.pos_config_view_form
pos_hr.report_salesdetails_with_employee_reports pos_hr.report_salesdetails_with_employee_reports ir.ui.view qweb Inherits point_of_sale.report_saledetails
pos_hr.single_employee_sales_report pos_hr.single_employee_sales_report ir.ui.view qweb Inherits point_of_sale.pos_session_sales_details
pos_order_form_inherit pos.order.form.inherit pos.order form Inherits point_of_sale.view_pos_pos_form
pos_order_list_select_inherit pos.order.list.select.inherit pos.order list Inherits point_of_sale.view_pos_order_filter
report_pos_order_view_tree report.pos.order.view.list.inherit.pos.hr report.pos.order list Inherits point_of_sale.report_pos_order_view_tree
res_config_settings_view_form res.config.settings.view.form.inherit.pos_hr res.config.settings form Inherits point_of_sale.res_config_settings_view_form
view_pos_config_kanban_inherit_pos_hr pos.config.kanban.view.inherit.pos.hr pos.config kanban Inherits point_of_sale.view_pos_config_kanban
view_pos_daily_sales_reports_wizard pos.daily.sales.reports.wizard.form.inherit pos.daily.sales.reports.wizard form Inherits point_of_sale.view_pos_daily_sales_reports_wizard
view_pos_order_tree_inherit pos.order.list.inherit pos.order list Inherits point_of_sale.view_pos_order_tree
view_pos_payment_tree_inherit pos.payment.list.inherit pos.payment list Inherits point_of_sale.view_pos_payment_tree
view_pos_session_form_inherit_pos_hr pos.session.form.view.inherit.pos.hr pos.session form Inherits point_of_sale.view_pos_session_form
view_report_pos_order_search_inherit report.pos.order.search.inherit report.pos.order search Inherits point_of_sale.view_report_pos_order_search
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (13)

New fields (1)
  • employee_id Many2one → hr.employee
    help='The employee who made the cash move.' string='Employee' args: 'hr.employee'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_barcodes_and_pin_hashed(self)
  • load_pos_data_force_loading(self)
    @api.model

New fields (5)
  • cashier_employee_ids Many2many → hr.employee
    bypass_search_access=True help='Full register access. Can process sales, discounts, refunds, and close out payments.' string='Employees with cashier level access' args: 'hr.employee', 'pos_hr_cashier_employee_hr_employee'
  • logged_employee_ids Many2many → hr.employee
    help='All employees who have logged into the current session' readonly=True related='current_session_id.logged_employee_ids' args: 'hr.employee'
  • manager_employee_ids Many2many → hr.employee
    bypass_search_access=True help='Full access, including reporting, cash management, and session close.' string='Employees with manager level access' args: 'hr.employee', 'pos_hr_manager_employee_hr_employee'
  • restrictive_employee_ids Many2many → hr.employee
    bypass_search_access=True help='Can process sales and close payments, but not apply discounts, refunds, or cancel orders.' string='Employees with restrictive level access' args: 'hr.employee', 'pos_hr_restrictive_employee_hr_employee'
  • supervised_employee_ids Many2many → hr.employee
    bypass_search_access=True help='Can process sales, but a higher level must approve before payment is closed' string='Employees with supervised level access' args: 'hr.employee', 'pos_hr_supervised_employee_hr_employee'
Public methods (1)
  • write(self, vals)

New fields (2)
  • add_report_per_employee Boolean
    default=True string='Add a report per each employee'
  • employee_ids Many2many → hr.employee
    compute='_compute_employee_ids' args: 'hr.employee'
Public methods (0)

No public methods.

New fields (2)
  • cashier Char
    compute='_compute_cashier' store=True string='Cashier name'
  • employee_id Many2one → hr.employee
    help='The employee who uses the cash register.' string='Cashier' args: 'hr.employee'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • employee_id Many2one → hr.employee
    index=True related='pos_order_id.employee_id' store=True string='Cashier' args: 'hr.employee'
Public methods (0)

No public methods.

New fields (2)
  • employee_id Many2one → hr.employee
    help='The employee who currently uses the cash register' string='Cashier' tracking=True args: 'hr.employee'
  • logged_employee_ids Many2many → hr.employee
    compute='_compute_logged_employee_ids' help='All employees who have logged into this session' store=True string='Logged In Cashiers' args: 'hr.employee'
Public methods (2)
  • get_closing_control_data(self)
  • try_cash_in_out(self, _type, amount, reason, partner_id, **kwargs)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • employee_id Many2one → hr.employee
    readonly=True string='Employee' args: 'hr.employee'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_sale_details(self, date_start=False, date_stop=False, config_ids=False, session_ids=False, employee_id=False)
    @api.model

New fields (4)
  • pos_cashier_employee_ids Many2many
    help=' Full register access. Can process sales, discounts, refunds, and close out payments.' readonly=False related='pos_config_id.cashier_employee_ids'
  • pos_manager_employee_ids Many2many
    help=' Full access, including reporting, cash management, and session close.' readonly=False related='pos_config_id.manager_employee_ids'
  • pos_restrictive_employee_ids Many2many
    help='Can process sales and close payments, but not apply discounts, refunds, or cancel orders.' readonly=False related='pos_config_id.restrictive_employee_ids'
  • pos_supervised_employee_ids Many2many
    help='Can process sales, but a higher level must approve before payment is closed.' readonly=False related='pos_config_id.supervised_employee_ids'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (0)

No new fields.

Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…