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