com.atlassian.jira.security.type
Class CurrentAssigneeHasAssignablePermission

java.lang.Object
  extended by com.atlassian.jira.security.type.AbstractSecurityType
      extended by com.atlassian.jira.security.type.AbstractIssueFieldSecurityType
          extended by com.atlassian.jira.security.type.SimpleIssueFieldSecurityType
              extended by com.atlassian.jira.security.type.CurrentAssigneeHasAssignablePermission
All Implemented Interfaces:
SchemeType, SecurityType

public class CurrentAssigneeHasAssignablePermission
extends SimpleIssueFieldSecurityType


Constructor Summary
CurrentAssigneeHasAssignablePermission(JiraAuthenticationContext jiraAuthenticationContext)
           
 
Method Summary
 void doValidation(String key, Map parameters, JiraServiceContext jiraServiceContext)
           
 String getDisplayName()
           
protected  String getField()
           
protected  String getFieldName(String parameter)
          Get the field name for this Issue Field-based Security Type given the parameter in the saved configuration.
protected  String getFieldValue(Issue issue)
          Returns the user key value for the given issue for the field that this security type checks.
 String getType()
           
 Set<com.atlassian.crowd.embedded.api.User> getUsers(PermissionContext ctx, String argument)
          Returns a list of Users represented by a security type instance.
protected  boolean hasProjectPermission(com.atlassian.crowd.embedded.api.User user, boolean issueCreation, org.ofbiz.core.entity.GenericValue project)
           
protected  boolean hasProjectPermission(com.atlassian.crowd.embedded.api.User user, boolean issueCreation, Project project)
           
 boolean isValidForPermission(int permissionId)
          Is valid for all permissions except "Assignable".
 
Methods inherited from class com.atlassian.jira.security.type.SimpleIssueFieldSecurityType
hasIssuePermission, hasIssuePermission
 
Methods inherited from class com.atlassian.jira.security.type.AbstractIssueFieldSecurityType
getQuery, getQuery, getQueryForProject, getQueryForSecurityLevel, hasPermission, hasPermission, hasPermission, hasPermission, hasPermission, hasPermission
 
Methods inherited from class com.atlassian.jira.security.type.AbstractSecurityType
getArgumentDisplay
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CurrentAssigneeHasAssignablePermission

public CurrentAssigneeHasAssignablePermission(JiraAuthenticationContext jiraAuthenticationContext)
Method Detail

getDisplayName

public String getDisplayName()

getType

public String getType()

doValidation

public void doValidation(String key,
                         Map parameters,
                         JiraServiceContext jiraServiceContext)

getFieldName

protected String getFieldName(String parameter)
Description copied from class: AbstractIssueFieldSecurityType
Get the field name for this Issue Field-based Security Type given the parameter in the saved configuration.

Some Field based permissions are based on hard-coded fields like assignee and reporter in which case the parameter is not used. Other types use the parameter to name the particular User or Group custom field that is used for the permission.

Specified by:
getFieldName in class AbstractIssueFieldSecurityType
Parameters:
parameter - the parameter as saved in the config
Returns:
the field name for this Issue Field-based Security Type.

isValidForPermission

public boolean isValidForPermission(int permissionId)
Is valid for all permissions except "Assignable".

Because we rely on the permissions for the "Assignable" function, then not only does it not make sense to add this role to "Assignable", it would actually cause an infinite loop. see JRA-13315

Specified by:
isValidForPermission in interface SchemeType
Overrides:
isValidForPermission in class AbstractSecurityType
Parameters:
permissionId - permission id.
Returns:
false for Permissions.ASSIGNABLE_USER, true otherwise.
See Also:
CurrentReporterHasCreatePermission

hasProjectPermission

protected boolean hasProjectPermission(com.atlassian.crowd.embedded.api.User user,
                                       boolean issueCreation,
                                       org.ofbiz.core.entity.GenericValue project)
Specified by:
hasProjectPermission in class AbstractIssueFieldSecurityType

hasProjectPermission

protected boolean hasProjectPermission(com.atlassian.crowd.embedded.api.User user,
                                       boolean issueCreation,
                                       Project project)
Specified by:
hasProjectPermission in class AbstractIssueFieldSecurityType

getField

protected String getField()
Specified by:
getField in class SimpleIssueFieldSecurityType

getUsers

public Set<com.atlassian.crowd.embedded.api.User> getUsers(PermissionContext ctx,
                                                           String argument)
Description copied from interface: SecurityType
Returns a list of Users represented by a security type instance. The collection must not contain any nulls.

Specified by:
getUsers in interface SecurityType
Overrides:
getUsers in class AbstractIssueFieldSecurityType
Parameters:
ctx - The current issue and project
argument - Instance value, eg. a group name, user name, custom field id
Returns:
A set of Users.

getFieldValue

protected String getFieldValue(Issue issue)
Description copied from class: SimpleIssueFieldSecurityType
Returns the user key value for the given issue for the field that this security type checks.

Specified by:
getFieldValue in class SimpleIssueFieldSecurityType
Parameters:
issue - the Issue
Returns:
the user key value for the given issue for the field that this security type checks.


Copyright © 2002-2013 Atlassian. All Rights Reserved.