Skip to Content

PMIS User Login IP History

Alpha License: LGPL-3 PMISuite/testing Version: 18.0

This addon provides Login IP History on the Odoo 18 user form. It records IP addresses and timestamps after successful credential validation, with a read-only history available to Settings administrators.

Requirements and access

The module depends on base.

Only Settings administrators (base.group_system) can read the history, including through RPC. The history is database-wide, like user administration; it is not scoped to the currently selected company. Users without this group, including internal, portal, and public users, cannot read it.

Regular RPC access cannot create, edit, or delete entries, even for Settings administrators. The private login hook creates entries with elevated access for the authenticating user.

Usage

  1. Install pmis_user_login_ip.

  2. As a Settings administrator, open Settings > Users & Companies > Users.

  3. Select a user and open Login IP History.

  4. Review the login dates and IP addresses, ordered from newest to oldest. Use pagination to browse older entries.

Recording starts after installation; historical addresses are not backfilled. With multi-factor authentication, an entry does not confirm completion of the additional authentication step.

Login recording

Each successful credential validation through Odoo's standard login hook creates an entry, including repeated logins from the same address. Failed credentials do not create entries. This follows the semantics of Odoo's last-login date: with multi-factor authentication, credential validation can precede completion of the second factor. These entries are not proof that a full session was established. Requests using an existing session do not create entries.

Non-HTTP logins and missing or invalid addresses are skipped; Odoo's normal last-login tracking still runs.

Client IP resolution

IPv4 and IPv6 addresses come from the HTTP request's resolved remote address. When using a reverse proxy, configure Odoo's proxy_mode and a trusted proxy that replaces forwarded headers and prevents direct access to the Odoo backend. The addon does not parse forwarded headers itself. Without the correct proxy configuration, the recorded address may be the proxy's address.

Data retention

Entries are stored in res.users.login.ip and retained independently of Odoo's temporary last-login logs, with no automatic expiration. Deleting a user also deletes their IP history. Establish an appropriate operational retention policy for this personal data before deployment; this addon does not provide a purge interface.

Tests

Run the repository's single-addon runner against a disposable database:

/srv/pmiverse/_pmiconfig/scripts/test/run_pytest_addon.sh \
  -a /srv/pmiverse/_pmisuite18/repos/pmiverse/testing/pmis_user_login_ip/tests \
  -d test_pmis_user_login_ip -- -q --maxfail=1

Bug Tracker

Bugs are tracked on PMISuite Repository Issues. Before reporting a bug, check whether it has already been reported. Include reproduction steps, the expected result, and the actual result.

Credits

Authors

Contributors

  • Matjaz Mozetic

Maintainers

LUXIM MATMOZ

Current maintainer:

sysadminmatmoz

This module is maintained by Luxim d.o.o., a company dedicated to the development of program management tools and solutions, as a part of PMISuite.com project.

Odoo Community Association

Luxim is an active member of OCA (Odoo Community Association).