mirror of
https://github.com/ansible/awx.git
synced 2026-05-08 18:07:36 -02:30
Merge pull request #4429 from wenottingham/label-maker
Reintroduce label filtering
This commit is contained in:
@@ -2480,13 +2480,16 @@ class NotificationAccess(BaseAccess):
|
|||||||
|
|
||||||
class LabelAccess(BaseAccess):
|
class LabelAccess(BaseAccess):
|
||||||
'''
|
'''
|
||||||
I can see/use a Label if I have permission to associated organization
|
I can see/use a Label if I have permission to associated organization, or to a JT that the label is on
|
||||||
'''
|
'''
|
||||||
model = Label
|
model = Label
|
||||||
prefetch_related = ('modified_by', 'created_by', 'organization',)
|
prefetch_related = ('modified_by', 'created_by', 'organization',)
|
||||||
|
|
||||||
def filtered_queryset(self):
|
def filtered_queryset(self):
|
||||||
return self.model.objects.all()
|
return self.model.objects.filter(
|
||||||
|
Q(organization__in=Organization.accessible_pk_qs(self.user, 'read_role')) |
|
||||||
|
Q(unifiedjobtemplate_labels__in=UnifiedJobTemplate.accessible_pk_qs(self.user, 'read_role'))
|
||||||
|
)
|
||||||
|
|
||||||
@check_superuser
|
@check_superuser
|
||||||
def can_add(self, data):
|
def can_add(self, data):
|
||||||
|
|||||||
@@ -20,8 +20,19 @@ def test_label_get_queryset_su(label, user):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_label_access(label, user):
|
def test_label_read_access(label, user):
|
||||||
access = LabelAccess(user('user', False))
|
access = LabelAccess(user('user', False))
|
||||||
|
assert not access.can_read(label)
|
||||||
|
label.organization.member_role.members.add(user('user', False))
|
||||||
|
assert access.can_read(label)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_label_jt_read_access(label, user, job_template):
|
||||||
|
access = LabelAccess(user('user', False))
|
||||||
|
assert not access.can_read(label)
|
||||||
|
job_template.read_role.members.add(user('user', False))
|
||||||
|
job_template.labels.add(label)
|
||||||
assert access.can_read(label)
|
assert access.can_read(label)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user