Author: oching
Date: Tue Nov 21 03:43:09 2006
New Revision: 477635
URL: http://svn.apache.org/viewvc?view=rev&rev=477635
Log:
PR: MRM-231
Added deletion of user profiles associated with a specific repository once that
repository is deleted.
Modified:
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/DeleteRepositoryAction.java
Modified:
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java?view=diff&rev=477635&r1=477634&r2=477635
==============================================================================
---
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
(original)
+++
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/AbstractDeleteRepositoryAction.java
Tue Nov 21 03:43:09 2006
@@ -28,6 +28,8 @@
import org.codehaus.plexus.security.ui.web.interceptor.SecureActionBundle;
import org.codehaus.plexus.security.ui.web.interceptor.SecureActionException;
import org.codehaus.plexus.xwork.action.PlexusActionSupport;
+import org.codehaus.plexus.rbac.profile.RoleProfileManager;
+import org.codehaus.plexus.rbac.profile.RoleProfileException;
import java.io.IOException;
@@ -55,6 +57,10 @@
*/
private String operation = "unmodified";
+ /**
+ * @plexus.requirement role-hint="archiva"
+ */
+ protected RoleProfileManager roleProfileManager;
public String execute()
throws ConfigurationStoreException, IOException,
InvalidConfigurationException, ConfigurationChangeException
{
@@ -92,7 +98,7 @@
protected abstract AbstractRepositoryConfiguration getRepository(
Configuration configuration );
protected abstract void removeRepository( Configuration configuration,
- AbstractRepositoryConfiguration
existingRepository );
+ AbstractRepositoryConfiguration existingRepository );
public String input()
{
@@ -138,4 +144,5 @@
return bundle;
}
+
}
Modified:
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/DeleteRepositoryAction.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/DeleteRepositoryAction.java?view=diff&rev=477635&r1=477634&r2=477635
==============================================================================
---
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/DeleteRepositoryAction.java
(original)
+++
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/DeleteRepositoryAction.java
Tue Nov 21 03:43:09 2006
@@ -20,6 +20,7 @@
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.RepositoryConfiguration;
import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.rbac.profile.RoleProfileException;
import java.io.IOException;
@@ -39,6 +40,16 @@
protected void removeRepository( Configuration configuration,
AbstractRepositoryConfiguration existingRepository )
{
configuration.removeRepository( (RepositoryConfiguration)
existingRepository );
+
+ try
+ {
+ removeRepositoryRoles( existingRepository );
+ }
+ catch ( RoleProfileException e )
+ {
+ getLogger().error( "Error removing user roles associated with
repository " +
+ existingRepository.getId() );
+ }
}
protected void removeContents( AbstractRepositoryConfiguration
existingRepository )
@@ -47,5 +58,20 @@
RepositoryConfiguration repository = (RepositoryConfiguration)
existingRepository;
getLogger().info( "Removing " + repository.getDirectory() );
FileUtils.deleteDirectory( repository.getDirectory() );
+ }
+
+ /**
+ * Remove user roles associated with the repository
+ *
+ * @param existingRepository
+ * @throws RoleProfileException
+ */
+ private void removeRepositoryRoles( AbstractRepositoryConfiguration
existingRepository )
+ throws RoleProfileException
+ {
+ roleProfileManager.deleteDynamicRole( "archiva-repository-manager",
existingRepository.getId() );
+ roleProfileManager.deleteDynamicRole( "archiva-repository-observer",
existingRepository.getId() );
+
+ getLogger().info( "removed user roles associated with repository " +
existingRepository.getId() );
}
}