From 30356ec9802e7560cfdad72f09a8edbc7070b820 Mon Sep 17 00:00:00 2001 From: orbiter Date: Thu, 15 May 2008 20:13:43 +0000 Subject: [PATCH] The basic configuration is now very very easy! New users will not be confronted with account settings. - moved account definition from Basic Configuration into the User_p servlet which was renamed to ConficAccounts_p - moved and renamed submenu entries on Status page. git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@4805 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/{User_p.html => ConfigAccounts_p.html} | 38 +++++++++++++-- htroot/{User_p.java => ConfigAccounts_p.java} | 47 +++++++++++++++---- htroot/ConfigBasic.html | 33 ++----------- htroot/ConfigBasic.java | 29 ------------ htroot/env/templates/submenuConfig.template | 12 ++--- 5 files changed, 82 insertions(+), 77 deletions(-) rename htroot/{User_p.html => ConfigAccounts_p.html} (63%) rename htroot/{User_p.java => ConfigAccounts_p.java} (77%) diff --git a/htroot/User_p.html b/htroot/ConfigAccounts_p.html similarity index 63% rename from htroot/User_p.html rename to htroot/ConfigAccounts_p.html index 54e753550..1e93e51e3 100644 --- a/htroot/User_p.html +++ b/htroot/ConfigAccounts_p.html @@ -23,8 +23,38 @@

Passwords do not match.

::

Username too short. Username must be >= 4 Characters.

- #(/error)# + #(/error)# + +
Admin Account +
+
+ + + + + Access to your peer from your own computer (localhost access) is granted. No need to configure an administration account. +
+ +
+ + + + + You need this only if you want a remote access to your peer. +
+
+
+
+
+
+
+
+
+ +
+
+
User Accounts
Select user
@@ -44,7 +74,7 @@
-
+
Edit current user: #[username]# @@ -75,7 +105,9 @@
-
+ +
+ #%env/templates/footer.template%# diff --git a/htroot/User_p.java b/htroot/ConfigAccounts_p.java similarity index 77% rename from htroot/User_p.java rename to htroot/ConfigAccounts_p.java index f9ca82307..7a2ff7201 100644 --- a/htroot/User_p.java +++ b/htroot/ConfigAccounts_p.java @@ -52,18 +52,47 @@ import java.util.Iterator; import de.anomic.data.userDB; import de.anomic.http.httpHeader; +import de.anomic.http.httpd; +import de.anomic.kelondro.kelondroBase64Order; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverCodings; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; -public class User_p { +public class ConfigAccounts_p { public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { serverObjects prop = new serverObjects(); plasmaSwitchboard sb = plasmaSwitchboard.getSwitchboard(); userDB.Entry entry=null; + // admin password + boolean localhostAccess = sb.getConfigBool("adminAccountForLocalhost", false); + if ((post != null) && (post.containsKey("setAdmin"))) { + localhostAccess = post.get("access", "").equals("localhost"); + String user = (post == null) ? "" : (String) post.get("adminuser", ""); + String pw1 = (post == null) ? "" : (String) post.get("adminpw1", ""); + String pw2 = (post == null) ? "" : (String) post.get("adminpw2", ""); + sb.setConfig("adminAccountForLocalhost", localhostAccess); + // if an localhost access is configured, check if a local password is given + // if not, set a random password + if (post != null && localhostAccess && env.getConfig(httpd.ADMIN_ACCOUNT_B64MD5, "").length() == 0) { + // make a 'random' password + env.setConfig(httpd.ADMIN_ACCOUNT_B64MD5, "0000" + serverCodings.encodeMD5Hex(System.getProperties().toString() + System.currentTimeMillis())); + env.setConfig("adminAccount", ""); + } + // may be overwritten if new password is given + if ((user.length() > 0) && (pw1.length() > 3) && (pw1.equals(pw2))) { + // check passed. set account: + env.setConfig(httpd.ADMIN_ACCOUNT_B64MD5, serverCodings.encodeMD5Hex(kelondroBase64Order.standardCoder.encodeString(user + ":" + pw1))); + env.setConfig("adminAccount", ""); + } + } + prop.put("localhost.checked", (localhostAccess) ? 1 : 0); + prop.put("account.checked", (localhostAccess) ? 0 : 1); + prop.put("statusPassword", localhostAccess ? "0" : "1"); + prop.put("defaultUser", "admin"); + //default values prop.put("current_user", "newuser"); prop.put("username", ""); @@ -83,8 +112,8 @@ public class User_p { prop.put("rights", i); prop.put("users", "0"); - - if(sb.userDB == null) + + if (sb.userDB == null) return prop; if(post == null){ @@ -122,9 +151,9 @@ public class User_p { String username=(String)post.get("username"); - String pw=(String)post.get("password"); + String pw1=(String)post.get("password"); String pw2=(String)post.get("password2"); - if(! pw.equals(pw2)){ + if(! pw1.equals(pw2)){ prop.put("error", "2"); //PW does not match return prop; } @@ -140,8 +169,8 @@ public class User_p { HashMap mem=new HashMap(); if( post.get("current_user").equals("newuser")){ //new user - if(!pw.equals("")){ //change only if set - mem.put(userDB.Entry.MD5ENCODED_USERPWD_STRING, serverCodings.encodeMD5Hex(username+":"+pw)); + if(!pw1.equals("")){ //change only if set + mem.put(userDB.Entry.MD5ENCODED_USERPWD_STRING, serverCodings.encodeMD5Hex(username+":"+pw1)); } mem.put(userDB.Entry.USER_FIRSTNAME, firstName); mem.put(userDB.Entry.USER_LASTNAME, lastName); @@ -166,8 +195,8 @@ public class User_p { entry = sb.userDB.getEntry(username); if(entry != null){ try{ - if(! pw.equals("")){ - entry.setProperty(userDB.Entry.MD5ENCODED_USERPWD_STRING, serverCodings.encodeMD5Hex(username+":"+pw)); + if(! pw1.equals("")){ + entry.setProperty(userDB.Entry.MD5ENCODED_USERPWD_STRING, serverCodings.encodeMD5Hex(username+":"+pw1)); } entry.setProperty(userDB.Entry.USER_FIRSTNAME, firstName); entry.setProperty(userDB.Entry.USER_LASTNAME, lastName); diff --git a/htroot/ConfigBasic.html b/htroot/ConfigBasic.html index 18229aa6f..d3efb3df9 100644 --- a/htroot/ConfigBasic.html +++ b/htroot/ConfigBasic.html @@ -17,7 +17,7 @@ #%env/templates/header.template%# #%env/templates/submenuConfig.template%# -

