Author: jmcconnell
Date: Tue Sep 19 03:28:26 2006
New Revision: 447799
URL: http://svn.apache.org/viewvc?view=rev&rev=447799
Log:
added in a refresh in case the user store is nukes and the repos still exist,
it will now add roles for the existing repos.
Modified:
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
Modified:
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java?view=diff&rev=447799&r1=447798&r2=447799
==============================================================================
---
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
(original)
+++
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ConfigurationInterceptor.java
Tue Sep 19 03:28:26 2006
@@ -20,11 +20,15 @@
import com.opensymphony.xwork.interceptor.Interceptor;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.ConfigurationStore;
+import org.apache.maven.archiva.configuration.ConfigurationStoreException;
import org.apache.maven.archiva.web.util.RoleManager;
import org.apache.maven.archiva.web.ArchivaDefaults;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.security.rbac.RBACManager;
+import java.util.Map;
+import java.util.Iterator;
+
/**
* An interceptor that makes the application configuration available
*
@@ -65,6 +69,7 @@
throws Exception
{
archivaDefaults.ensureDefaultsExist();
+ ensureRepoRolesExist();
// determine if we need an admin account made
@@ -86,6 +91,38 @@
else
{
return actionInvocation.invoke();
+ }
+ }
+
+ public void ensureRepoRolesExist()
+ {
+ try
+ {
+ if ( configurationStore.getConfigurationFromStore().isValid() )
+ {
+ Map repositories =
configurationStore.getConfigurationFromStore().getRepositoriesMap();
+
+ for ( Iterator i = repositories.keySet().iterator();
i.hasNext(); )
+ {
+ String id = (String) i.next();
+
+ if ( !rbacManager.roleExists( "Repository Observer - " +
id ) )
+ {
+ getLogger().info( "recovering Repository Observer - "
+ id );
+ roleManager.addRepository( id );
+ }
+
+ if ( !rbacManager.roleExists( "Repository Manager - " + id
) )
+ {
+ getLogger().info( "recovering Repository Manager - " +
id );
+ roleManager.addRepository( id );
+ }
+ }
+ }
+ }
+ catch ( ConfigurationStoreException e )
+ {
+ throw new RuntimeException( "error with configurationStore()" );
}
}