1 10 package org.mmbase.module.builders; 11 12 import java.util.*; 13 import org.mmbase.module.*; 14 import org.mmbase.module.core.*; 15 import org.mmbase.util.*; 16 17 import org.mmbase.util.logging.Logger; 18 import org.mmbase.util.logging.Logging; 19 20 24 public class Users extends MMObjectBuilder { 25 26 private static Logger log = Logging.getLoggerInstance(Users.class.getName()); 27 28 LRUHashtable cache = new LRUHashtable(100); 31 32 protected PasswordGeneratorInterface pwgen = new PasswordGenerator (); 34 35 38 public String replace(scanpage sp, StringTokenizer tok) { 39 if (tok.hasMoreTokens()) { 40 String cmd=tok.nextToken(); 41 if (cmd.equals("number")) { 42 int i=getNumber(sp.getSessionName()); 43 if (i!=-1) { 44 return(""+i); 45 } else { 46 return(""); 47 } 48 49 } else if (cmd.equals("email")) { 50 return(getEmail(sp.getSessionName())); 52 53 } else if (cmd.equals("password")) { 54 return(getPassword(sp.getSessionName())); 56 57 } else if (cmd.equals("account")) { 58 return(getAccount(sp.getSessionName())); 60 61 } else if (cmd.equals("newpassword")) { 62 return(pwgen.getPassword()); 64 } 65 } 66 return(""); 67 } 68 69 74 public int getNumber(String key) { 75 76 Integer n=(Integer )cache.get(key); 78 if (n!=null) { 79 80 if (log.isDebugEnabled()) { 82 log.debug("user positive cache"); 83 } 84 return(n.intValue()); 85 } 86 87 Cookies bul=(Cookies)mmb.getMMObject("cookies"); 91 if (bul!=null) { 92 93 int i=bul.getNumber(key); 95 96 if (i!=-1) { 97 MMObjectNode node=getNode(i); 101 Enumeration e=node.getRelatedNodes("users").elements(); 102 if (e.hasMoreElements()) { 103 MMObjectNode node2=(MMObjectNode)e.nextElement(); 104 if (node2!=null) { 105 int number=node2.getIntValue("number"); 108 cache.put(key,new Integer (number)); 109 if (log.isDebugEnabled()) { 110 log.debug("users positive"); 111 } 112 return(number); 113 } 114 } 115 } 116 } 117 return(-1); 119 } 120 121 122 127 protected String getAccount(String key) { 128 int number=getNumber(key); 129 if (number!=-1) { 130 MMObjectNode node=getNode(number); 131 String value=node.getStringValue("account"); 132 return(value); 133 } 134 return(""); 135 } 136 137 138 143 protected String getEmail(String key) { 144 int number=getNumber(key); 145 if (number!=-1) { 146 MMObjectNode node=getNode(number); 147 String value=node.getStringValue("email"); 148 return(value); 149 } 150 return(""); 151 } 152 153 154 159 protected String getPassword(String key) { 160 int number=getNumber(key); 161 if (number!=-1) { 162 MMObjectNode node=getNode(number); 163 String value=node.getStringValue("password"); 164 return(value); 165 } 166 return(""); 167 } 168 169 174 public void flushCache(String key) { 175 if(key != null) { 177 cache.remove(key); 179 sessions s=(sessions)Module.getModule("SESSION"); 181 if (s!=null) { 182 s.forgetSession(key); 185 } 186 } 187 } 188 } 189 | Popular Tags |