com.atlassian.jira.issue.comments
Class DefaultCommentPermissionManager

java.lang.Object
  extended by com.atlassian.jira.issue.comments.DefaultCommentPermissionManager
All Implemented Interfaces:
CommentPermissionManager

public class DefaultCommentPermissionManager
extends Object
implements CommentPermissionManager

This permission manager is responsible to check and grant browse and edit permissions to users over issue comments.


Constructor Summary
DefaultCommentPermissionManager(ProjectRoleManager projectRoleManager, PermissionManager permissionManager, GroupManager groupManager)
           
 
Method Summary
 boolean hasBrowsePermission(com.atlassian.crowd.embedded.api.User user, Comment comment)
          Determines whether the user can see given comment.
 boolean hasDeleteAllPermission(com.atlassian.crowd.embedded.api.User user, Issue issue)
          Returns true if the given User can delete all comments for the given Issue.
 boolean hasDeleteOwnPermission(com.atlassian.crowd.embedded.api.User user, Issue issue)
          Returns true if the given User can delete her own comments in the given Issue.
 boolean hasEditAllPermission(com.atlassian.crowd.embedded.api.User user, Issue issue)
          Returns true if user has permission to edit all comments in the given Issue.
 boolean hasEditOwnPermission(com.atlassian.crowd.embedded.api.User user, Issue issue)
          Returns true if user has permission to edit her own comments in the given Issue.
 boolean hasEditPermission(com.atlassian.crowd.embedded.api.User user, Comment comment)
          Determines whether the user can edit given comment.
 boolean isUserCommentAuthor(com.atlassian.crowd.embedded.api.User user, Comment comment)
          Returns true if the given user is the author of the given comment.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultCommentPermissionManager

public DefaultCommentPermissionManager(ProjectRoleManager projectRoleManager,
                                       PermissionManager permissionManager,
                                       GroupManager groupManager)
Method Detail

hasBrowsePermission

public boolean hasBrowsePermission(com.atlassian.crowd.embedded.api.User user,
                                   Comment comment)
Determines whether the user can see given comment.

User can see the comment if comment does not have restricted visibility, otherwise only if the user is in either comments group or project role visibility level.

Specified by:
hasBrowsePermission in interface CommentPermissionManager
Parameters:
user - user
comment - comment
Returns:
true if user can see the comment, false otherwise

hasEditPermission

public boolean hasEditPermission(com.atlassian.crowd.embedded.api.User user,
                                 Comment comment)
Determines whether the user can edit given comment.

User can edit the given comment if he can edit all comment of the associated issue or is the author of this comment and has edit own comments permission granted.

Specified by:
hasEditPermission in interface CommentPermissionManager
Parameters:
user - user
comment - comment to edit
Returns:
true if user can edit the given comment, false otherwise

isUserCommentAuthor

public boolean isUserCommentAuthor(com.atlassian.crowd.embedded.api.User user,
                                   Comment comment)
Description copied from interface: CommentPermissionManager
Returns true if the given user is the author of the given comment.

If the given Comment has a null author, this represents that it was created anonymously, and no-one is the author (returns false). If the given User is null, then this represents that the current user is anonymous, and the method will always return false.

Specified by:
isUserCommentAuthor in interface CommentPermissionManager
Parameters:
user - The User. Can be null to represent current user is not logged in (anonymous).
comment - The Comment. Cannot be null.
Returns:
true if the given user is the author of the given comment.

hasEditAllPermission

public boolean hasEditAllPermission(com.atlassian.crowd.embedded.api.User user,
                                    Issue issue)
Description copied from interface: CommentPermissionManager
Returns true if user has permission to edit all comments in the given Issue.

NOTE: This method does not check whether the Issue the comment belongs to is in an editable workflow state.

Specified by:
hasEditAllPermission in interface CommentPermissionManager
Parameters:
user - User. A null value represents an anonymous User.
issue - Issue. Must not be null.
Returns:
true if user has permission to edit all comments in the given Issue.

hasEditOwnPermission

public boolean hasEditOwnPermission(com.atlassian.crowd.embedded.api.User user,
                                    Issue issue)
Description copied from interface: CommentPermissionManager
Returns true if user has permission to edit her own comments in the given Issue.

NOTE: This method does not check whether the Issue the comment belongs to is in an editable workflow state.

Specified by:
hasEditOwnPermission in interface CommentPermissionManager
Parameters:
user - User. A null value represents an anonymous User.
issue - Issue. Must not be null.
Returns:
true if user has permission to edit all comments in the given Issue.

hasDeleteAllPermission

public boolean hasDeleteAllPermission(com.atlassian.crowd.embedded.api.User user,
                                      Issue issue)
Description copied from interface: CommentPermissionManager
Returns true if the given User can delete all comments for the given Issue.

NOTE: This method does not check whether the Issue the comment belongs to is in an editable workflow state.

Specified by:
hasDeleteAllPermission in interface CommentPermissionManager
Parameters:
user - User. A null value represents an anonymous User.
issue - Issue. Must not be null.
Returns:
true if user has permission to delete all comments in the given Issue.

hasDeleteOwnPermission

public boolean hasDeleteOwnPermission(com.atlassian.crowd.embedded.api.User user,
                                      Issue issue)
Description copied from interface: CommentPermissionManager
Returns true if the given User can delete her own comments in the given Issue.

NOTE: This method does not check whether the Issue the comment belongs to is in an editable workflow state.

Specified by:
hasDeleteOwnPermission in interface CommentPermissionManager
Parameters:
user - User. A null value represents an anonymous User.
issue - Issue. Must not be null.
Returns:
true if the given User can delete her own comments in the given Issue.


Copyright © 2002-2013 Atlassian. All Rights Reserved.