Skip to content

Commit

Permalink
[FIX] project_administrator_restricted_visibility: Restricted Project…
Browse files Browse the repository at this point in the history
… Manager can manage its own projects
  • Loading branch information
Shide committed Dec 19, 2024
1 parent 541d2e8 commit f2c5014
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 6 deletions.
1 change: 1 addition & 0 deletions project_administrator_restricted_visibility/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ Contributors
* `Moduon <https://www.moduon.team>`_:

* Eduardo López
* Eduardo de Miguel

Maintainers
~~~~~~~~~~~
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
* `Moduon <https://www.moduon.team>`_:

* Eduardo López
* Eduardo de Miguel
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@
eval="[(3, ref('project.project_project_manager_rule'))]"
/>
</record>
<!-- Restricted Project Manager are allowed to manage its own projects -->
<record model="ir.rule" id="project_project_restricted_manage_own_project_rule">
<field name="name">Project: Can manage its own projects</field>
<field name="model_id" ref="project.model_project_project" />
<field name="domain_force">[('user_id', '=', user.id)]</field>
<field name="groups" eval="[(4, ref('project.group_project_manager'))]" />
</record>
<!-- Create a new 'Project Administrator' access group with
the original 'Project Administrator' access rule for project -->
<record id="group_full_project_manager" model="res.groups">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@

/*
:Author: David Goodger ([email protected])
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
Expand Down Expand Up @@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }

pre.code .ln { color: grey; } /* line numbers */
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
Expand All @@ -300,7 +301,7 @@
span.pre {
white-space: pre }

span.problematic {
span.problematic, pre.problematic {
color: red }

span.section-subtitle {
Expand Down Expand Up @@ -426,14 +427,17 @@ <h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2>
</li>
<li><a class="reference external" href="https://www.moduon.team">Moduon</a>:<ul>
<li>Eduardo López</li>
<li>Eduardo de Miguel</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ class TestProjectAdministratorRestrictedVisibility(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.project_obj = cls.env["project.project"]
cls.user_admin = cls.env.ref("base.user_admin")
cls.user_user_padmin = new_test_user(
cls.env,
Expand All @@ -33,12 +32,28 @@ def setUpClass(cls):
}
)

def _create_defaults(self):
"""Define default field values"""
self.env["ir.default"].sudo().create(
{
"field_id": self.env.ref(
"project.field_project_project__privacy_visibility"
).id,
"json_value": '"followers"',
"user_id": self.env.user.id,
}
)

@users("restricted-project-admin", "project-admin")
def test_create_new_project(self):
"""'Restricted project administrator' can create
projects like a 'Project administrator'.
"""
self.project_obj.create({"name": "Another project"})
self._create_defaults()
project = self.env["project.project"].create({"name": "Another project"})
self.assertEqual(project.privacy_visibility, "followers")
project.write({"name": "Another test project"})
project.unlink()

@users("restricted-project-admin", "project-user")
def test_cant_see_restricted_projects(self):
Expand All @@ -47,3 +62,9 @@ def test_cant_see_restricted_projects(self):
"""
all_project = self.env["project.project"].search([])
self.assertNotIn(self.restricted_project, all_project)

@users("project-admin")
def test_can_see_all_projects(self):
"""'Full project administrator' can see all projects."""
all_project = self.env["project.project"].search([])
self.assertIn(self.restricted_project, all_project)

0 comments on commit f2c5014

Please sign in to comment.