Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Accounting and Billing Portal
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[abportal] View of /src/main/java/eu/smartlm/abs/portal/security/login/dao/HibernateUserDao.java
[abportal] / src / main / java / eu / smartlm / abs / portal / security / login / dao / HibernateUserDao.java Repository:
ViewVC logotype

View of /src/main/java/eu/smartlm/abs/portal/security/login/dao/HibernateUserDao.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (download) (annotate)
Wed Jul 28 10:05:51 2010 UTC (13 years, 9 months ago) by dgarcia
File size: 3281 byte(s)
First code commit
package eu.smartlm.abs.portal.security.login.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import eu.smartlm.abs.portal.security.login.model.User;

/**
 * Hibernate access to the User database implementation from the rest of the project
 * @author David García Pérez - CESGA
 **/
@Repository("userDao")
//@Service(value="myUserDao")
public class HibernateUserDao implements UserDao {
	@Autowired
    private SessionFactory sessionFactory;
	
	public HibernateUserDao() {}

	public void setSessionFaction(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	/**
	 * Gives back a list with all the users stored in teh database
         * @return a list of all users
         */
	@SuppressWarnings("unchecked")
    public List<User> getUsers() {
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		List <User> users = session.createQuery("from User as user").list();
		session.getTransaction().commit();
		session.close();
		return users;
	}
        
	/**
	 * Adds an user to the database
	 * @param user to be added
	 */
	public int addUser(final User user) {
		try {
			Session session = sessionFactory.openSession();
			Transaction transaction = session.beginTransaction();
			session.save(user);
			transaction.commit();
			session.close();
			return UserDao.USER_ADDED;
		} catch(ConstraintViolationException e) {
			return UserDao.ALREADY_USED_USERNAME;
		}
	}

	/**
	 * Removes an specific user from the database
	 * @param username of the user to be removed
	 */
    public void removeUser(String username) {
		User user = getUser(username);
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		session.delete(user);
		session.getTransaction().commit();
		session.close();
	}

	/**
	 * Edits the information of an user stored in the database
	 * @param user with the same id but with the updated information
	 */
    public void editUser(User user) {
		User userInDatabase = getUser(user.getUsername());
		userInDatabase.setPassword(user.getPassword());
		userInDatabase.setAccountingUsername(user.getAccountingUsername());
		userInDatabase.setAccountingGroup(user.getAccountingGroup());
		userInDatabase.setSeeAccountingGroupData(user.isSeeAccountingGroupData());
		userInDatabase.setSeeAll(user.isSeeAll());
		
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		session.update(userInDatabase);
		session.getTransaction().commit();
		session.close();
	}
        
	/**
	 * Retrieves an user form the database by username field
	 * @param username of the user to be retrieved
	 * @return the User or <code>null</code> if the users does not exists in the database
	 */
	public User getUser(String username) {
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		String hql = "from User as user where user.username='" + username + "'";
		User user = (User) session.createQuery(hql).uniqueResult();
		session.getTransaction().commit();
		session.close();
		return user;
	}
}

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge