summaryrefslogblamecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db/DbUser.java
blob: 9370f402fd5b9a96dabd91d419ce22a3ed7073fb (plain) (tree)
1
2
3
4
5
6

                                   

                                                     

                                            







                                                                                   



                                                   




                                                                                
           


                                                           
                                    













                                                                                                                                                                                                                                                                                                           


         
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;
	}

}