Subversion Repositories bacoAlunos

Rev

Rev 338 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
113 fvelez 1
package pt.estgp.estgweb.services.profile;
2
 
3
import pt.utl.ist.berserk.logic.serviceManager.IService;
4
import pt.estgp.estgweb.domain.views.UserView;
5
import pt.estgp.estgweb.domain.UserSession;
6
import pt.estgp.estgweb.domain.User;
141 fvelez 7
import pt.estgp.estgweb.domain.UserImpl;
168 fvelez 8
import pt.estgp.estgweb.domain.DomainObjectFactory;
113 fvelez 9
import pt.estgp.estgweb.domain.dao.DaoFactory;
168 fvelez 10
import pt.estgp.estgweb.services.expceptions.ServiceException;
338 jmachado 11
import pt.estgp.estgweb.services.expceptions.FieldException;
12
import pt.estgp.estgweb.services.expceptions.AlreadyExistsException;
113 fvelez 13
import org.apache.log4j.Logger;
14
 
168 fvelez 15
public class EditUserService implements IService
16
{
113 fvelez 17
 
215 jmachado 18
    private CurriculumService curriculumService = new CurriculumService();
113 fvelez 19
    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(EditUserService.class);
20
 
215 jmachado 21
    public UserView run(UserView userView, 1.5.0/docs/api/java/lang/String.html">String userToCreate, UserSession userSession) throws ServiceException
113 fvelez 22
    {
338 jmachado 23
//        if (userView.getUsername() == null || user.getPassword() == null || user.getUsername().length() < 4 || user.getPassword().length() < 4)
24
//            throw new FieldException("bad.fields");
25
 
26
 
27
        User u = DaoFactory.getUserDaoImpl().loadByUsername(userView.getUsername());
28
        if (u != null && u.getId() != userView.getId())
29
        {
30
            throw new AlreadyExistsException(AlreadyExistsException.ALREADY_EXISTS_USERNAME);
31
        }
32
        u = DaoFactory.getUserDaoImpl().loadByUsername(userView.getEmail());
33
        if (u != null && u.getId() != userView.getId())
34
        {
35
            throw new AlreadyExistsException(AlreadyExistsException.ALREADY_EXISTS_EMAIL);
36
        }
37
 
132 fvelez 38
        User user;
168 fvelez 39
        if (userView.getId() > 0)
40
            user = DaoFactory.getUserDaoImpl().get(userView.getSerializable());
41
        else
42
        {
43
            try
44
            {
45
                user = (User) 1.5.0/docs/api/java/lang/Class.html">Class.forName(userToCreate).newInstance();
46
            }
47
            catch (1.5.0/docs/api/java/lang/InstantiationException.html">InstantiationException e)
48
            {
49
                logger.fatal(e,e);
50
                throw new ServiceException(e.toString(),e);
51
            }
52
            catch (1.5.0/docs/api/java/lang/IllegalAccessException.html">IllegalAccessException e)
53
            {
54
                logger.fatal(e,e);
55
                throw new ServiceException(e.toString(),e);
56
            }
57
            catch (1.5.0/docs/api/java/lang/ClassNotFoundException.html">ClassNotFoundException e)
58
            {
59
                logger.fatal(e,e);
60
                throw new ServiceException(e.toString(),e);
61
            }
62
            DaoFactory.getUserDaoImpl().save(user);
63
        }
132 fvelez 64
 
65
        logger.info("Editing user:" + userView.getId());
66
 
214 jmachado 67
        if (userSession.getUser() != null && userSession.getUser().isSuperuserOrAdmin())
132 fvelez 68
        {
69
            userView.persistViewInObjectAdmin(user);
70
            logger.info("User Edited by:" + userSession.getUser().getName());
71
        }
72
        else
73
        {
74
            userView.persistViewInObjectUser(user);
168 fvelez 75
            logger.info("User Edited by:" + userSession.getUser().getName());
132 fvelez 76
        }
215 jmachado 77
        return curriculumService.loadUserViewWithRecords(user.getId(),userSession);
113 fvelez 78
    }
79
}