| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project |
| GIT | |
| GIT | https://github.com/OCA/project.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project/tree/18.0/project_no_portal |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Project |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, David Gallay |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - project - analytic - base - base_setup - web - bus - web_tour - html_editor - uom - portal - web_editor - http_routing - auth_signup - rating - resource - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module add per-company switch block_project_portal_access under Settings > Project. Active by default. For a blocking company: - A constraint forbids privacy_visibility = 'portal' (default becomes employees). - A post_init_hook migrates existing portal projects. This alone removes portal read access. - A mixin on project.project/project.task also denies portal users in _search/_check_access. This adds an additional security without deleting existing ir.model.access - The "Share Project" / "Share Task" actions are unbound. Calling them, for example from the code, raises an error. An uninstall_hook restores them. Scoped per company (multi-company friendly) and fully reversible. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
res_config_settings_view_form |
res.config.settings.form.inherit.project.no.portal | res.config.settings | xpath | Inherits project.res_config_settings_view_form |
view_task_kanban |
project.task.kanban.no.portal | project.task | xpath | Inherits project.view_task_kanban |
No new fields.
Public methods (1)default_get(self, fields_list)
No new fields.
Public methods (0)No public methods.
privacy_visibility
Selection
default=<expr>
action_open_share_project_wizard(self)
portal_share_blocked
Boolean
compute='_compute_portal_share_blocked'
No public methods.
block_project_portal_access
Boolean
default=False
help='When enabled, portal users of this company cannot read its projects or tasks, and portal visibility cannot be set on them.'
string='Block portal access to projects and tasks'
write(self, vals)
block_project_portal_access
Boolean
help='When enabled, portal users of the selected company cannot read its projects or tasks, and portal visibility cannot be set on them.'
readonly=False
related='company_id.block_project_portal_access'
string='Block portal access to projects and tasks'
No public methods.