X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fmodule%2FModuleUsers.java;h=259cb4523892b398e9583efa105bab21fcebc879;hb=53f90aac81d2c47624f5a1a6d61a796355d2345f;hp=7c0f3041e0b0b2ac5d7bb4605ad6c245ce9edc6c;hpb=2b0e1c1d91eea7e201af61e1065ad12bf966d1ba;p=mir.git diff --git a/source/mircoders/module/ModuleUsers.java b/source/mircoders/module/ModuleUsers.java index 7c0f3041..259cb452 100755 --- a/source/mircoders/module/ModuleUsers.java +++ b/source/mircoders/module/ModuleUsers.java @@ -30,18 +30,18 @@ package mircoders.module; -import java.util.HashMap; -import java.util.Map; - import mir.entity.EntityList; import mir.log.LoggerWrapper; import mir.module.AbstractModule; import mir.module.ModuleExc; import mir.module.ModuleFailure; -import mir.storage.StorageObject; import mir.util.JDBCStringRoutines; import mircoders.entity.EntityUsers; import mircoders.global.MirGlobal; +import mircoders.storage.DatabaseUsers; + +import java.util.HashMap; +import java.util.Map; /* @@ -55,12 +55,8 @@ public class ModuleUsers extends AbstractModule { static LoggerWrapper logger = new LoggerWrapper("Module.Users"); - public ModuleUsers(StorageObject theStorage) - { - if (theStorage == null) - logger.warn("ModuleUsers(): StorageObject was null!"); - - this.theStorage = theStorage; + public ModuleUsers() { + super(DatabaseUsers.getInstance()); } /** @@ -70,7 +66,7 @@ public class ModuleUsers extends AbstractModule * @param password The password * @return The authenticated user, or null if the user * doesn't exist, or the supplied password is invalid. - * @throws ModuleException + * @throws ModuleExc */ public EntityUsers getUserForLogin(String user, String password) throws ModuleExc, ModuleFailure { @@ -84,10 +80,15 @@ public class ModuleUsers extends AbstractModule EntityList userList = getByWhereClause(whereString, -1); - if (userList != null && userList.getCount() == 1) - return (EntityUsers) userList.elementAt(0); - else - return null; + if (userList != null && userList.getCount() == 1) { + EntityUsers result = (EntityUsers) userList.elementAt(0); + + if (result.getFieldValue("is_disabled") == null || + result.getFieldValue("is_disabled").equals("0")) + return result; + } + + return null; } catch (Throwable t) { throw new ModuleFailure(t); @@ -96,14 +97,14 @@ public class ModuleUsers extends AbstractModule public boolean checkUserPassword(EntityUsers aUser, String aPassword) throws ModuleExc, ModuleFailure { try { - return aUser.getValue("password").equals(MirGlobal.localizer().adminInterface().makePasswordDigest(aPassword)); + return aUser.getFieldValue("password").equals(MirGlobal.localizer().adminInterface().makePasswordDigest(aPassword)); } catch (Throwable t) { throw new ModuleFailure(t); } } - private Map digestPassword(Map aValues) throws ModuleExc, ModuleFailure { + private Map digestPassword(Map aValues) throws ModuleFailure { Map result = aValues; try { @@ -122,6 +123,14 @@ public class ModuleUsers extends AbstractModule return result; } + /** + * + * @param theValues + * @return + * @throws ModuleExc + * @throws ModuleFailure + */ + public String add (Map theValues) throws ModuleExc, ModuleFailure { try { return super.add(digestPassword(theValues)); @@ -132,10 +141,11 @@ public class ModuleUsers extends AbstractModule } /** - * Standardfunktion, um einen Datensatz via StorageObject zu aktualisieren - * @param theValues Hash mit Spalte/Wert-Paaren - * @return Id des eingef?gten Objekts - * @exception ModuleException + * + * @param theValues + * @return + * @throws ModuleExc + * @throws ModuleFailure */ public String set (Map theValues) throws ModuleExc, ModuleFailure { try { @@ -145,4 +155,17 @@ public class ModuleUsers extends AbstractModule throw new ModuleFailure(t); } } + + public void recordLogin(EntityUsers aUser) throws ModuleExc, ModuleFailure { + try { + String sql = "update webdb_users set lastlogin=now() where id = " + aUser.getId(); + + storage.executeUpdate(sql); + } + catch (Throwable t) { +// no propagation of this error for now, to allow mir to still function +// with older db schemas +// throw new ModuleFailure(t); + } + } } \ No newline at end of file