Rev 215 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.services.profile;
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.views.UserView;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.expceptions.FieldException;
import pt.estgp.estgweb.services.expceptions.AlreadyExistsException;
import org.apache.log4j.Logger;
public class EditUserService
implements IService
{
private CurriculumService curriculumService =
new CurriculumService
();
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);
public UserView run
(UserView userView,
1.5.0/docs/api/java/lang/String.html">String userToCreate, UserSession userSession
) throws ServiceException
{
// if (userView.getUsername() == null || user.getPassword() == null || user.getUsername().length() < 4 || user.getPassword().length() < 4)
// throw new FieldException("bad.fields");
User u = DaoFactory.
getUserDaoImpl().
loadByUsername(userView.
getUsername());
if (u
!=
null && u.
getId() != userView.
getId())
{
throw new AlreadyExistsException
(AlreadyExistsException.
ALREADY_EXISTS_USERNAME);
}
u = DaoFactory.
getUserDaoImpl().
loadByUsername(userView.
getEmail());
if (u
!=
null && u.
getId() != userView.
getId())
{
throw new AlreadyExistsException
(AlreadyExistsException.
ALREADY_EXISTS_EMAIL);
}
User user
;
if (userView.
getId() > 0
)
user = DaoFactory.
getUserDaoImpl().
get(userView.
getSerializable());
else
{
try
{
user =
(User
) 1.5.0/docs/api/java/lang/Class.html">Class.
forName(userToCreate
).
newInstance();
}
catch (1.5.0/docs/api/java/lang/InstantiationException.html">InstantiationException e
)
{
logger.
fatal(e,e
);
throw new ServiceException
(e.
toString(),e
);
}
catch (1.5.0/docs/api/java/lang/IllegalAccessException.html">IllegalAccessException e
)
{
logger.
fatal(e,e
);
throw new ServiceException
(e.
toString(),e
);
}
catch (1.5.0/docs/api/java/lang/ClassNotFoundException.html">ClassNotFoundException e
)
{
logger.
fatal(e,e
);
throw new ServiceException
(e.
toString(),e
);
}
DaoFactory.
getUserDaoImpl().
save(user
);
}
logger.
info("Editing user:" + userView.
getId());
if (userSession.
getUser() !=
null && userSession.
getUser().
isSuperuserOrAdmin())
{
userView.
persistViewInObjectAdmin(user
);
logger.
info("User Edited by:" + userSession.
getUser().
getName());
}
else
{
userView.
persistViewInObjectUser(user
);
logger.
info("User Edited by:" + userSession.
getUser().
getName());
}
return curriculumService.
loadUserViewWithRecords(user.
getId(),userSession
);
}
}