Skip to content

Commit 374f163

Browse files
committed
Add permission to the tab view #3
Signed-off-by: tdruez <[email protected]>
1 parent e5a5231 commit 374f163

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

product_portfolio/views.py

+22-13
Original file line numberDiff line numberDiff line change
@@ -500,12 +500,6 @@ def get_context_data(self, **kwargs):
500500

501501
context = super().get_context_data(**kwargs)
502502

503-
context["has_change_productcomponent_permission"] = user.has_perm(
504-
"product_portfolio.change_productcomponent"
505-
)
506-
context["has_change_productpackage_permission"] = user.has_perm(
507-
"product_portfolio.change_productpackage"
508-
)
509503
context["has_change_codebaseresource_permission"] = user.has_perm(
510504
"product_portfolio.change_codebaseresource"
511505
)
@@ -521,7 +515,7 @@ def get_context_data(self, **kwargs):
521515

522516
context["has_edit_productpackage"] = all(
523517
[
524-
context["has_change_productpackage_permission"],
518+
user.has_perm("product_portfolio.change_productpackage"),
525519
context["has_change_permission"],
526520
]
527521
)
@@ -537,7 +531,7 @@ def get_context_data(self, **kwargs):
537531
)
538532
context["has_edit_productcomponent"] = all(
539533
[
540-
context["has_change_productcomponent_permission"],
534+
user.has_perm("product_portfolio.change_productcomponent"),
541535
context["has_change_permission"],
542536
]
543537
)
@@ -588,7 +582,7 @@ class ProductTabInventoryView(
588582
tab_id = "inventory"
589583

590584
def get_context_data(self, **kwargs):
591-
context_data = super().get_context_data(**kwargs)
585+
context = super().get_context_data(**kwargs)
592586

593587
user = self.request.user
594588
dataspace = user.dataspace
@@ -698,9 +692,9 @@ def get_context_data(self, **kwargs):
698692
if isinstance(inventory_item, ProductPackage)
699693
]
700694

701-
context_data["vulnerable_purls"] = vulnerablecode.get_vulnerable_purls(packages)
695+
context["vulnerable_purls"] = vulnerablecode.get_vulnerable_purls(packages)
702696

703-
context_data.update(
697+
context.update(
704698
{
705699
"filter_productcomponent": filter_productcomponent,
706700
"inventory_items": dict(objects_by_feature.items()),
@@ -709,16 +703,31 @@ def get_context_data(self, **kwargs):
709703
}
710704
)
711705

706+
perms = guardian_get_perms(user, self.object)
707+
has_product_change_permission = "change_product" in perms
708+
context["has_edit_productcomponent"] = all(
709+
[
710+
has_product_change_permission,
711+
user.has_perm("product_portfolio.change_productcomponent"),
712+
]
713+
)
714+
context["has_edit_productpackage"] = all(
715+
[
716+
has_product_change_permission,
717+
user.has_perm("product_portfolio.change_productpackage"),
718+
]
719+
)
720+
712721
if page_obj:
713722
previous_url, next_url = self.get_previous_next(page_obj)
714-
context_data.update(
723+
context.update(
715724
{
716725
"previous_url": (previous_url or "") + f"#{self.tab_id}",
717726
"next_url": (next_url or "") + f"#{self.tab_id}",
718727
}
719728
)
720729

721-
return context_data
730+
return context
722731

723732
@staticmethod
724733
def inject_scan_data(scancodeio, feature_grouped, dataspace_uuid):

0 commit comments

Comments
 (0)