package org.openslx.imagemaster.db; import org.apache.log4j.Logger; import org.openslx.imagemaster.session.Authenticator; import org.openslx.imagemaster.session.User; public class DbUser extends User { private static Logger log = Logger.getLogger( Authenticator.class ); public DbUser(String username, String password, String organization, String firstName, String lastName, String eMail, String satelliteAddress) { super(username, password, organization, firstName, lastName, eMail, satelliteAddress); } /** * Query database for user with given login * * @param login * (user@organization) * @return instance of DbUser for matching entry from DB, or null if not * found */ public static DbUser forLogin(final String login) { final String[] parts = login.split("@"); if (parts.length != 2) return null; return MySQL .findUniqueOrNull( DbUser.class, "SELECT user.username, user.password, user.organization, user.firstname, user.lastname, user.email, satellite.address FROM user" + " LEFT JOIN satellite USING (organization)" + " WHERE user.username = ? AND user.organization = ? LIMIT 1", parts[0], parts[1]); } public static boolean insertOrUpdate(User user) { log.debug("Inserted user '" + user.username + "' into db."); MySQL.update("INSERT INTO user (username, password, organization, firstname, lastname, email) VALUES (?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE password=VALUES(password), organization=VALUES(organization), firstname=VALUES(firstname), lastname=VALUES(lastname), email=VALUES(email)", user.username, user.password, user.organization, user.firstName, user.lastName, user.eMail); return false; } }