import java.lang.*; import java.util.*; import java.io.*; import java.math.*; import twinfeats.util.*; public class SecureUser { static Profile sUsers; ProfileSection section; SecureUser(String name, String email, String pass, String laston) { section = new ProfileSection(name); section.setDataObject(this); sUsers.addVar(section,"Name",name); sUsers.addVar(section,"EMail",email); sUsers.addVar(section,"Password",pass); sUsers.addVar(section,"Last On",laston); sUsers.addSection(section); writeUsers(); } SecureUser(ProfileSection ps) { section = ps; section.setDataObject(this); sUsers.addSection(section); writeUsers(); } public static synchronized SecureUser addUser(String name, String email, String pass, String laston) throws DuplicateUserException { if (findUser(name) != null) throw new DuplicateUserException(name); SecureUser su = new SecureUser(name,email,pass,laston); return su; } public String getName() { return section.getName(); } public String getPassword() { return section.getValue("Password"); } public String getLastOn() { return section.getValue("Last On"); } public String getEMail() { return section.getValue("EMail"); } public void setEMail(String s) { section.setValue("EMail",s); writeUsers(); } public ProfileSection getSection() { return section; } public void setLastOn(String d) { section.setValue("Last On",d); writeUsers(); } public static void removeUser(SecureUser su) { sUsers.removeSection(su.getName()); writeUsers(); } public static SecureUser verifyUser(String name, String password) { SecureUser su = findUser(name); if (su != null) { if (su.getPassword().equals(password)) return su; else return null; } return null; } public static SecureUser findUser(String name) { ProfileSection ps = sUsers.getSection(name); if (ps != null) return (SecureUser)ps.getDataObject(); return null; } public void setPassword(String p) { section.setValue("Password",p); writeUsers(); } public static void writeUsers() { try { sUsers.write(); } catch (Exception e) { e.printStackTrace(); } } public static void loadUsers(String name) { try { sUsers = new Profile(name,true); } catch (IOException ioe) { ioe.printStackTrace(); } sUsers.parse(); getUsers(); } public static SecureUser[] getUsers() { ProfileSection[] ps = sUsers.getSections(); SecureUser[] su = null; if (ps != null) { su = new SecureUser[ps.length]; for (int i=0;i