|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.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 RepositoryPermissionsManagerrepositoryKey - 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 found
public RepositoryPermissions getPathPermissions(String svnPath)
throws ApplicationNotFoundException,
ApplicationCommunicationException
getPathPermissions in interface RepositoryPermissionsManagersvnPath - 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 passwords
public void setPermissions(String repositoryKey,
RepositoryPermissions permissions)
throws ApplicationNotFoundException,
RepositoryNotFoundException,
ApplicationCommunicationException
RepositoryPermissionsManager
setPermissions in interface RepositoryPermissionsManagerrepositoryKey - 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 passwords
public void setPermissions(String repositoryKey,
String svnPath,
RepositoryPermissions permissions)
throws RepositoryNotFoundException,
ApplicationNotFoundException,
ApplicationCommunicationException
RepositoryPermissionsManagersetPermissions method which lacks the svnPath
parameter.
setPermissions in interface RepositoryPermissionsManagerrepositoryKey - 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 passwords
public void setRawPermissions(String repositoryKey,
String svnPath,
RepositoryPermissions permissions)
throws RepositoryNotFoundException,
ApplicationCommunicationException,
ApplicationNotFoundException
RepositoryPermissionsManager
setRawPermissions in interface RepositoryPermissionsManagerrepositoryKey - 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 properly
public PermissionsSynchronisationResult synchroniseAllRepositoryPermissions()
throws ApplicationCommunicationException,
ApplicationNotFoundException
synchroniseAllRepositoryPermissions in interface RepositoryPermissionsManagerApplicationCommunicationException - if the manager is unable to retrieve the current repository mappings from FishEye
ApplicationNotFoundException - if FishEye is not currently linked in AppLinks
public void setDefaultPermissions(RepositoryPermissions permissions)
throws ApplicationCommunicationException,
ApplicationNotFoundException
RepositoryPermissionsManager
setDefaultPermissions in interface RepositoryPermissionsManagerpermissions - the new defaults
ApplicationCommunicationException - examples of communication errors are timeouts and incorrect passwords
ApplicationNotFoundException - if an application primary instance is not configured properly
public RepositoryPermissions getInitialPermissions()
throws IOException
getInitialPermissions in interface RepositoryPermissionsManagerIOException - if the permissions cannot be loadedpublic String getSvnPathForFisheyeRepository(String fisheyeRepository)
RepositoryPermissionsManager
getSvnPathForFisheyeRepository in interface RepositoryPermissionsManagerfisheyeRepository - as found in FishEye
public List<String> getNonProjectPaths()
throws IOException,
ApplicationNotFoundException,
ApplicationCommunicationException
RepositoryPermissionsManager
getNonProjectPaths in interface RepositoryPermissionsManagerIOException - 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 RepositoryPermissionsManagerpublic void deletePathPermissions(String svnPath)
RepositoryPermissionsManager
deletePathPermissions in interface RepositoryPermissionsManagersvnPath - 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 | |||||||||