Author: olamy
Date: Tue Dec  4 18:22:28 2012
New Revision: 1417093

URL: http://svn.apache.org/viewvc?rev=1417093&view=rev
Log:
[MRM-1718] ldap configuration editable with the ui.
WORK IN PROGRESS !

Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaLdapConfiguration.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaLdapConfiguration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaLdapConfiguration.java?rev=1417093&r1=1417092&r2=1417093&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaLdapConfiguration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaLdapConfiguration.java
 Tue Dec  4 18:22:28 2012
@@ -26,7 +26,7 @@ import java.util.Map;
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@XmlRootElement ( name = "archivaLdapConfiguration" )
+@XmlRootElement( name = "archivaLdapConfiguration" )
 public class ArchivaLdapConfiguration
 {
 
@@ -39,7 +39,7 @@ public class ArchivaLdapConfiguration
     /**
      * The LDAP port.
      */
-    private String port;
+    private int port;
 
     /**
      * ssl LDAP connection.
@@ -72,6 +72,11 @@ public class ArchivaLdapConfiguration
     private String authenticationMethod;
 
     /**
+     *
+     */
+    private boolean bindAuthenticatorEnabled;
+
+    /**
      * Field extraProperties.
      */
     private Map<String, String> extraProperties = new HashMap<String, 
String>();
@@ -91,12 +96,12 @@ public class ArchivaLdapConfiguration
         this.hostName = hostName;
     }
 
-    public String getPort()
+    public int getPort()
     {
         return port;
     }
 
-    public void setPort( String port )
+    public void setPort( int port )
     {
         this.port = port;
     }
@@ -170,4 +175,14 @@ public class ArchivaLdapConfiguration
     {
         this.extraProperties = extraProperties;
     }
