Password Security Policy Enforcer
Enterprise Password Complexity, Expiry Lifecycles, & Reuse Prevention
Stop weak passwords from compromising your ERP data.
Enforce multi-layered corporate password complexity rules, prevent reuse via encrypted history tracking, and automate expiry workflows for all backend, portal, and public signup users.
The Danger: Standard Odoo Invites Brute-Force & Weak Passwords
Out of the box, Odoo allows users, portal contacts, and public signups to set dangerously weak passwords like "123456" or "welcome1". Even worse, users can reuse the same compromised password forever because Odoo never expires credentials or tracks history. This exposes your entire businessâincluding financial data, client contacts, and payrollâto corporate espionage and automated brute-force attacks. Relying on employee goodwill to maintain safe credentials is a ticking security time bomb.
DEMO
Bulletproof Password Lifecycle Controls
An automated, centralized defense framework ensuring every single login meets dynamic global security criteria.
Granular Complexity Enforcer
Define strict validation rules. Mandate minimum character counts and force the inclusion of uppercase letters, lowercase letters, numbers, and special symbols. Instantly blocks weak combinations globally.
Encrypted History & Anti-Reuse
Stop users from toggling between two identical passwords. The module safely records a secure cryptographic hash of the past N passwords, blocking them from recycling old credentials. (Plaintext is never stored).
Automated Lifecycle Expiry
Enforce routine password updates every 60, 90, or 180 days. Once the expiration threshold is crossed, the system automatically flags the user profile and triggers a forced redirection to update fields upon logging in.
Proactive In-App & Mail Alerts
A smart cron background task monitors upcoming expirations. It automatically sends email warnings via clean custom templates and populates a persistent, sticky warning banner inside the backend layout interface.
Configuration Parameters & Policy Rules
Adjust variables inside Odoo's standard configuration panel to match your exact corporate IT guidelines.
| Security Parameter | Operational Functionality | Default Value |
|---|---|---|
| Enforce Password Security Policy | Master control switch to toggle validation behavior across the server cluster | Enabled |
| Minimum Password Length | Configures the baseline minimum size requirements for string arrays | 8 Characters |
| Character Sets (A-Z, a-z, 0-9, Symbols) | Dynamic Boolean fields to toggle mandatory cryptographic diversity sets | All Enabled |
| Prevent Password Reuse | Defines the size (N) of the encrypted historical tracking queue to prevent cycling | Last 5 Passwords |
| Password Expiry Window | Defines operational day counts before individual login keys expire | 90 Days |
| Expiry Reminder Trigger | Lead time in days to initialize warning emails and sticky interface web notifications | 7 Days Prior |
Zero-Overhead Core ORM Integration
Universal Hook
Intercepts the native `_set_password()` level on `res.users`. This ensures 100% absolute protection across all entries: user sheets, portal registration, reset emails, and admin wizards.
Secure Hash Engine
Utilizes Odoo's internal password crypt context logic. Your actual characters are never stored in plaintext within database history lines, preventing memory or log leaks.
Safe Activation
Runs purely going forward. It never retroactively locks out active accounts on installation day; history tracking initiates smoothly during each account's next credential cycle.
Operational Walkthrough
Fully native integration into Odoo's core client structure for frictionless end-user operations.
1. Centralized Management Control Panel
Displays the dedicated parameters form embedded smoothly inside Odoo's General Settings for managing strength requirements, expiry timelines, and thresholds.

2. Real-Time Password Complexity Rejection
Shows the explicit Odoo validation error popup modal triggered when a backend or portal user attempts to utilize a weak or previously recycled combination.


3. Persistent In-App Web Client Warnings
The sticky UI banner appearing across all backend apps when an operator's password lifecycle approaches its expiration date, reminding them to update.
Developed with by SyncSoft Team
Need further customization on mail flows, priority scheduling, or customized email templates?
We are here to support your team!
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 425 |
| Technical Name |
password_security_policy_enforcer |
| License | OPL-1 |
| Website | https://syncsoft.app |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module