Access Configuration

+

Basic Configuration

Your YaCy Peer needs some basic information to operate properly

@@ -31,36 +31,9 @@ +
  • - #(statusPassword)#warning Access to localhost granted without password::ok Password is set#(/statusPassword)#
    -
    - - - - - Access to your peer from your own computer (localhost access) is granted. No need to configure an administration account. -
    - -
    - - - - - You need this only if you want a remote access to your peer. -
    -
    -
    -
    -
    -
    -
    -
    -
    - - -
  • -
  • - #(statusName)#warning Your peer name has not been customized; please set your own peer name::ok You have a nice peer name#(/statusName)#
    + #(statusName)#warning Your peer name has not been customized; please set your own peer name::ok You may change your peer name#(/statusName)#
    diff --git a/htroot/ConfigBasic.java b/htroot/ConfigBasic.java index f8af938f1..0b59db406 100644 --- a/htroot/ConfigBasic.java +++ b/htroot/ConfigBasic.java @@ -52,11 +52,8 @@ import java.util.regex.Pattern; import de.anomic.data.translator; import de.anomic.http.httpHeader; -import de.anomic.http.httpd; import de.anomic.http.httpdFileHandler; -import de.anomic.kelondro.kelondroBase64Order; import de.anomic.plasma.plasmaSwitchboard; -import de.anomic.server.serverCodings; import de.anomic.server.serverCore; import de.anomic.server.serverDomains; import de.anomic.server.serverInstantBusyThread; @@ -100,12 +97,6 @@ public class ConfigBasic { translator.changeLang(env, langPath, post.get("language", "default") + ".lng"); } - // password settings - boolean localhostAccess = (post == null) ? sb.getConfigBool("adminAccountForLocalhost", false) : post.get("access", "").equals("localhost"); - String user = (post == null) ? "" : (String) post.get("adminuser", ""); - String pw1 = (post == null) ? "" : (String) post.get("adminpw1", ""); - String pw2 = (post == null) ? "" : (String) post.get("adminpw2", ""); - // peer name settings String peerName = (post == null) ? env.getConfig("peerName","") : (String) post.get("peername", ""); @@ -114,24 +105,6 @@ public class ConfigBasic { if (post != null && Integer.parseInt((String) post.get("port")) > 1023) { port = post.get("port", "8080"); } - - // admin password - sb.setConfig("adminAccountForLocalhost", localhostAccess); - prop.put("localhost.checked", (localhostAccess) ? 1 : 0); - prop.put("account.checked", (localhostAccess) ? 0 : 1); - // if an localhost access is configured, check if a local password is given - // if not, set a random password - if (post != null && localhostAccess && env.getConfig(httpd.ADMIN_ACCOUNT_B64MD5, "").length() == 0) { - // make a 'random' password - env.setConfig(httpd.ADMIN_ACCOUNT_B64MD5, "0000" + serverCodings.encodeMD5Hex(System.getProperties().toString() + System.currentTimeMillis())); - env.setConfig("adminAccount", ""); - } - // may be overwritten if new password is given - if ((user.length() > 0) && (pw1.length() > 3) && (pw1.equals(pw2))) { - // check passed. set account: - env.setConfig(httpd.ADMIN_ACCOUNT_B64MD5, serverCodings.encodeMD5Hex(kelondroBase64Order.standardCoder.encodeString(user + ":" + pw1))); - env.setConfig("adminAccount", ""); - } // check if peer name already exists yacySeed oldSeed = sb.webIndex.seedDB.lookupByName(peerName); @@ -184,7 +157,6 @@ public class ConfigBasic { } prop.put("statusName", properName ? "1" : "0"); - prop.put("statusPassword", localhostAccess ? "0" : "1"); prop.put("statusPort", properPort ? "1" : "0"); if (reconnect) { prop.put("nextStep", NEXTSTEP_RECONNECT); @@ -198,7 +170,6 @@ public class ConfigBasic { // set default values prop.put("defaultName", env.getConfig("peerName", "")); - prop.put("defaultUser", "admin"); prop.put("defaultPort", env.getConfig("port", "8080")); lang = env.getConfig("locale.language", "default"); // re-assign lang, may have changed if (lang.equals("default")) { diff --git a/htroot/env/templates/submenuConfig.template b/htroot/env/templates/submenuConfig.template index cd8d25a11..9693de89a 100644 --- a/htroot/env/templates/submenuConfig.template +++ b/htroot/env/templates/submenuConfig.template @@ -2,21 +2,21 @@

    Peer Administration Console