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()" );
         }
     }
 


Reply via email to