com.atlassian.jira.issue.security
Class IssueSecuritySchemeManagerImpl

java.lang.Object
  extended bycom.atlassian.jira.scheme.AbstractSchemeManager
      extended bycom.atlassian.jira.issue.security.IssueSecuritySchemeManagerImpl
All Implemented Interfaces:
IssueSecuritySchemeManager, SchemeManager

public class IssueSecuritySchemeManagerImpl
extends AbstractSchemeManager
implements IssueSecuritySchemeManager


Field Summary
 
Fields inherited from class com.atlassian.jira.scheme.AbstractSchemeManager
PROJECT_ASSOCIATION
 
Constructor Summary
IssueSecuritySchemeManagerImpl()
           
 
Method Summary
 GenericValue copyScheme(GenericValue scheme)
          This method overrides the AbstractSchemeManager because within Issue Security schemes there is an extra level, which is the table that holds the Security Levels for that Scheme.
 GenericValue copySchemeEntity(GenericValue scheme, GenericValue entity)
           
 GenericValue createSchemeEntity(GenericValue scheme, SchemeEntity schemeEntity)
           
 void deleteEntity(java.lang.Long id)
          Deletes a issue security from the database
 void deleteScheme(java.lang.Long id)
          Deletes a scheme from the database
 java.lang.String getAssociationType()
           
 java.util.List getEntities(GenericValue scheme, java.lang.Long entityTypeId)
           
 java.util.List getEntities(GenericValue scheme, java.lang.Long schemeTypeId, java.lang.String parameter)
          Get all Generic Value permission records for a particular scheme and permission Id
 java.util.List getEntities(GenericValue scheme, java.lang.String entityTypeId)
           
 java.util.List getEntities(GenericValue scheme, java.lang.String type, java.lang.Long schemeTypeId)
          Get all Generic Value issue security records for a particular scheme, type and Id
 java.lang.String getEntityName()
           
 java.lang.String getSchemeDesc()
           
 java.lang.String getSchemeEntityName()
           
 boolean hasSchemeAuthority(java.lang.Long entityType, GenericValue entity)
           
 boolean hasSchemeAuthority(java.lang.Long entityType, GenericValue issue, User user)
          Checks to see if the user has access to issues of this security level.
 
Methods inherited from class com.atlassian.jira.scheme.AbstractSchemeManager
addDefaultSchemeToProject, addSchemeToProject, createDefaultScheme, createScheme, getDefaultScheme, getEntities, getEntity, getGroups, getProjects, getScheme, getScheme, getSchemes, getSchemes, getUsers, removeEntities, removeEntities, removeSchemesFromProject, schemeExists, updateScheme
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atlassian.jira.scheme.SchemeManager
addDefaultSchemeToProject, addSchemeToProject, createDefaultScheme, createScheme, getDefaultScheme, getEntities, getEntity, getGroups, getProjects, getScheme, getScheme, getSchemes, getSchemes, getUsers, removeEntities, removeEntities, removeSchemesFromProject, schemeExists, updateScheme
 

Constructor Detail

IssueSecuritySchemeManagerImpl

public IssueSecuritySchemeManagerImpl()
Method Detail

getSchemeEntityName

public java.lang.String getSchemeEntityName()
Specified by:
getSchemeEntityName in class AbstractSchemeManager

getEntityName

public java.lang.String getEntityName()
Specified by:
getEntityName in class AbstractSchemeManager

getAssociationType

public java.lang.String getAssociationType()
Specified by:
getAssociationType in class AbstractSchemeManager

getSchemeDesc

public java.lang.String getSchemeDesc()
Specified by:
getSchemeDesc in class AbstractSchemeManager

getEntities

public java.util.List getEntities(GenericValue scheme,
                                  java.lang.Long entityTypeId)
                           throws GenericEntityException
Specified by:
getEntities in interface SchemeManager
Throws:
GenericEntityException

getEntities

public java.util.List getEntities(GenericValue scheme,
                                  java.lang.Long schemeTypeId,
                                  java.lang.String parameter)
                           throws GenericEntityException
Get all Generic Value permission records for a particular scheme and permission Id

Specified by:
getEntities in interface SchemeManager
Parameters:
scheme - The scheme that the permissions belong to
schemeTypeId - The Id of the permission
parameter - The permission parameter (group name etc)
Returns:
List of (GenericValue) permissions
Throws:
GenericEntityException

getEntities

public java.util.List getEntities(GenericValue scheme,
                                  java.lang.String entityTypeId)
                           throws GenericEntityException
Specified by:
getEntities in interface SchemeManager
Throws:
GenericEntityException

getEntities

public java.util.List getEntities(GenericValue scheme,
                                  java.lang.String type,
                                  java.lang.Long schemeTypeId)
                           throws GenericEntityException
Get all Generic Value issue security records for a particular scheme, type and Id

Specified by:
getEntities in interface SchemeManager
Parameters:
scheme - The scheme that the permissions belong to
type - The type of the permission(Group, Current Reporter etc)
schemeTypeId - The Id of the permission
Returns:
List of (GenericValue) permissions
Throws:
GenericEntityException

createSchemeEntity

public GenericValue createSchemeEntity(GenericValue scheme,
                                       SchemeEntity schemeEntity)
                                throws GenericEntityException
Specified by:
createSchemeEntity in interface SchemeManager
Throws:
GenericEntityException

copySchemeEntity

public GenericValue copySchemeEntity(GenericValue scheme,
                                     GenericValue entity)
                              throws GenericEntityException
Specified by:
copySchemeEntity in class AbstractSchemeManager
Throws:
GenericEntityException

copyScheme

public GenericValue copyScheme(GenericValue scheme)
                        throws GenericEntityException
This method overrides the AbstractSchemeManager because within Issue Security schemes there is an extra level, which is the table that holds the Security Levels for that Scheme. This is because with Issue Security schemes you can add and delete the different levels of security. With other schemes this is not possible

Specified by:
copyScheme in interface SchemeManager
Overrides:
copyScheme in class AbstractSchemeManager
Parameters:
scheme - The permission scheme to be copied
Returns:
The new permission scheme
Throws:
GenericEntityException

deleteEntity

public void deleteEntity(java.lang.Long id)
                  throws GenericEntityException
Deletes a issue security from the database

Specified by:
deleteEntity in interface SchemeManager
Overrides:
deleteEntity in class AbstractSchemeManager
Parameters:
id - The id of the permission to be deleted
Throws:
GenericEntityException

hasSchemeAuthority

public boolean hasSchemeAuthority(java.lang.Long entityType,
                                  GenericValue entity)
Specified by:
hasSchemeAuthority in interface SchemeManager

hasSchemeAuthority

public boolean hasSchemeAuthority(java.lang.Long entityType,
                                  GenericValue issue,
                                  User user)
Checks to see if the user has access to issues of this security level. If the user is not passed in then the check is made on the current user

Specified by:
hasSchemeAuthority in interface SchemeManager
Parameters:
entityType - The security level to check against
issue - The issue
user - The user to check for the permission. User must NOT be null
Returns:
true if the user is a member of the security level otherwise false

deleteScheme

public void deleteScheme(java.lang.Long id)
                  throws GenericEntityException
Deletes a scheme from the database

Specified by:
deleteScheme in interface SchemeManager
Overrides:
deleteScheme in class AbstractSchemeManager
Parameters:
id - Id of the scheme to be deleted
Throws:
GenericEntityException