Skip to content

Commit 4d90a20

Browse files
authored
Methods for Jira filter share permissions (atlassian-api#903)
Adds these methods: * Get Jira filter share permissions * Add Jira filter share permission * Delete Jira filter share permission
1 parent 1d6f767 commit 4d90a20

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

atlassian/jira.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,69 @@ def delete_filter(self, filter_id):
600600
url = "{base_url}/{id}".format(base_url=base_url, id=filter_id)
601601
return self.delete(url)
602602

603+
def get_filter_share_permissions(self, filter_id):
604+
"""
605+
Gets share permissions of a filter
606+
:param filter_id: Filter Id
607+
:return: Returns current share permissions of filter
608+
"""
609+
base_url = self.resource_url("filter")
610+
url = "{base_url}/{id}/permission".format(base_url=base_url, id=filter_id)
611+
return self.get(url)
612+
613+
def add_filter_share_permission(
614+
self,
615+
filter_id,
616+
type,
617+
project_id=None,
618+
project_role_id=None,
619+
groupname=None,
620+
user_key=None,
621+
view=None,
622+
edit=None,
623+
):
624+
"""
625+
Adds share permission for a filter
626+
:param filter_id: Filter Id
627+
:param type: What type of permission is granted (i.e. user, project)
628+
:param project_id: Project Id, relevant for type 'project' and 'projectRole'
629+
:param project_role_id: Project role Id, relevant for type 'projectRole'
630+
:param groupname: Group name, relevant for type 'group'
631+
:param user_key: User key, relevant for type 'user'
632+
:param view: Sets view permission
633+
:param edit: Sets edit permission
634+
:return: Returns updated share permissions
635+
"""
636+
base_url = self.resource_url("filter")
637+
url = "{base_url}/{id}/permission".format(base_url=base_url, id=filter_id)
638+
data = {"type": type}
639+
if project_id:
640+
data["projectId"] = project_id
641+
if project_role_id:
642+
data["projectRoleId"] = project_role_id
643+
if groupname:
644+
data["groupname"] = groupname
645+
if user_key:
646+
data["userKey"] = user_key
647+
if view:
648+
data["view"] = view
649+
if edit:
650+
data["edit"] = edit
651+
return self.post(url, data=data)
652+
653+
def delete_filter_share_permission(self, filter_id, permission_id):
654+
"""
655+
Removes share permission
656+
:param filter_id: Filter Id
657+
:param permission_id: Permission Id to be removed
658+
:return:
659+
"""
660+
base_url = self.resource_url("filter")
661+
url = "{base_url}/{id}/permission/{permission_id}".format(
662+
base_url=base_url, id=filter_id, permission_id=permission_id
663+
)
664+
return self.delete(url)
665+
603666
"""
604667
Group.
605668
Reference: https://docs.atlassian.com/software/jira/docs/api/REST/8.5.0/#api/2/group

0 commit comments

Comments
 (0)