package de.tud.kom.socom.web.server.database.login;
import java.sql.ResultSet;
import java.sql.SQLException;
import de.tud.kom.socom.web.client.sharedmodels.LoginResult;
import de.tud.kom.socom.web.server.database.HSQLAccess;
import de.tud.kom.socom.web.server.util.Logger;
import de.tud.kom.socom.web.server.util.LoggerFactory;
public class HSQLLoginDatabaseAccess implements LoginDatabaseAccess{
private static LoginDatabaseAccess instance = new HSQLLoginDatabaseAccess();
private Logger logger = LoggerFactory.getLogger();
private static HSQLAccess db;
private HSQLLoginDatabaseAccess() {
db = HSQLAccess.getInstance();
}
public static LoginDatabaseAccess getInstance() {
return instance;
}
@Override
public LoginResult validateLogin(String username, String hashpassword) {
String query = "SELECT uid, name, isadmin, deleted FROM users WHERE name = '" + username + "' AND password = '"+ hashpassword + "';";
return getLoginResult(query);
}
@Override
public LoginResult validateLogin(long uid, String hashpassword) {
String query = "SELECT uid, name, isadmin, deleted FROM users WHERE uid = '" + uid + "' AND password = '"+ hashpassword + "';";
return getLoginResult(query);
}
private LoginResult getLoginResult(String query) {
try {
ResultSet rs = db.execQueryWithResult(query);
if(rs.next())
return new LoginResult(true, rs.getBoolean("isadmin"), rs.getString("name"), rs.getLong("uid"), rs.getInt("deleted"));
else return new LoginResult(false);
} catch (SQLException e) {
logger.Error(e);
return new LoginResult(false);
}
}
}