PMIS User Login IP History
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
Install pmis_user_login_ip.
As a Settings administrator, open Settings > Users & Companies > Users.
Select a user and open Login IP History.
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
Contributors
Matjaz Mozetic
Maintainers
Current maintainer:
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.
Luxim is an active member of OCA (Odoo Community Association).






