Hi everyone,
I've made a post-function on a workflow transition to send an email notification. I need to include the last comment but only if the reporter (to whom I am sending this notification) has permission to see it.
I have found this class
com.atlassian.jira.issue.comments.DefaultCommentPermissionManager
which has a function to do exactly that I believe
hasBrowsePermission(User user, Comment comment)
but trying to get in in the groovy template gives errors. The constructor requires a load of other elements (and going further recursively) and I haven't found a way to get this object in the template.
This said, I have two questions:
Thanks a lot, it's a real blocker.
Update: which comment does actually get the reporter? I look at a preview with lastComment for one issue and it automatically skips the last comment if it is internal and gives me last public. On a different issue it gives me last even if internal. If by chance the preview content depends on who's previewing, what does then go to the user?
Resolved. It is enough to get a list of all the comments on a particular issue that the user is allowed to see
componentManager.getCommentManager().getCommentsForUser(issue, issue.getReporter())
If you have a comment, get its ID and check if it's among the IDs of the comments in the list above.
Update: This will never work with Service Desk, which uses a completely different system of comment visibility management. Currently, Service Desk support proclaims it impossible to get the information by a script in any way.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.