|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.atlassian.studio.repository.DelegatingRepositoryPermissionsManagerImpl
public class DelegatingRepositoryPermissionsManagerImpl
A permissions manager which delegates to the other permissions managers so that things can be called "once". The manager is designed to be thread-safe. Because operations on the manager may take a while (communicating with other servers), it has an "overload" mode whereby if more than QUEUE_SIZE threads are already waiting on acquiring a lock, any more will be shut out quickly with an exception.
Field Summary |
---|
Fields inherited from interface com.atlassian.studio.repository.RepositoryPermissionsManager |
---|
IGNORE_SYSADMIN_GROUP |
Constructor Summary | |
---|---|
DelegatingRepositoryPermissionsManagerImpl(com.atlassian.applinks.core.AppLinksManager applinksManager,
com.atlassian.sal.api.net.RequestFactory<?> requestFactory,
JiraAuthenticationContext authenticationContext,
com.atlassian.studio.host.common.ThemeProperties themeProperties,
FisheyeRepositoryPermissionsManager fisheyeRepositoryPermissionsManager,
SvnRepositoryPermissionsManager svnRepositoryPermissionsManager,
CruciblePermissionsManager cruciblePermissionsManager)
|
|
DelegatingRepositoryPermissionsManagerImpl(int queueSize,
int queueSafetyWaitInMillis,
com.atlassian.applinks.core.AppLinksManager applinksManager,
com.atlassian.sal.api.net.RequestFactory<?> requestFactory,
JiraAuthenticationContext authenticationContext,
com.atlassian.studio.host.common.ThemeProperties themeProperties,
FisheyeRepositoryPermissionsManager fisheyeRepositoryPermissionsManager,
SvnRepositoryPermissionsManager svnRepositoryPermissionsManager,
CruciblePermissionsManager cruciblePermissionsManager)
|
Method Summary | |
---|---|
void |
deletePathPermissions(String svnPath)
Removes permissions applied to a path allowing higher-up permissions to be automatically applied. |
RepositoryPermissions |
getInitialPermissions()
|
List<String> |
getNonProjectPaths()
Returns map of svn paths that are not roots of any Fisheye Repository and permissions for each path. |
int |
getNumFreeSlotsInExecutionQueue()
|
RepositoryPermissions |
getPathPermissions(String svnPath)
|
RepositoryPermissions |
getPermissions(String repositoryKey)
|
String |
getSvnPathForFisheyeRepository(String fisheyeRepository)
The repository key in FishEye and the SVN path corresponding to that key may be different. |
void |
reset()
Resets the cache of Fisheye to Svn mapping |
void |
setDefaultPermissions(RepositoryPermissions permissions)
Sets the default permissions that will be applied to new repositories. |
void |
setFisheyeRepositoryPermissionsManager(FisheyeRepositoryPermissionsManager fisheyeRepositoryPermissionsManager)
|
void |
setPermissions(String repositoryKey,
RepositoryPermissions permissions)
Applies new permissions to a repository. |
void |
setPermissions(String repositoryKey,
String svnPath,
RepositoryPermissions permissions)
Applies new permissions to a repository and a specific SVN path. |
void |
setRawPermissions(String repositoryKey,
String svnPath,
RepositoryPermissions permissions)
Sets the permissions for a path without performing any jiggery-pokery that would usually ensure consistency. |
void |
setSvnRepositoryPermissionsManager(SvnRepositoryPermissionsManager svnRepositoryPermissionsManager)
|
PermissionsSynchronisationResult |
synchroniseAllRepositoryPermissions()
Synchronises the permissions for all projects. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DelegatingRepositoryPermissionsManagerImpl(com.atlassian.applinks.core.AppLinksManager applinksManager, com.atlassian.sal.api.net.RequestFactory<?> requestFactory, JiraAuthenticationContext authenticationContext, com.atlassian.studio.host.common.ThemeProperties themeProperties, FisheyeRepositoryPermissionsManager fisheyeRepositoryPermissionsManager, SvnRepositoryPermissionsManager svnRepositoryPermissionsManager, CruciblePermissionsManager cruciblePermissionsManager)
public DelegatingRepositoryPermissionsManagerImpl(int queueSize, int queueSafetyWaitInMillis, com.atlassian.applinks.core.AppLinksManager applinksManager, com.atlassian.sal.api.net.RequestFactory<?> requestFactory, JiraAuthenticationContext authenticationContext, com.atlassian.studio.host.common.ThemeProperties themeProperties, FisheyeRepositoryPermissionsManager fisheyeRepositoryPermissionsManager, SvnRepositoryPermissionsManager svnRepositoryPermissionsManager, CruciblePermissionsManager cruciblePermissionsManager)
Method Detail |
---|
public RepositoryPermissions getPermissions(String repositoryKey) throws ApplicationNotFoundException, ApplicationCommunicationException, RepositoryNotFoundException
getPermissions
in interface RepositoryPermissionsManager
repositoryKey
- used to designate the target repository
repositoryKey
ApplicationNotFoundException
- if an application primary instance (such as FishEye or Subversion) is not
configured properly
ApplicationCommunicationException
- examples of communication errors are timeouts and incorrect passwords
RepositoryNotFoundException
- if the repository of the given repository key is not foundpublic RepositoryPermissions getPathPermissions(String svnPath) throws ApplicationNotFoundException, ApplicationCommunicationException
getPathPermissions
in interface RepositoryPermissionsManager
svnPath
- used to designate the target path
path
ApplicationNotFoundException
- if an application primary instance (such as FishEye or Subversion) is not
configured properly
ApplicationCommunicationException
- examples of communication errors are timeouts and incorrect passwordspublic void setPermissions(String repositoryKey, RepositoryPermissions permissions) throws ApplicationNotFoundException, RepositoryNotFoundException, ApplicationCommunicationException
RepositoryPermissionsManager
setPermissions
in interface RepositoryPermissionsManager
repositoryKey
- the target repositorypermissions
- the new permissions for the target repository
ApplicationNotFoundException
- if an application primary instance is not configured properly
RepositoryNotFoundException
- if the repository of the given repository key is not found
ApplicationCommunicationException
- examples of communication errors are timeouts and incorrect passwordspublic void setPermissions(String repositoryKey, String svnPath, RepositoryPermissions permissions) throws RepositoryNotFoundException, ApplicationNotFoundException, ApplicationCommunicationException
RepositoryPermissionsManager
setPermissions
method which lacks the svnPath
parameter.
setPermissions
in interface RepositoryPermissionsManager
repositoryKey
- the target repositorysvnPath
- the target svn path corresponding to the repository.permissions
- the new permissions for the target repository
RepositoryNotFoundException
- if the repository of the given repository key is not found
ApplicationNotFoundException
- if an application primary instance is not configured properly
ApplicationCommunicationException
- examples of communication errors are timeouts and incorrect passwordspublic void setRawPermissions(String repositoryKey, String svnPath, RepositoryPermissions permissions) throws RepositoryNotFoundException, ApplicationCommunicationException, ApplicationNotFoundException
RepositoryPermissionsManager
setRawPermissions
in interface RepositoryPermissionsManager
repositoryKey
- the project key of the repository, may be nullsvnPath
- the path whose permissions will be setpermissions
- the new permissions
RepositoryNotFoundException
- if the repository of the given repository key is not found
ApplicationCommunicationException
- examples of communication errors are timeouts and incorrect passwords
ApplicationNotFoundException
- if an application primary instance is not configured properlypublic PermissionsSynchronisationResult synchroniseAllRepositoryPermissions() throws ApplicationCommunicationException, ApplicationNotFoundException
synchroniseAllRepositoryPermissions
in interface RepositoryPermissionsManager
ApplicationCommunicationException
- if the manager is unable to retrieve the current repository mappings from FishEye
ApplicationNotFoundException
- if FishEye is not currently linked in AppLinkspublic void setDefaultPermissions(RepositoryPermissions permissions) throws ApplicationCommunicationException, ApplicationNotFoundException
RepositoryPermissionsManager
setDefaultPermissions
in interface RepositoryPermissionsManager
permissions
- the new defaults
ApplicationCommunicationException
- examples of communication errors are timeouts and incorrect passwords
ApplicationNotFoundException
- if an application primary instance is not configured properlypublic RepositoryPermissions getInitialPermissions() throws IOException
getInitialPermissions
in interface RepositoryPermissionsManager
IOException
- if the permissions cannot be loadedpublic String getSvnPathForFisheyeRepository(String fisheyeRepository)
RepositoryPermissionsManager
getSvnPathForFisheyeRepository
in interface RepositoryPermissionsManager
fisheyeRepository
- as found in FishEye
public List<String> getNonProjectPaths() throws IOException, ApplicationNotFoundException, ApplicationCommunicationException
RepositoryPermissionsManager
getNonProjectPaths
in interface RepositoryPermissionsManager
IOException
- if there is an error reading svn authz file
ApplicationNotFoundException
- if an application primary instance is not configured properly
ApplicationCommunicationException
- examples of communication errors are timeouts and incorrect passwordspublic void setFisheyeRepositoryPermissionsManager(FisheyeRepositoryPermissionsManager fisheyeRepositoryPermissionsManager)
public void setSvnRepositoryPermissionsManager(SvnRepositoryPermissionsManager svnRepositoryPermissionsManager)
public void reset()
RepositoryPermissionsManager
reset
in interface RepositoryPermissionsManager
public void deletePathPermissions(String svnPath)
RepositoryPermissionsManager
deletePathPermissions
in interface RepositoryPermissionsManager
svnPath
- the path whose permissions will be droppedpublic int getNumFreeSlotsInExecutionQueue()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |