From 46900eea43b08e488f71acc1bfbd9451cdda8d79 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Tue, 12 Feb 2013 17:11:15 +0000 Subject: [PATCH] ldap writable save in archiva configuration git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1445271 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/mdo/configuration.mdo | 6 ++++++ .../admin/model/beans/LdapConfiguration.java | 15 +++++++++++++++ .../DefaultRedbackRuntimeConfigurationAdmin.java | 13 +++++++++++++ .../src/main/webapp/js/archiva/general-admin.js | 9 +++++++-- .../js/templates/archiva/general-admin.html | 9 +++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo index 49a858bc2..b1257abb1 100644 --- a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo +++ b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo @@ -1607,6 +1607,12 @@ 1.4.0+ boolean + + writable + LDAP writable. + 1.4.0+ + boolean + extraProperties 1.4.0+ diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java index eba93395d..25d391554 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java @@ -95,6 +95,11 @@ public class LdapConfiguration */ private List extraPropertiesEntries; + /** + * LDAP writable. + */ + private boolean writable = false; + public LdapConfiguration() { // no op @@ -231,4 +236,14 @@ public class LdapConfiguration { this.baseGroupsDn = baseGroupsDn; } + + public boolean isWritable() + { + return writable; + } + + public void setWritable( boolean writable ) + { + this.writable = writable; + } } diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java index ebb117e06..1ffc45ee7 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java @@ -132,6 +132,9 @@ public class DefaultRedbackRuntimeConfigurationAdmin ldapConfiguration.setAuthenticationMethod( userConfiguration.getString( UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD, null ) ); + ldapConfiguration.setWritable( + userConfiguration.getBoolean( UserConfigurationKeys.LDAP_WRITABLE, false ) ); + redbackRuntimeConfiguration.setMigratedFromRedbackConfiguration( true ); updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration ); @@ -444,6 +447,11 @@ public class DefaultRedbackRuntimeConfigurationAdmin { RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration(); + if ( UserConfigurationKeys.LDAP_WRITABLE.equals( key ) ) + { + return conf.getLdapConfiguration().isWritable(); + } + if ( conf.getConfigurationProperties().containsKey( key ) ) { return Boolean.valueOf( conf.getConfigurationProperties().get( key ) ); @@ -472,6 +480,11 @@ public class DefaultRedbackRuntimeConfigurationAdmin return getRedbackRuntimeConfiguration().getLdapConfiguration().isSsl(); } + if ( UserConfigurationKeys.LDAP_WRITABLE.equals( key ) ) + { + return getRedbackRuntimeConfiguration().getLdapConfiguration().isWritable(); + } + RedbackRuntimeConfiguration conf = getRedbackRuntimeConfiguration(); if ( conf.getConfigurationProperties().containsKey( key ) ) diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/general-admin.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/general-admin.js index b327ce22d..b2e59166e 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/general-admin.js +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/general-admin.js @@ -1290,7 +1290,7 @@ define("archiva.general-admin",["jquery","i18n","utils","jquery.tmpl","knockout" } LdapConfiguration=function(hostName,port,ssl,baseDn,baseGroupsDn,contextFactory,bindDn,password,authenticationMethod, - extraPropertiesEntries){ + extraPropertiesEntries,writable){ var self=this; this.modified=ko.observable(false); @@ -1333,6 +1333,11 @@ define("archiva.general-admin",["jquery","i18n","utils","jquery.tmpl","knockout" this.extraPropertiesEntries=ko.observableArray(extraPropertiesEntries); this.extraPropertiesEntries.subscribe(function(newValue){self.modified(true)}); + + //private boolean writable = false; + this.writable=ko.observable(writable); + this.writable.subscribe(function(newValue){self.modified(true)}); + } mapLdapConfiguration=function(data){ @@ -1346,7 +1351,7 @@ define("archiva.general-admin",["jquery","i18n","utils","jquery.tmpl","knockout" } $.log("mapLdapConfiguration done"); return new LdapConfiguration(data.hostName,data.port,data.ssl,data.baseDn,data.baseGroupsDn,data.contextFactory,data.bindDn,data.password, - data.authenticationMethod,extraPropertiesEntries); + data.authenticationMethod,extraPropertiesEntries,data.writable); } return null; } diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html index ade1b20d9..af6d25d88 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html @@ -1024,6 +1024,15 @@ data-bind="value: redbackRuntimeConfiguration().ldapConfiguration().port"/> +
+ +
+ +
+