mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 07:25:44 +01:00
only archive repositories can be deleted, if the repository archive mode is enabled
This commit is contained in:
@@ -46,6 +46,7 @@ import sonia.scm.ConfigurationException;
|
|||||||
import sonia.scm.HandlerEvent;
|
import sonia.scm.HandlerEvent;
|
||||||
import sonia.scm.SCMContextProvider;
|
import sonia.scm.SCMContextProvider;
|
||||||
import sonia.scm.Type;
|
import sonia.scm.Type;
|
||||||
|
import sonia.scm.config.ScmConfiguration;
|
||||||
import sonia.scm.repository.AbstractRepositoryManager;
|
import sonia.scm.repository.AbstractRepositoryManager;
|
||||||
import sonia.scm.repository.BlameViewer;
|
import sonia.scm.repository.BlameViewer;
|
||||||
import sonia.scm.repository.ChangesetViewer;
|
import sonia.scm.repository.ChangesetViewer;
|
||||||
@@ -113,6 +114,8 @@ public class XmlRepositoryManager extends AbstractRepositoryManager
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
*
|
||||||
|
* @param configuration
|
||||||
* @param contextProvider
|
* @param contextProvider
|
||||||
* @param securityContextProvider
|
* @param securityContextProvider
|
||||||
* @param storeFactory
|
* @param storeFactory
|
||||||
@@ -122,12 +125,13 @@ public class XmlRepositoryManager extends AbstractRepositoryManager
|
|||||||
*/
|
*/
|
||||||
@Inject
|
@Inject
|
||||||
public XmlRepositoryManager(
|
public XmlRepositoryManager(
|
||||||
SCMContextProvider contextProvider,
|
ScmConfiguration configuration, SCMContextProvider contextProvider,
|
||||||
Provider<WebSecurityContext> securityContextProvider,
|
Provider<WebSecurityContext> securityContextProvider,
|
||||||
StoreFactory storeFactory, Set<RepositoryHandler> handlerSet,
|
StoreFactory storeFactory, Set<RepositoryHandler> handlerSet,
|
||||||
Provider<Set<RepositoryListener>> repositoryListenersProvider,
|
Provider<Set<RepositoryListener>> repositoryListenersProvider,
|
||||||
Provider<Set<RepositoryHook>> repositoryHooksProvider)
|
Provider<Set<RepositoryHook>> repositoryHooksProvider)
|
||||||
{
|
{
|
||||||
|
this.configuration = configuration;
|
||||||
this.securityContextProvider = securityContextProvider;
|
this.securityContextProvider = securityContextProvider;
|
||||||
this.store = storeFactory.getStore(XmlRepositoryDatabase.class, STORE_NAME);
|
this.store = storeFactory.getStore(XmlRepositoryDatabase.class, STORE_NAME);
|
||||||
this.repositoryListenersProvider = repositoryListenersProvider;
|
this.repositoryListenersProvider = repositoryListenersProvider;
|
||||||
@@ -239,6 +243,12 @@ public class XmlRepositoryManager extends AbstractRepositoryManager
|
|||||||
|
|
||||||
assertIsOwner(repository);
|
assertIsOwner(repository);
|
||||||
|
|
||||||
|
if (configuration.isEnableRepositoryArchive() &&!repository.isArchived())
|
||||||
|
{
|
||||||
|
throw new RepositoryException(
|
||||||
|
"Repository could not deleted, because it is not archived.");
|
||||||
|
}
|
||||||
|
|
||||||
if (repositoryDB.contains(repository))
|
if (repositoryDB.contains(repository))
|
||||||
{
|
{
|
||||||
getHandler(repository).delete(repository);
|
getHandler(repository).delete(repository);
|
||||||
@@ -989,6 +999,9 @@ public class XmlRepositoryManager extends AbstractRepositoryManager
|
|||||||
/** Field description */
|
/** Field description */
|
||||||
private final Store<XmlRepositoryDatabase> store;
|
private final Store<XmlRepositoryDatabase> store;
|
||||||
|
|
||||||
|
/** Field description */
|
||||||
|
private ScmConfiguration configuration;
|
||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
private Map<String, RepositoryHandler> handlerMap;
|
private Map<String, RepositoryHandler> handlerMap;
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ import com.google.inject.Provider;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import sonia.scm.Type;
|
import sonia.scm.Type;
|
||||||
|
import sonia.scm.config.ScmConfiguration;
|
||||||
import sonia.scm.repository.xml.XmlRepositoryManager;
|
import sonia.scm.repository.xml.XmlRepositoryManager;
|
||||||
import sonia.scm.store.JAXBStoreFactory;
|
import sonia.scm.store.JAXBStoreFactory;
|
||||||
import sonia.scm.store.StoreFactory;
|
import sonia.scm.store.StoreFactory;
|
||||||
@@ -132,7 +133,9 @@ public class XmlRepositoryManagerTest extends RepositoryManagerTestBase
|
|||||||
|
|
||||||
when(hookProvider.get()).thenReturn(new HashSet<RepositoryHook>());
|
when(hookProvider.get()).thenReturn(new HashSet<RepositoryHook>());
|
||||||
|
|
||||||
return new XmlRepositoryManager(contextProvider,
|
ScmConfiguration configuration = new ScmConfiguration();
|
||||||
|
|
||||||
|
return new XmlRepositoryManager(configuration, contextProvider,
|
||||||
MockUtil.getAdminSecurityContextProvider(),
|
MockUtil.getAdminSecurityContextProvider(),
|
||||||
factory, handlerSet, listenerProvider,
|
factory, handlerSet, listenerProvider,
|
||||||
hookProvider);
|
hookProvider);
|
||||||
|
|||||||
Reference in New Issue
Block a user