diff --git a/htroot/interaction/Footer.html b/htroot/interaction/Footer.html new file mode 100644 index 000000000..23adeaa94 --- /dev/null +++ b/htroot/interaction/Footer.html @@ -0,0 +1,139 @@ +#(enabled)#:: + + + +#(feedbackenabled)#::#(/feedbackenabled)# +#(addcontentenabled)#::#(/addcontentenabled)# +#(userlogonenabled)#::#(/userlogonenabled)# + + + + + +#(/enabled)# diff --git a/htroot/interaction/OverlayInteraction.html b/htroot/interaction/OverlayInteraction.html new file mode 100644 index 000000000..d7464b427 --- /dev/null +++ b/htroot/interaction/OverlayInteraction.html @@ -0,0 +1,62 @@ +#(enabled)#:: + + + + + + + +#(/enabled)# diff --git a/htroot/interaction/OverlayInteraction.java b/htroot/interaction/OverlayInteraction.java new file mode 100644 index 000000000..9fdffe9f6 --- /dev/null +++ b/htroot/interaction/OverlayInteraction.java @@ -0,0 +1,98 @@ +package interaction; + +//ViewLog_p.java +//----------------------- +//part of the AnomicHTTPD caching proxy +//(C) by Michael Peter Christen; mc@yacy.net +//first published on http://www.anomic.de +//Frankfurt, Germany, 2004 +// +//This File is contributed by Alexander Schier +//last major change: 14.12.2004 +// +//This program is free software; you can redistribute it and/or modify +//it under the terms of the GNU General Public License as published by +//the Free Software Foundation; either version 2 of the License, or +//(at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +//You must compile this file with +//javac -classpath .:../classes ViewLog_p.java +//if the shell's current path is HTROOT + +import net.yacy.cora.protocol.HeaderFramework; +import net.yacy.cora.protocol.RequestHeader; +import net.yacy.search.Switchboard; +import de.anomic.data.UserDB; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; + +public class OverlayInteraction { + + public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { + + final Switchboard sb = (Switchboard) env; + + final serverObjects prop = new serverObjects(); + + + prop.put("enabled", "1"); + + UserDB.Entry entry=null; + + prop.put("enabled_username", "anonymous"); + + //identified via HTTPPassword + entry=sb.userDB.proxyAuth((header.get(RequestHeader.AUTHORIZATION, "xxxxxx"))); + if(entry != null){ + prop.put("enabled_logged-in_identified-by", "1"); + //try via cookie + }else{ + entry=sb.userDB.cookieAuth(header.getHeaderCookies()); + prop.put("enabled_logged-in_identified-by", "2"); + //try via ip + if(entry == null){ + entry=sb.userDB.ipAuth((header.get(HeaderFramework.CONNECTION_PROP_CLIENTIP, "xxxxxx"))); + if(entry != null){ + prop.put("enabled_logged-in_identified-by", "0"); + } + } + } + + //identified via userDB + if(entry != null){ + prop.put("enabled_logged-in", "1"); + prop.put("enabled_username", entry.getUserName()); + if(entry.getTimeLimit() > 0){ + prop.put("enabled_logged-in_limit", "1"); + final long limit=entry.getTimeLimit(); + final long used=entry.getTimeUsed(); + prop.put("enabled_logged-in_limit_timelimit", limit); + prop.put("enabled_logged-in_limit_timeused", used); + int percent=0; + if(limit!=0 && used != 0) + percent=(int)((float)used/(float)limit*100); + prop.put("enabled_logged-in_limit_percent", percent/3); + prop.put("enabled_logged-in_limit_percent2", (100-percent)/3); + } + //logged in via static Password + }else if(sb.verifyAuthentication(header)){ + prop.put("enabled_logged-in", "2"); + prop.put("enabled_username", "staticadmin"); + //identified via form-login + //TODO: this does not work for a static admin, yet. + } + + + return prop; + } +} diff --git a/source/net/yacy/interaction/AugmentHtmlStream.java b/source/net/yacy/interaction/AugmentHtmlStream.java index 426c731c6..c5f825c3c 100644 --- a/source/net/yacy/interaction/AugmentHtmlStream.java +++ b/source/net/yacy/interaction/AugmentHtmlStream.java @@ -384,7 +384,9 @@ public class AugmentHtmlStream { NodeList bodychildren = bt.getChildren(); + bodychildren.add(new org.htmlparser.nodes.TextNode(loadInternal("interaction/Footer.html", requestHeader))); + bodychildren.add(new org.htmlparser.nodes.TextNode(loadInternal("interaction/OverlayInteraction.html", requestHeader))); // ADD AUGMENTED INFO