I’m customizing an Odoo 18 setup where portal users (resellers) can log in to a CRM portal and view or edit opportunities assigned to them.
Right now, the module already:
Allows portal users to move opportunities through certain stages.
Lets them update key fields and communicate through the chatter.
The client, however, wants an additional lead ownership mechanism that can be enforced.
The idea is that:
A portal user can “claim” a lead when they start engaging it.
Once claimed, the lead should be locked to that user for a defined period (for example, 48 hours, 14 days, or 30 days depending on activity).
Ownership should expire automatically or via some manageable rule if no activity or progress is recorded.
Other portal users shouldn’t be able to re-claim or edit that lead until it’s released or expired.
I’m looking for suggestions or examples of how to implement this kind of lead ownership logic cleanly — ideally with a custom model, computed fields, or record rules — but still maintain flexibility for admin overrides.
What would be the best approach from a technical standpoint?
Any patterns or examples from similar portal-based CRM implementations would be very helpful.