+
+    public boolean isBindAuthenticatorEnabled()
+    {
+        return bindAuthenticatorEnabled;
+    }
+
+    public void setBindAuthenticatorEnabled( boolean bindAuthenticatorEnabled )
+    {
+        this.bindAuthenticatorEnabled = bindAuthenticatorEnabled;
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java?rev=1417093&r1=1417092&r2=1417093&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
 Tue Dec  4 18:22:28 2012
@@ -25,7 +25,7 @@ import java.io.Serializable;
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@XmlRootElement (name = "archivaRuntimeConfiguration")
+@XmlRootElement(name = "archivaRuntimeConfiguration")
 public class ArchivaRuntimeConfiguration
     implements Serializable
 {
@@ -33,6 +33,11 @@ public class ArchivaRuntimeConfiguration
 
     private ArchivaLdapConfiguration archivaLdapConfiguration;
 
+    /**
+     * flag to know if redback configuration has been checked/migrated.
+     */
+    private boolean migratedFromRedbackConfiguration = false;
+
     public ArchivaRuntimeConfiguration()
     {
         // no op
@@ -57,4 +62,24 @@ public class ArchivaRuntimeConfiguration
     {
         this.archivaLdapConfiguration = archivaLdapConfiguration;
     }
+
+    public boolean isMigratedFromRedbackConfiguration()
+    {
+        return migratedFromRedbackConfiguration;
+    }
+
+    public void setMigratedFromRedbackConfiguration( boolean 
migratedFromRedbackConfiguration )
+    {
+        this.migratedFromRedbackConfiguration = 
migratedFromRedbackConfiguration;
+    }
+
+    @Override
+    public String toString()
+    {
+        return "ArchivaRuntimeConfiguration{" +
+            "userManagerImpl='" + userManagerImpl + '\'' +
+            ", archivaLdapConfiguration=" + archivaLdapConfiguration +
+            ", migratedFromRedbackConfiguration=" + 
migratedFromRedbackConfiguration +
+            '}';
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java?rev=1417093&r1=1417092&r2=1417093&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/ArchivaRuntimeConfigurationAdmin.java
 Tue Dec  4 18:22:28 2012
@@ -27,7 +27,7 @@ import org.apache.archiva.admin.model.be
  */
 public interface ArchivaRuntimeConfigurationAdmin
 {
-    ArchivaRuntimeConfiguration getArchivaRuntimeConfigurationAdmin()
+    ArchivaRuntimeConfiguration getArchivaRuntimeConfiguration()
         throws RepositoryAdminException;
 
     void updateArchivaRuntimeConfiguration( ArchivaRuntimeConfiguration 
archivaRuntimeConfiguration )

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java?rev=1417093&r1=1417092&r2=1417093&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
 Tue Dec  4 18:22:28 2012
@@ -18,7 +18,9 @@ package org.apache.archiva.admin.reposit
  * under the License.
  */
 
+import net.sf.beanlib.provider.replicator.BeanReplicator;
 import org.apache.archiva.admin.model.RepositoryAdminException;
+import org.apache.archiva.admin.model.beans.ArchivaLdapConfiguration;
 import org.apache.archiva.admin.model.beans.ArchivaRuntimeConfiguration;
 import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
 import org.apache.archiva.admin.repository.AbstractRepositoryAdmin;
@@ -26,20 +28,72 @@ import org.apache.archiva.configuration.
 import org.apache.archiva.configuration.IndeterminateConfigurationException;
 import org.apache.archiva.configuration.RuntimeConfiguration;
 import org.apache.archiva.redback.components.registry.RegistryException;
+import org.apache.archiva.redback.configuration.UserConfiguration;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Named;
+
 /**
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@Service ( "archivaRuntimeConfigurationAdmin#default" )
+@Service( "archivaRuntimeConfigurationAdmin#default" )
 public class DefaultArchivaRuntimeConfigurationAdmin
     extends AbstractRepositoryAdmin
     implements ArchivaRuntimeConfigurationAdmin
 {
 
+    @Inject
+    @Named( value = "userConfiguration" )
+    UserConfiguration userConfiguration;
+
+    @PostConstruct
+    public void initialize()
+        throws RepositoryAdminException
+    {
+        ArchivaRuntimeConfiguration archivaRuntimeConfiguration = 
getArchivaRuntimeConfiguration();
+        // migrate or not data from redback
+        if ( !archivaRuntimeConfiguration.isMigratedFromRedbackConfiguration() 
)
+        {
+            // so migrate if available
+            String userManagerImpl = userConfiguration.getString( 
"user.manager.impl" );
+            if ( StringUtils.isNotEmpty( userManagerImpl ) )
+            {
+                archivaRuntimeConfiguration.setUserManagerImpl( 
userManagerImpl );
+            }
+
+            // now ldap
+
+            ArchivaLdapConfiguration archivaLdapConfiguration =
+                archivaRuntimeConfiguration.getArchivaLdapConfiguration();
+            if ( archivaLdapConfiguration == null )
+            {
+                archivaLdapConfiguration = new ArchivaLdapConfiguration();
+                archivaRuntimeConfiguration.setArchivaLdapConfiguration( 
archivaLdapConfiguration );
+            }
+
+            archivaLdapConfiguration.setHostName( userConfiguration.getString( 
"ldap.config.hostname", null ) );
+            archivaLdapConfiguration.setPort( userConfiguration.getInt( 
"ldap.config.port", -1 ) );
+            archivaLdapConfiguration.setSsl( userConfiguration.getBoolean( 
"ldap.config.ssl", false ) );
+            archivaLdapConfiguration.setBaseDn( 
userConfiguration.getConcatenatedList( "ldap.config.base.dn", null ) );
+            archivaLdapConfiguration.setContextFactory(
+                userConfiguration.getString( "ldap.config.context.factory", 
null ) );
+            archivaLdapConfiguration.setBindDn( 
userConfiguration.getConcatenatedList( "ldap.config.bind.dn", null ) );
+            archivaLdapConfiguration.setPassword( userConfiguration.getString( 
"ldap.config.password", null ) );
+            archivaLdapConfiguration.setAuthenticationMethod(
+                userConfiguration.getString( 
"ldap.config.authentication.method", null ) );
+
+            archivaRuntimeConfiguration.setMigratedFromRedbackConfiguration( 
true );
+
+            updateArchivaRuntimeConfiguration( archivaRuntimeConfiguration );
+        }
+
+    }
 
-    public ArchivaRuntimeConfiguration getArchivaRuntimeConfigurationAdmin()
+    public ArchivaRuntimeConfiguration getArchivaRuntimeConfiguration()
         throws RepositoryAdminException
     {
         return build( 
getArchivaConfiguration().getConfiguration().getRuntimeConfiguration() );
@@ -67,15 +121,11 @@ public class DefaultArchivaRuntimeConfig
 
     private ArchivaRuntimeConfiguration build( RuntimeConfiguration 
runtimeConfiguration )
     {
-        ArchivaRuntimeConfiguration archivaRuntimeConfiguration = new 
ArchivaRuntimeConfiguration();
-        archivaRuntimeConfiguration.setUserManagerImpl( 
runtimeConfiguration.getUserManagerImpl() );
-        return archivaRuntimeConfiguration;
+        return new BeanReplicator().replicateBean( runtimeConfiguration, 
ArchivaRuntimeConfiguration.class );
     }
 
     private RuntimeConfiguration build( ArchivaRuntimeConfiguration 
archivaRuntimeConfiguration )
     {
-        RuntimeConfiguration runtimeConfiguration = new RuntimeConfiguration();
-        runtimeConfiguration.setUserManagerImpl( 
archivaRuntimeConfiguration.getUserManagerImpl() );
-        return runtimeConfiguration;
+        return new BeanReplicator().replicateBean( 
archivaRuntimeConfiguration, RuntimeConfiguration.class );
     }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java?rev=1417093&r1=1417092&r2=1417093&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
 Tue Dec  4 18:22:28 2012
@@ -60,7 +60,7 @@ public class DefaultArchivaRuntimeConfig
     {
         try
         {
-            return 
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfigurationAdmin();
+            return 
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration();
         }
         catch ( RepositoryAdminException e )
         {
@@ -75,7 +75,7 @@ public class DefaultArchivaRuntimeConfig
         {
             // has user manager impl changed ?
             boolean userManagerChanged = !StringUtils.equals( 
archivaRuntimeConfiguration.getUserManagerImpl(),
-                                                              
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfigurationAdmin().getUserManagerImpl()
 );
+                                                              
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpl()
 );
             
archivaRuntimeConfigurationAdmin.updateArchivaRuntimeConfiguration( 
archivaRuntimeConfiguration );
 
             if ( userManagerChanged )

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java?rev=1417093&r1=1417092&r2=1417093&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
 Tue Dec  4 18:22:28 2012
@@ -48,7 +48,7 @@ public class ArchivaConfigurableUsersMan
         try
         {
             String userManagerImplStr =
-                
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfigurationAdmin().getUserManagerImpl();
+                
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpl();
             log.info( "use userManagerImpl: '{}'", userManagerImplStr );
             UserManager userManagerImpl =
                 applicationContext.getBean( "userManager#" + 
userManagerImplStr, UserManager.class );

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js?rev=1417093&r1=1417092&r2=1417093&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
 Tue Dec  4 18:22:28 2012
@@ -253,12 +253,13 @@ require(["jquery","jquery.tmpl","i18n","
       $.log("displayRedbackError with array");
       for(var i=0; i<obj.errorMessages.length; i++ ) {
         if(obj.errorMessages[i].errorKey) {
-          $.log("displayRedbackError with array loop");
           displayErrorMessage($.i18n.prop( obj.errorMessages[i].errorKey, 
obj.errorMessages[i].args ),idToAppend);
         }
+        if(obj.errorMessages[i].message) {
+          displayErrorMessage(obj.errorMessages[i].message,idToAppend);
+        }
       }
     } else {
-      $.log("displayRedbackError no array");
       displayErrorMessage($.i18n.prop( obj.errorMessages.errorKey, 
obj.errorMessages.args ),idToAppend);
     }
   }
@@ -301,7 +302,9 @@ require(["jquery","jquery.tmpl","i18n","
       displayErrorMessage($.i18n.prop( data.errorKey ),idToAppend);
     } else if (data.errorMessages){
       $.each(data.errorMessages, function(index, value) {
-        displayErrorMessage( 
$.i18n.prop(data.errorMessages[index].errorKey,data.errorMessages[index].args?data.errorMessages[index].args:null),idToAppend);
+        if(data.errorMessages[index].errorKey) {
+          displayErrorMessage( 
$.i18n.prop(data.errorMessages[index].errorKey,data.errorMessages[index].args?data.errorMessages[index].args:null),idToAppend);
+        }
       });
     } else {
       $.log("print data.errorMessage:"+data.errorMessage);
@@ -396,6 +399,13 @@ require(["jquery","jquery.tmpl","i18n","
   // utils javascript string extensions
   //------------------------------------
 
+  String.prototype.isEmpty = function(str) {
+    return ($.trim(this ).length < 1);
+  }
+  String.prototype.isNotEmpty = function(str) {
+    return ($.trim(this ).length > 0);
+  }
+
   String.prototype.endsWith = function(str) {
     return (this.match(str+"$")==str)
   }


Reply via email to