Subversion Repositories bacoAlunos

Rev

Rev 1306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.users;

import jomm.utils.BytesUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.AlreadyExistsException;
import pt.estgp.estgweb.services.expceptions.FieldException;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.common.CommonServicesManager;
import pt.utl.ist.berserk.logic.serviceManager.IService;

import java.util.Date;

/*
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

/**
 * @author Jorge Machado
 *         <p/>
 *         <p/>
 *         Created at 17/Out/2003 , 23:45:24
 */

public class CreateUserService implements IService
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(CreateUserService.class);

    public void run(User user, UserSession userSession) throws ServiceException
    {
        if (user.getUsername() == null || user.getPassword() == null || user.getUsername().length() < 4 || user.getPassword().length() < 4)
            throw new FieldException("bad.fields");

        User u = DaoFactory.getUserDaoImpl().loadByUsername(user.getUsername());
        if (u != null)
        {
            throw new AlreadyExistsException(AlreadyExistsException.ALREADY_EXISTS_USERNAME);
        }
        u = DaoFactory.getUserDaoImpl().loadByUsername(user.getEmail());
        if (u != null)
        {
            throw new AlreadyExistsException(AlreadyExistsException.ALREADY_EXISTS_EMAIL);
        }
        user.setSaveDate(new 5+0%2Fdocs%2Fapi+Date">Date());
        DaoFactory.getUserDaoImpl().save(user);

        //Advising CommonsServicesManager before change password
        CommonServicesManager.getInstance().adviseNew(user);
        if(!Globals.USE_LDAP || userSession.getUser().isSuperuserOrAdmin())
        {
            user.setPassword(BytesUtils.getMD5(user.getPassword()));
        }
        if (userSession.getUser() == null)
            logger.info("Anonimous - Creating user:" + user.getId() + " " + user.getName());
        else
            logger.info(userSession.getUser().getName() + " - Creating user:" + user.getUsername() + " " + user.getName());
    }
}