Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 162 → Rev 163

/impl/src/java/pt/estgp/estgweb/PopTeste.java
File deleted
/impl/src/java/pt/estgp/estgweb/Globals.java
1,6 → 1,8
package pt.estgp.estgweb;
 
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.User;
 
import java.util.List;
import java.math.BigDecimal;
38,8 → 40,14
 
public static final String STUDENT_ROLE = ConfigProperties.getProperty("user.student");
public static final String TEACHER_ROLE = ConfigProperties.getProperty("user.teacher");
 
/*SIGES WEB SERVICES*/
public static final BigDecimal SIGES_INSTITUTION_CODE = new BigDecimal(ConfigProperties.getIntProperty("siges.institution.code"));
public static final String SIGES_WEBSERVICE_WSDL = ConfigProperties.getProperty("ws.siges.wsdl");
public static final String SIGES_WEBSERVICE_TARGET_NAMESPACE = ConfigProperties.getProperty("ws.siges.target.namespace");
 
 
 
public static final long URL_STAT_CHART_EXPIRE_INTERVAL = ConfigProperties.getIntProperty("url.stat.image.expire.interval.time.minutes");
public static final String URL_STAT_CHART_TMP_DIR = ConfigProperties.getProperty("url.stat.tmp.dir");
public static final int URL_STAT_CACHE_SIZE = ConfigProperties.getIntProperty("url.stat.click.cache.size");
59,5 → 67,10
public static final boolean POP_CONTAINER_USAGE = ConfigProperties.getBooleanProperty("pop.container.use");
public static final int POP_FRAGMENT_TEXT_SIZE = ConfigProperties.getIntProperty("pop.fragment.text.size");
public static final int POP_REFRESH_TIMEOUT_MILISECONDS = ConfigProperties.getIntProperty("pop.refresh.timeout.minutes") * 1000 * 60;
public static final boolean POP_USE_DEFAULT_SERVER = ConfigProperties.getBooleanProperty("pop.use.default.server");
public static final boolean POP_USE_USERNAME_AND_PASSWORD_FIRST_AUTH = ConfigProperties.getBooleanProperty("pop.use.username.and.password.first.authentication");
 
 
public static final int REMINDER_TEXT_SUMMARY_SIZE = ConfigProperties.getIntProperty("reminders.text.summary.size");
 
}
/impl/src/java/pt/estgp/estgweb/services/users/CreateUserService.java
8,6 → 8,7
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;
21,10 → 22,9
*/
/**
* @author Jorge Machado
*
*
* Created at 17/Out/2003 , 23:45:24
*
* <p/>
* <p/>
* Created at 17/Out/2003 , 23:45:24
*/
public class CreateUserService implements IService
{
32,23 → 32,27
 
public void run(User user, UserSession userSession) throws ServiceException
{
if(user.getUsername() == null || user.getPassword() == null || user.getUsername().length() < 4 || user.getPassword().length() < 4)
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)
if (u != null)
{
throw new AlreadyExistsException(AlreadyExistsException.ALREADY_EXISTS_USERNAME);
}
u = DaoFactory.getUserDaoImpl().loadByUsername(user.getEmail());
if(u != null)
if (u != null)
{
throw new AlreadyExistsException(AlreadyExistsException.ALREADY_EXISTS_EMAIL);
}
user.setSaveDate(new Date());
DaoFactory.getUserDaoImpl().save(user);
 
//Advising CommonsServicesManager before change password
CommonServicesManager.getInstance().adviseNew(user);
 
user.setPassword(BytesUtils.getMD5(user.getPassword()));
DaoFactory.getUserDaoImpl().save(user);
if(userSession.getUser() == null)
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());
/impl/src/java/pt/estgp/estgweb/services/blogs/BlogsCommonServices.java
4,6 → 4,7
import pt.estgp.estgweb.services.common.*;
import pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.DomainObject;
import org.apache.log4j.Logger;
 
import java.util.List;
46,5 → 47,14
public List<IToDo> getAllToDos(UserSession userSession)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}/*This method is invoked from object creation*/
public void adviseNew(DomainObject object)
{
//To change body of implemented methods use File | Settings | File Templates.
}
 
public void adviseUpdate(DomainObject object)
{
//To change body of implemented methods use File | Settings | File Templates.
}
}
/impl/src/java/pt/estgp/estgweb/services/email/EmailCommonServices.java
New file
0,0 → 1,71
package pt.estgp.estgweb.services.email;
 
import pt.estgp.estgweb.services.common.*;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.DomainObject;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.Globals;
 
import java.util.List;
 
import jomm.utils.DesUtils;
 
/**
* @author Jorge Machado
* @date 22/Mai/2008
* @see pt.estgp.estgweb.services.email
*/
public class EmailCommonServices implements IModuleCommonServices
{
 
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession)
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
 
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public int countToDo(UserSession userSession)
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
 
public IToDoCat getToDo(UserSession userSession)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public List<IToDo> getAllToDos(UserSession userSession)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}/*This method is invoked from object creation*/
 
public void adviseNew(DomainObject object)
{
adviseUpdate(object);
}
 
public void adviseUpdate(DomainObject object)
{
if (object instanceof User)
{
User user = (User) object;
if (Globals.POP_USE_DEFAULT_SERVER)
{
if (user.getPop3server() == null || user.getPop3server().length() == 0)
user.setPop3server(Globals.POP_SERVER);
}
if (Globals.POP_USE_USERNAME_AND_PASSWORD_FIRST_AUTH)
{
if (user.getUsername() == null || user.getUsername().length() == 0)
user.setPop3username(user.getUsername());
if (user.getPassword() == null || user.getPassword().length() == 0)
user.setPop3password(DesUtils.getInstance().encrypt(user.getPassword()));
}
}
}
}
/impl/src/java/pt/estgp/estgweb/services/email/ReadEmailService.java
3,6 → 3,7
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.services.email.impl.DefaultPopEmail;
38,8 → 39,10
 
public List<IPopEmail> run(UserSession userSession)
{
if(!((UserImpl)userSession.getUser()).hasPopConfigured())
return null;
 
Properties props = new Properties();
 
Date d = (Date) ((UserSessionImpl)userSession).get(POP_MAIL_DATE_KEY);
ArrayList<IPopEmail> oldMessages = (ArrayList<IPopEmail>) ((UserSessionImpl)userSession).get(POP_MAIL_MESSAGES_KEY);
if(d != null && oldMessages != null)
/impl/src/java/pt/estgp/estgweb/services/common/impl/CommonSearchResults.java
2,6 → 2,7
 
import pt.estgp.estgweb.services.common.ICommonSearchResults;
import pt.estgp.estgweb.services.common.ISearchResults;
import pt.estgp.estgweb.domain.DomainObject;
 
import java.util.List;
 
/impl/src/java/pt/estgp/estgweb/services/common/CommonServicesManager.java
1,26 → 1,22
package pt.estgp.estgweb.services.common;
 
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
import jomm.ir.lucene.LuceneUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.DomainObject;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.services.common.impl.CommonSearchResults;
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults;
import pt.estgp.estgweb.services.common.impl.DefaultResult;
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults;
import pt.estgp.estgweb.services.common.impl.DefaultToDoCat;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
import pt.estgp.estgweb.web.utils.TestHttpServletRequest;
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterRetrieveException;
 
import java.util.List;
import java.util.ArrayList;
import java.util.List;
 
import org.apache.log4j.Logger;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import jomm.ir.lucene.LuceneUtils;
 
/**
* @author Jorge Machado
* @date 24/Abr/2008
47,26 → 43,15
{
}
 
/**
* @param request asking
* @param query to execute
* @param searchType see SearchTypeEnum
* @return Cluster of Results for each Module with total module results, only return modules with results
* @throws Throwable on notAuthorized or internal error
*/
public ICommonSearchResults search(HttpServletRequest request, HttpServletResponse response, String query, SearchTypeEnum searchType) throws Throwable
{
return search(RequestUtils.getRequester(request, response), query, searchType);
}
 
/**
* @param requester asking
* @param userSession asking
* @param query to execute
* @param searchType see SearchTypeEnum
* @return Cluster of Results for each Module with total module results, only return modules with results
* @throws Throwable on notAuthorized or internal error
*/
public ICommonSearchResults search(String requester, String query, SearchTypeEnum searchType) throws Throwable
public ICommonSearchResults search(UserSession userSession, String query, SearchTypeEnum searchType) throws Throwable
{
 
if (searchType == null)
76,9 → 61,9
 
for (ModuleEnum module : ModuleEnum.values())
{
if (module.getServiceName() != null)
if (module.getModuleCommonServices() != null)
{
ISearchResults iSearchResults = search(requester, query, searchType, module, 0);
ISearchResults iSearchResults = search(userSession, query, searchType, module, 0);
if (iSearchResults.getTotalResults() > 0)
{
results.add(iSearchResults);
92,31 → 77,13
return commonSearchResults;
}
 
/**
* The service called inside implements method
* <p/>
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession);
*
* @param request asking
* @param query to execute
* @param searchType see SearchTypeEnum
* @param moduleKey to search in
* @param page of start result
* @return searchResults
* @throws Throwable on not authorized and internal error
*/
 
public ISearchResults search(HttpServletRequest request, HttpServletResponse response, String query, SearchTypeEnum searchType, String moduleKey, int page) throws Throwable
{
return search(RequestUtils.getRequester(request, response), query, searchType, ModuleEnum.parse(moduleKey), page);
}
 
/**
* The service called inside implements method
* <p/>
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession);
*
* @param requester asking
* @param userSession asking
* @param query to execute
* @param searchType see SearchTypeEnum
* @param moduleKey to search in
124,35 → 91,15
* @return searchResults
* @throws Throwable on not authorized and internal error
*/
 
public ISearchResults search(String requester, String query, SearchTypeEnum searchType, String moduleKey, int page) throws Throwable
public ISearchResults search(UserSession userSession, String query, SearchTypeEnum searchType, ModuleEnum moduleKey, int page) throws Throwable
{
return search(requester, query, searchType, ModuleEnum.parse(moduleKey), page);
}
 
/**
* The service called inside implements method
* <p/>
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession);
*
* @param requester asking
* @param query to execute
* @param searchType see SearchTypeEnum
* @param moduleKey to search in
* @param page of start result
* @return searchResults
* @throws Throwable on not authorized and internal error
*/
public ISearchResults search(String requester, String query, SearchTypeEnum searchType, ModuleEnum moduleKey, int page) throws Throwable
{
IServiceManager sm;
try
{
sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{query, searchType, page, SEARCH_MAX_RESULTS};
// sm = ServiceManager.getInstance();
// String[] names = new String[]{};
// Object[] args = new Object[]{query, searchType, page, SEARCH_MAX_RESULTS};
 
DefaultSearchResults searchResults = (DefaultSearchResults) sm.execute(requester, moduleKey.getSearchService(), "search", args, names);
DefaultSearchResults searchResults = (DefaultSearchResults) moduleKey.getModuleCommonServices().search(query, searchType, page, SEARCH_MAX_RESULTS, userSession); //(DefaultSearchResults) sm.execute(requester, moduleKey.getSearchService(), "search", args, names);
searchResults.setPage(page);
searchResults.setMaxResultsPage(SEARCH_MAX_RESULTS);
searchResults.setQuery(query.replace("'", " "));
197,33 → 144,32
}
}
 
public List<IToDoCat> getToDoCats(String requester) throws Throwable
public List<IToDoCat> getToDosCats(UserSession userSession) throws Throwable
{
List<IToDoCat> toDoCats = new ArrayList<IToDoCat>();
 
for (ModuleEnum module : ModuleEnum.values())
{
if (module.getServiceName() != null)
if (module.getModuleCommonServices() != null)
{
IToDoCat toDoCat = getToDoCats(requester, module);
IToDoCat toDoCat = getToDoCats(userSession, module);
if (toDoCat != null)
{
toDoCats.add(toDoCat);
 
}
}
}
return toDoCats;
}
 
public List<IToDoCat> getAllToDosCats(String requester) throws Throwable
public List<IToDoCat> getAllToDosCats(UserSession userSession) throws Throwable
{
List<IToDoCat> toDoCats = new ArrayList<IToDoCat>();
for (ModuleEnum module : ModuleEnum.values())
{
if (module.getServiceName() != null)
if (module.getModuleCommonServices() != null)
{
IToDoCat toDoCat = getAllToDoCats(requester, module);
IToDoCat toDoCat = getAllToDoCats(userSession, module);
if (toDoCat != null && toDoCat.getTotalToDo() > 0)
{
toDoCats.add(toDoCat);
233,37 → 179,29
return toDoCats;
}
 
public IToDoCat getToDoCats(HttpServletRequest request, HttpServletResponse response, String moduleKey) throws Throwable
public IToDoCat getToDoCats(UserSession userSession, String moduleKey) throws Throwable
{
return getToDoCats(RequestUtils.getRequester(request, response), ModuleEnum.parse(moduleKey));
return getToDoCats(userSession, ModuleEnum.parse(moduleKey));
}
 
public IToDoCat getToDoCats(HttpServletRequest request, HttpServletResponse response, ModuleEnum module) throws Throwable
{
return getToDoCats(RequestUtils.getRequester(request, response), module);
}
 
/**
* @param requester asking
* @param module to search
* @param userSession asking
* @param module to search
* @return Number of ToDos in given module
* @throws Throwable on Error or NotAuthorized Exception
*/
public IToDoCat getToDoCats(String requester, ModuleEnum module) throws Throwable
public IToDoCat getToDoCats(UserSession userSession, ModuleEnum module) throws Throwable
{
IServiceManager sm;
// IServiceManager sm;
try
{
sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{};
return (IToDoCat) sm.execute(requester, module.getGetToDoService(), "getToDo", args, names);
return module.getModuleCommonServices().getToDo(userSession);
// sm = ServiceManager.getInstance();
// String[] names = new String[]{};
// Object[] args = new Object[]{};
// return (IToDoCat) sm.execute(requester, module.getGetToDoService(), "getToDo", args, names);
}
catch (FilterRetrieveException e)
{
logger.error(e, e);
throw new NotAuthorizedException(e.toString());
}
catch (Throwable e)
{
logger.error(e, e);
272,30 → 210,26
}
 
/**
* @param requester asking
* @param userSession asking
* @param module to search
* @return Number of ToDos in given module
* @throws Throwable on Error or NotAuthorized Exception
*/
public IToDoCat getAllToDoCats(String requester, ModuleEnum module) throws Throwable
public IToDoCat getAllToDoCats(UserSession userSession, ModuleEnum module) throws Throwable
{
IServiceManager sm;
// IServiceManager sm;
try
{
sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{};
List<IToDo> todos = (List<IToDo>) sm.execute(requester, module.getAllToDosService(), "getAllToDos", args, names);
// sm = ServiceManager.getInstance();
// String[] names = new String[]{};
// Object[] args = new Object[]{};
// List<IToDo> todos = (List<IToDo>) sm.execute(requester, module.getAllToDosService(), "getAllToDos", args, names);
List<IToDo> todos = module.getModuleCommonServices().getAllToDos(userSession);
DefaultToDoCat toDoCat = new DefaultToDoCat();
toDoCat.setAllToDos(todos);
toDoCat.setDescription(module.getMessageKey());
return toDoCat;
}
catch (FilterRetrieveException e)
{
logger.error(e, e);
throw new NotAuthorizedException(e.toString());
}
catch (Throwable e)
{
logger.error(e, e);
303,10 → 237,35
}
}
 
/**
* Advise modules for new object creation
* @param domainObject created
*/
public void adviseNew(DomainObject domainObject)
{
for (ModuleEnum module : ModuleEnum.values())
{
module.getModuleCommonServices().adviseNew(domainObject);
}
}
 
/**
* Advise modules for new object creation
* @param domainObject created
*/
public void adviseUpdate(DomainObject domainObject)
{
for (ModuleEnum module : ModuleEnum.values())
{
module.getModuleCommonServices().adviseUpdate(domainObject);
}
}
 
 
 
public static void main(String[] args) throws Throwable
{
ICommonSearchResults commonSearchResults = new CommonServicesManager().search("2093FFF41F61E375D2CB4CBEDE4400E9", "teste", SearchTypeEnum.AllWords);
ICommonSearchResults commonSearchResults = new CommonServicesManager().search(UserSessionProxy.loadUserSession(new TestHttpServletRequest("2093FFF41F61E375D2CB4CBEDE4400E9"),null), "teste", SearchTypeEnum.AllWords);
for (ISearchResults searchResults : commonSearchResults.getSearchResults())
{
System.out.println("-----------------------------------------------------");
334,8 → 293,8
// }
 
}
List<IToDoCat> l = CommonServicesManager.getInstance().getAllToDosCats("2093FFF41F61E375D2CB4CBEDE4400E9");
System.out.println(CommonServicesManager.getInstance().getAllToDosCats("2093FFF41F61E375D2CB4CBEDE4400E9"));
CommonServicesManager.getInstance().getAllToDosCats(UserSessionProxy.loadUserSession(new TestHttpServletRequest("2093FFF41F61E375D2CB4CBEDE4400E9"),null));
System.out.println(CommonServicesManager.getInstance().getAllToDosCats(UserSessionProxy.loadUserSession(new TestHttpServletRequest("2093FFF41F61E375D2CB4CBEDE4400E9"),null)));
}
 
}
/impl/src/java/pt/estgp/estgweb/services/common/ICommonSearchResults.java
1,5 → 1,7
package pt.estgp.estgweb.services.common;
 
import pt.estgp.estgweb.domain.DomainObject;
 
import java.util.List;
 
/**
14,4 → 16,5
public int getTotalResults();
public String getQuery();
public String getSearchType();
/*This method is to be called in new Object creation*/
}
/impl/src/java/pt/estgp/estgweb/services/common/ModuleEnum.java
1,5 → 1,8
package pt.estgp.estgweb.services.common;
 
import pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices;
import pt.estgp.estgweb.services.email.EmailCommonServices;
 
/**
* @author Jorge Machado
* @date 24/Abr/2008
10,45 → 13,28
{
 
 
Announcements("module.Announcements", new AnnouncementsCommonServices()),
Email("module.Email", new EmailCommonServices());
// Events("module.Events",null),
// Blogs("module.Blogs",null),
// Proxy("module.Proxy",null);
 
Announcements("module.Announcements","AnnouncementsCommonServices"),
Events("module.Events",null),
Blogs("module.Blogs",null),
Proxy("module.Proxy",null);
 
public static final String SEARCH_PREFIX = "Search";
public static final String COUNT_SEARCH_PREFIX = "CountSearch";
public static final String COUNT_TO_DO_PREFIX = "CountToDo";
public static final String GET_TO_DO_PREFIX = "GetToDo";
public static final String GET_ALL_TO_DOS_PREFIX = "GetAllToDos";
 
IModuleCommonServices moduleCommonServices;
String messageKey;
String serviceName;
 
String searchService;
String countSearchService;
String countToDoService;
String getToDoService;
String getAllToDosService;
 
 
 
private ModuleEnum(String messageKey, String serviceName)
private ModuleEnum(String messageKey, IModuleCommonServices moduleCommonServices)
{
this.messageKey = messageKey;
this.serviceName = serviceName;
searchService = serviceName + SEARCH_PREFIX;
countSearchService = serviceName + COUNT_SEARCH_PREFIX;
getToDoService = serviceName + GET_TO_DO_PREFIX;
countToDoService = serviceName + COUNT_TO_DO_PREFIX;
getAllToDosService = serviceName + GET_ALL_TO_DOS_PREFIX;
this.moduleCommonServices = moduleCommonServices;
}
 
public static ModuleEnum parse(String messageKey)
{
for(ModuleEnum module: values())
for (ModuleEnum module : values())
{
if(messageKey.equals(module.getMessageKey()))
if (messageKey.equals(module.getMessageKey()))
return module;
}
return null;
58,35 → 44,9
{
return messageKey;
}
 
public String getServiceName()
public IModuleCommonServices getModuleCommonServices()
{
return serviceName;
return moduleCommonServices;
}
 
 
public String getGetToDoService()
{
return getToDoService;
}
 
public String getCountToDoService()
{
return countToDoService;
}
 
public String getCountSearchService()
{
return countSearchService;
}
 
public String getSearchService()
{
return searchService;
}
 
public String getAllToDosService()
{
return getAllToDosService;
}
}
/impl/src/java/pt/estgp/estgweb/services/common/IModuleCommonServices.java
1,6 → 1,7
package pt.estgp.estgweb.services.common;
 
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.DomainObject;
 
import java.util.List;
 
20,4 → 21,8
public IToDoCat getToDo(UserSession userSession);
public List<IToDo> getAllToDos(UserSession userSession);
 
/*This method is invoked from object creation*/
public void adviseNew(DomainObject object);
public void adviseUpdate(DomainObject object);
 
}
/impl/src/java/pt/estgp/estgweb/services/common/CommonServicesService.java
New file
0,0 → 1,50
package pt.estgp.estgweb.services.common;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import org.apache.log4j.Logger;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 22/Mai/2008
* @see pt.estgp.estgweb.services.common
*/
public class CommonServicesService implements IService
{
private static final Logger logger = Logger.getLogger(CommonServicesService.class);
 
public ICommonSearchResults search(String query, SearchTypeEnum searchTypeEnum, UserSession userSession) throws ServiceException
{
try
{
return CommonServicesManager.getInstance().search(userSession, query, searchTypeEnum);
}
catch (Throwable throwable)
{
logger.error(throwable,throwable);
throw new ServiceException("", throwable);
}
}
 
public ISearchResults searchModule(String query, SearchTypeEnum searchType, ModuleEnum moduleKey, int page,UserSession userSession) throws Throwable
{
try
{
return CommonServicesManager.getInstance().search(userSession, query, searchType,moduleKey,page);
}
catch (Throwable throwable)
{
logger.error(throwable,throwable);
throw new ServiceException("", throwable);
}
}
 
public List<IToDoCat> getAllToDosCats(UserSession userSession) throws Throwable
{
return CommonServicesManager.getInstance().getAllToDosCats(userSession);
}
 
}
/impl/src/java/pt/estgp/estgweb/services/reminders/impl/DefaultOwnedReminders.java
New file
0,0 → 1,43
package pt.estgp.estgweb.services.reminders.impl;
 
import pt.estgp.estgweb.services.reminders.IOwnedReminders;
import pt.estgp.estgweb.domain.views.ReminderView;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 22/Mai/2008
* @see pt.estgp.estgweb.services.reminders.impl
*/
public class DefaultOwnedReminders implements IOwnedReminders
{
private List<ReminderView> activeReminders;
private List<ReminderView> expiredReminders;
 
public DefaultOwnedReminders(List<ReminderView> activeReminders, List<ReminderView> expiredReminders)
{
this.activeReminders = activeReminders;
this.expiredReminders = expiredReminders;
}
 
public List<ReminderView> getActiveReminders()
{
return activeReminders;
}
 
public void setActiveReminders(List<ReminderView> activeReminders)
{
this.activeReminders = activeReminders;
}
 
public List<ReminderView> getExpiredReminders()
{
return expiredReminders;
}
 
public void setExpiredReminders(List<ReminderView> expiredReminders)
{
this.expiredReminders = expiredReminders;
}
}
/impl/src/java/pt/estgp/estgweb/services/reminders/LoadOwnerRemindersService.java
New file
0,0 → 1,41
package pt.estgp.estgweb.services.reminders;
 
import pt.estgp.estgweb.domain.ReminderImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.ReminderView;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.reminders.impl.DefaultOwnedReminders;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.util.ArrayList;
import java.util.List;
 
/**
* @author Jorge Machado
* @date 19/Mai/2008
* @see pt.estgp.estgweb.services.blogs
*/
public class LoadOwnerRemindersService implements IService
{
 
public IOwnedReminders run(UserSession userSession) throws ServiceException
{
List<ReminderImpl> activeReminders = DaoFactory.getReminderDaoImpl().loadOwnedActiveReminders(userSession.getUser().getId());
List<ReminderImpl> expiredReminders = DaoFactory.getReminderDaoImpl().loadOwnedExpiredReminders(userSession.getUser().getId());
 
List<ReminderView> activeReminderViews = new ArrayList<ReminderView>();
for (ReminderImpl activeReminder : activeReminders)
{
activeReminderViews.add(new ReminderView(activeReminder));
}
 
List<ReminderView> expiredReminderViews = new ArrayList<ReminderView>();
for (ReminderImpl expiredReminder : expiredReminders)
{
expiredReminderViews.add(new ReminderView(expiredReminder));
}
 
return new DefaultOwnedReminders(activeReminderViews, expiredReminderViews);
}
}
/impl/src/java/pt/estgp/estgweb/services/reminders/DeleteReminderService.java
New file
0,0 → 1,35
package pt.estgp.estgweb.services.reminders;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.ReminderImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.ReminderView;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
/**
* @author Jorge Machado
* @date 19/Mai/2008
* @see pt.estgp.estgweb.services.blogs
*/
public class DeleteReminderService implements IService
{
private static final Logger logger = Logger.getLogger(DeleteReminderService.class);
 
/**
* Delete a reminder and return it
*
* @param userSession owner
* @param reminderId to delete
* @return deleted reminder
* @throws pt.estgp.estgweb.services.expceptions.ServiceException on error
*/
public ReminderView run(long reminderId, UserSession userSession) throws ServiceException
{
logger.info("deleting reminder:" + reminderId);
ReminderImpl r = (ReminderImpl) DaoFactory.getReminderDaoImpl().load(reminderId);
DaoFactory.getReminderDaoImpl().delete(r);
return new ReminderView(r);
}
}
/impl/src/java/pt/estgp/estgweb/services/reminders/CreateReminderService.java
New file
0,0 → 1,52
package pt.estgp.estgweb.services.reminders;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.Reminder;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.ReminderView;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.util.Date;
 
/**
* @author Jorge Machado
* @date 22/May/2008
* @time 12:51:32
* @see pt.estgp.estgweb
*/
public class CreateReminderService implements IService
{
 
private static final Logger logger = Logger.getLogger(CreateReminderService.class);
 
public ReminderView run(ReminderView reminderView, UserSession userSession)
{
Reminder r;
 
if(reminderView.getId() <= 0)
{
r = DomainObjectFactory.createReminderImpl();
r.setOwner(userSession.getUser());
r.setSaveDate(new Date());
}
else
{
r = DaoFactory.getReminderDaoImpl().get(reminderView.getSerializable());
}
reminderView.persistViewInObject(r);
 
if(reminderView.getId() <= 0)
{
DaoFactory.getReminderDaoImpl().save(r);
logger.info("Creating reminder:" + r.getId());
return new ReminderView(r);
}
else
{
logger.info("Updating reminder:" + r.getId());
return new ReminderView(r);
}
}
}
/impl/src/java/pt/estgp/estgweb/services/reminders/DeleteExpiredRemindersService.java
New file
0,0 → 1,39
package pt.estgp.estgweb.services.reminders;
 
import pt.estgp.estgweb.domain.ReminderImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.ReminderView;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.util.ArrayList;
import java.util.List;
 
/**
* @author Jorge Machado
* @date 19/Mai/2008
* @see pt.estgp.estgweb.services.blogs
*/
public class DeleteExpiredRemindersService implements IService
{
/**
* Delete all expired reminders and return them
*
* @param userSession owner
* @return all expired reminders and return them
* @throws ServiceException on error
*/
public List<ReminderView> run(UserSession userSession) throws ServiceException
{
List<ReminderImpl> deletedReminders = DaoFactory.getReminderDaoImpl().deleteOwnedExpiredReminders(userSession.getUser().getId());
 
List<ReminderView> expiredReminderViews = new ArrayList<ReminderView>();
for (ReminderImpl expiredReminder : deletedReminders)
{
expiredReminderViews.add(new ReminderView(expiredReminder));
}
 
return expiredReminderViews;
}
}
/impl/src/java/pt/estgp/estgweb/services/reminders/IOwnedReminders.java
New file
0,0 → 1,16
package pt.estgp.estgweb.services.reminders;
 
import pt.estgp.estgweb.domain.views.ReminderView;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 22/Mai/2008
* @see pt.estgp.estgweb.services.reminders
*/
public interface IOwnedReminders
{
public List<ReminderView> getActiveReminders();
public List<ReminderView> getExpiredReminders();
}
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentService.java
1,23 → 1,27
package pt.estgp.estgweb.services.sigesimports;
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.Student;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.common.CommonServicesManager;
import pt.ipportalegre.siges.web.services.Aluno;
import pt.ipportalegre.siges.web.services.ArrayOfDecimal;
import pt.ipportalegre.siges.web.services.SiGesWEB;
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.ipportalegre.siges.web.services.SiGesWEB;
import pt.ipportalegre.siges.web.services.ArrayOfDecimal;
import pt.ipportalegre.siges.web.services.Aluno;
 
import javax.xml.namespace.QName;
import java.math.BigDecimal;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
 
import jomm.dao.impl.AbstractDao;
 
/**
* @author Jorge Machado
31,21 → 35,41
private static final Logger logger = Logger.getLogger(ImportStudentService.class);
 
public void run() throws ServiceException {
//todo passar para um utilitario que cria automaticamente o ano lectivo
//todo passar para um utilitario que cria automaticamente o ano lectivo
String year = "200708";
SiGesWEB service = new SiGesWEB();
SiGesWEB service = null;
try
{
service = new SiGesWEB(new URL(Globals.SIGES_WEBSERVICE_WSDL),new QName(Globals.SIGES_WEBSERVICE_TARGET_NAMESPACE, "SiGesWEB"));
}
catch (MalformedURLException e)
{
logger.fatal(e,e);
}
 
ArrayOfDecimal codigosAlunos = service.getSiGesWEBSoap().getCodigosAlunosInscritosDaInstituicao(Globals.SIGES_INSTITUTION_CODE,year);
List<BigDecimal> codigos = codigosAlunos.getDecimal();
int i = 1;
for(BigDecimal c: codigos)
{
if(i++ == 20)
break;
Aluno d = service.getSiGesWEBSoap().getAlunoInscrito(c,Globals.SIGES_INSTITUTION_CODE,year);
Student t = DaoFactory.getStudentDaoImpl().loadBySigesCode(d.getCodigo().intValue());
boolean newUser = false;
if(t == null)
{
t = DomainObjectFactory.createStudentImpl();
DaoFactory.getStudentDaoImpl().save(t);
newUser = true;
}
persist(d,t);
//Advising CommonsServicesManager before change password
 
if(newUser)
CommonServicesManager.getInstance().adviseNew(t);
else
CommonServicesManager.getInstance().adviseUpdate(t);
}
}
 
53,27 → 77,29
* Nao esta testado
* jm
* @param d Aluno
* @param t Student
* @param student Student
*/
private void persist(Aluno d, Student t)
private void persist(Aluno d, Student student)
{
t.setName(d.getNome());
t.setEmail(d.getEmail());
t.setSigesCode(d.getCodigo().intValue());
t.setAddress(d.getMorada());
t.setZip(""+d.getCodigoPostal().intValue());
t.setBi(d.getNumeroBi());
t.setSex(d.getSexo());
t.setUserNameNetpa(d.getUsernameNetpa());
t.setBirthDate(d.getDataNascimento().toGregorianCalendar().getTime());
student.setName(d.getNome());
student.setEmail(d.getEmail());
student.setSigesCode(d.getCodigo().intValue());
student.setAddress(d.getMorada());
student.setZip(""+d.getCodigoPostal().intValue());
student.setBi(d.getNumeroBi());
student.setSex(d.getSexo());
student.setUserNameNetpa(d.getUsernameNetpa());
student.setBirthDate(d.getDataNascimento().toGregorianCalendar().getTime());
student.setUsername("a" + d.getCodigo().intValue());
 
/*Desta forma as relacoes antigas sao ignoradas cria-se uma lista nova e atribui-se ao Teacher, o Hibernate faz resto e apaga as chaves estrangeiras antigas
if(d.getDisciplinas() == null || d.getDisciplinas().getDecimal() == null || d.getDisciplinas().getDecimal().size() == 0)
logger.warn("ATENTION TEACHER WITH ZERO UNITS: codigoFuncionario " + d.getCodigoFuncionario());
 
/*Desta forma as relacoes antigas sao ignoradas cria-se uma lista nova e atribui-se ao Teacher, o Hibernate faz resto e apaga as chaves estrangeiras antigas */
if(d.getDisciplinasInscrito() == null || d.getDisciplinasInscrito().getDecimal() == null || d.getDisciplinasInscrito().getDecimal().size() == 0)
logger.warn("ATENTION STUDENT WITH ZERO UNITS: codigo " + d.getCodigo());
else
{
Set<CourseUnit> units = new HashSet<CourseUnit>();
for(BigDecimal unitCode: d.getDisciplinas().getDecimal())
for(BigDecimal unitCode: d.getDisciplinasInscrito().getDecimal())
{
List<CourseUnit> l = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + unitCode.intValue());
if(l != null)
81,14 → 107,14
else
logger.warn("ATENTION SIGES COURSE UNIT NOT FOUND IN BACO STORAGE: curseUnit " + unitCode.intValue());
}
t.setSubscribedUnits();Units(units);
student.setSubscribedUnits(units);
}
}
 
/**
* Testar por aqui poi requer Super Role e assim e' autmatico
* @param args of main
* @throws ServiceException on error
* @throws ServiceException on error */
 
public static void main(String[]args) throws ServiceException
{
96,11 → 122,8
new ImportStudentService().run();
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
*/
}
 
}
 
 
 
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
4,10 → 4,7
import pt.estgp.estgweb.services.blogs.CreateBlogService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.Blog;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.Globals;
import pt.ipportalegre.siges.web.services.*;
27,77 → 24,125
*/
/**
* @author Jorge Machado
*
*
* Created at 17/Out/2003 , 23:45:24
*
* <p/>
* <p/>
* Created at 17/Out/2003 , 23:45:24
*/
public class ImportCourseService implements IService {
public class ImportCourseService implements IService
{
private static final Logger logger = Logger.getLogger(ImportCourseService.class);
 
public void run() throws ServiceException
{
 
HashMap<Integer, Disciplina> disciplinasMap = new HashMap<Integer,Disciplina>();
HashMap<Integer, Disciplina> cursosMap = new HashMap<Integer,Disciplina>();
HashMap<String, Disciplina> disciplinasMap = new HashMap<String, Disciplina>();
 
HashMap<String, Disciplina> disciplinasMapS1 = new HashMap<String, Disciplina>();
HashMap<String, Disciplina> disciplinasMapS2 = new HashMap<String, Disciplina>();
 
HashMap<Integer, Disciplina> cursosMap = new HashMap<Integer, Disciplina>();
SiGesWEB service = new SiGesWEB();
ArrayOfDisciplina arrayOfDisciplina = service.getSiGesWEBSoap().getDisciplinasDaInstituicao(new BigDecimal(1),"200708");
ArrayOfDisciplina arrayOfDisciplina = service.getSiGesWEBSoap().getDisciplinasDaInstituicaoSemestre(new BigDecimal(1), "200708", "S1");
List<Disciplina> disciplinas = arrayOfDisciplina.getDisciplina();
for(Disciplina d: disciplinas)
for (Disciplina d : disciplinas)
{
disciplinasMap.put(d.getCodigo().intValue(),d);
cursosMap.put(d.getCodigoCurso().intValue(),d);
System.out.println(d.getNome() + " " + d.getNomeCurso());
CourseUnit c = DomainObjectFactory.createCourseUnitImpl();
c.setName(d.getNome());
c.setInstitutionCode(""+Globals.SIGES_INSTITUTION_CODE);
c.setCode("" + d.getCodigo().intValue());
c.setCourseCode(""+d.getCodigoCurso());
c.setCourseName("" + d.getNomeCurso());
if (disciplinasMap.get(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":S1") != null)
System.out.println(">>Repetida no 1º semestre:" + d.getCodigo().intValue());
 
DaoFactory.getCourseUnitDaoImpl().save(c);
disciplinasMap.put(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":S1", d);
disciplinasMapS1.put(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":S1", d);
cursosMap.put(d.getCodigoCurso().intValue(), d);
 
 
}
arrayOfDisciplina = service.getSiGesWEBSoap().getDisciplinasDaInstituicaoSemestre(new BigDecimal(1), "200708", "S2");
disciplinas = arrayOfDisciplina.getDisciplina();
for (Disciplina d : disciplinas)
{
if (disciplinasMap.get(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":S2") != null)
System.out.println(">>Repetida nos dois semestres:" + d.getCodigo().intValue());
 
Set<Map.Entry<Integer,Disciplina>> set = disciplinasMap.entrySet();
for(Map.Entry<Integer,Disciplina> entry : set)
{
Disciplina d = entry.getValue();
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique(d.getCodigo() + "",d.getCodigoCurso() + "","S2");
 
disciplinasMap.put(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":S2", d);
disciplinasMapS2.put(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":S2", d);
cursosMap.put(d.getCodigoCurso().intValue(), d);
}
 
 
System.out.println("\nCursos--------------------------------");
Set<Map.Entry<Integer,Disciplina>> set2 = cursosMap.entrySet();
for(Map.Entry<Integer,Disciplina> entry : set2)
Set<Map.Entry<Integer, Disciplina>> set2 = cursosMap.entrySet();
for (Map.Entry<Integer, Disciplina> entry : set2)
{
Disciplina d = entry.getValue();
d.getCodigoCurso();
d.getGrauCurso();
d.getNomeCurso();
Course c = DomainObjectFactory.createCourseImpl();
c.setName(d.getNomeCurso());
c.setDegree(d.getGrauCurso());
c.setCode("" + d.getCodigoCurso().intValue());
c.setInstitutionalCode("" + d.getCodigoInstituicao().intValue());
 
System.out.println(":" + d.getNomeCurso());
DaoFactory.getCourseDaoImpl().save(c);
}
 
Aluno a = service.getSiGesWEBSoap().getAlunoInscrito(new BigDecimal(947),new BigDecimal(1),"200708");
System.out.println(a.getCodigo());
System.out.println(a.getNome());
System.out.println(a.getNumeroBi());
System.out.println(a.getEmail());
System.out.println(a.getUsernameNetpa());
ArrayOfDecimal ad = a.getDisciplinasInscrito();
for(BigDecimal d :ad.getDecimal())
Set<Map.Entry<String, Disciplina>> set = disciplinasMapS1.entrySet();
for (Map.Entry<String, Disciplina> entry : set)
{
Disciplina dAux = disciplinasMap.get(d.intValue());
System.out.println(dAux.getNome() + " " + dAux.getNomeCurso());
Disciplina d = entry.getValue();
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(),"S1");
if (c == null)
c = DomainObjectFactory.createCourseUnitImpl();
 
c.setName(d.getNome());
c.setInstitutionCode("" + Globals.SIGES_INSTITUTION_CODE);
c.setCode("" + d.getCodigo().intValue());
c.setCourseCode("" + d.getCodigoCurso());
c.setCourseName("" + d.getNomeCurso());
c.setSemestre("S1");
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode());
c.setCourse(course);
DaoFactory.getCourseUnitDaoImpl().save(c);
}
 
set = disciplinasMapS2.entrySet();
for (Map.Entry<String, Disciplina> entry : set)
{
Disciplina d = entry.getValue();
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(),"S2");
if (c == null)
c = DomainObjectFactory.createCourseUnitImpl();
 
c.setName(d.getNome());
c.setInstitutionCode("" + Globals.SIGES_INSTITUTION_CODE);
c.setCode("" + d.getCodigo().intValue());
c.setCourseCode("" + d.getCodigoCurso());
c.setCourseName("" + d.getNomeCurso());
c.setSemestre("S2");
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode());
c.setCourse(course);
DaoFactory.getCourseUnitDaoImpl().save(c);
}
 
// Aluno a = service.getSiGesWEBSoap().getAlunoInscrito(new BigDecimal(947),new BigDecimal(1),"200708");
// System.out.println(a.getCodigo());
// System.out.println(a.getNome());
// System.out.println(a.getNumeroBi());
// System.out.println(a.getEmail());
// System.out.println(a.getUsernameNetpa());
// ArrayOfDecimal ad = a.getDisciplinasInscrito();
// for(BigDecimal d :ad.getDecimal())
// {
// Disciplina dAux = disciplinasMap.get(d.intValue());
// System.out.println(dAux.getNome() + " " + dAux.getNomeCurso());
// }
}
 
public static void main(String[]args) throws ServiceException {
public static void main(String[] args) throws ServiceException
{
AbstractDao.getCurrentSession().beginTransaction();
 
 
 
 
new ImportCourseService().run();
 
 
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java
15,19 → 15,11
 
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
*
*
* Created at 17/Out/2003 , 23:45:24
*
* @author Fabio Velez
* @date 2/Abril/2008
* @time 12:51:32
* @see pt.estgp.estgweb
*/
public class CreateAnnouncementService implements IService
{
138,7 → 130,7
//Percorre todos os validation targets
for(String userTargetRoles: userAutoValitationRoles)
{
//Se o target a quem se destina constar na lista dos validation targets então incrementa
//Se o target a quem se destina constar na lista dos validation targets ent�o incrementa
//o validTargetRoles
if(target.equals(userTargetRoles))
{
/impl/src/java/pt/estgp/estgweb/services/announcements/AnnouncementsCommonServices.java
1,10 → 1,7
package pt.estgp.estgweb.services.announcements;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.common.*;
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults;
100,6 → 97,17
return todos;
}
 
/*This method is invoked from object creation*/
public void adviseNew(DomainObject object)
{
//To change body of implemented methods use File | Settings | File Templates.
}
 
public void adviseUpdate(DomainObject object)
{
//To change body of implemented methods use File | Settings | File Templates.
}
 
public static void main(String[] args)
{
AbstractDao.getCurrentSession().beginTransaction();
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
4,6 → 4,7
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.common.CommonServicesManager;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.utl.ist.berserk.logic.serviceManager.IService;
import openldap.ILdapManager;
67,6 → 68,10
if(u == null)
{
u = getUserInfo(username);
u.setPassword(password);
//put password to be complete for advising
CommonServicesManager.getInstance().adviseNew(u);
u.setPassword(null);
}
logger.warn("user:" + username + " authenticated");
((UserSessionImpl)userSession).clearObjectsWithOpenTransaction();
86,6 → 91,7
u.setName(getName(map));
u.setRoles(getRoles(map));
u.setNewUser(true);
/*todo call commonServices Manager advise New put Password First*/
DaoFactory.getUserDaoImpl().save(u);
return u;
}
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java
46,5 → 46,12
}
return false;
}
 
 
public boolean hasPopConfigured()
{
return getPop3server() != null && getPop3username() != null && getPop3password() != null;
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java
1,4 → 1,7
package pt.estgp.estgweb.domain.dao.impl;
import static org.hibernate.criterion.Restrictions.*;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.CourseImpl;
 
/**
* @author Jorge Machado
15,4 → 18,9
return (CourseDaoImpl) myInstance;
}
 
public CourseImpl findCourseByCode(String code)
{
return (CourseImpl) createCriteria().add(eq("code",code)).uniqueResult();
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
30,5 → 30,21
{
return createCriteria().add(eq("code",sigesCode)).list();
}
public CourseUnit loadBySigesCodeUnique(String sigesCode)
{
return (CourseUnit) createCriteria().add(eq("code",sigesCode)).uniqueResult();
}
 
public CourseUnit loadBySigesCodeUnique(String sigesCode,String courseCode)
{
return (CourseUnit) createCriteria().add(eq("code",sigesCode)).add(eq("courseCode",courseCode)).uniqueResult();
}
 
public CourseUnit loadBySigesCodeUnique(String sigesCode,String courseCode,String semestre)
{
return (CourseUnit) createCriteria().add(eq("code",sigesCode)).add(eq("courseCode",courseCode)).add(eq("semestre",semestre)).uniqueResult();
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/ReminderDaoImpl.java
New file
0,0 → 1,67
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.ReminderImpl;
import pt.estgp.estgweb.domain.Reminder;
import pt.estgp.estgweb.domain.views.ReminderView;
 
import java.util.List;
import java.util.Date;
import java.util.ArrayList;
 
import static org.hibernate.criterion.Restrictions.*;
import org.hibernate.criterion.Order;
import org.apache.log4j.Logger;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class ReminderDaoImpl extends ReminderDao
{
private static final Logger logger = Logger.getLogger(ReminderDaoImpl.class);
 
public static ReminderDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new ReminderDaoImpl();
return (ReminderDaoImpl) myInstance;
}
 
public List<ReminderImpl> loadOwnedActiveReminders(long ownerId)
{
return createCriteria()
.add(eq("owner.id", ownerId))
.add(or(gt("expireDate", new Date()),isNull("expireDate")))
.addOrder(Order.asc("startDate"))
.list();
}
 
public List<ReminderImpl> loadOwnedExpiredReminders(long ownerId)
{
Date now = new Date();
return createCriteria()
.add(eq("owner.id", ownerId))
.add(or(lt("expireDate", now), eq("expireDate", now)))
.addOrder(Order.asc("startDate"))
.list();
}
 
public List<ReminderImpl> deleteOwnedExpiredReminders(long ownerId)
{
List<ReminderImpl> deleted = new ArrayList<ReminderImpl>();
List<ReminderImpl> toDelete =
createCriteria()
.add(eq("owner.id", ownerId))
.add(lt("expireDate", new Date()))
.list();
for(ReminderImpl r: toDelete)
{
logger.info("deleting reminder:" + r.getId());
deleted.add(r);
delete(r);
}
return deleted;
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
10,6 → 10,12
*/
public class DaoFactory
{
 
public static ReminderDaoImpl getReminderDaoImpl()
{
return ReminderDaoImpl.getInstance();
}
 
public static AnnouncementDaoImpl getAnnouncementDaoImpl()
{
return AnnouncementDaoImpl.getInstance();
/impl/src/java/pt/estgp/estgweb/domain/views/ReminderView.java
New file
0,0 → 1,197
package pt.estgp.estgweb.domain.views;
 
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.enums.AnnouncementStyleEnum;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
 
import java.util.List;
import java.util.Date;
import java.io.Serializable;
 
import jomm.utils.StringsUtils;
 
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 19:34:49
* @see pt.estgp.estgweb.domain.views
*/
public class ReminderView extends DomainObjectView implements IOwned, IContextTimerObject
{
 
private static Logger logger = Logger.getLogger(ReminderView.class);
 
public static final int TEXT_SUMMARY_SIZE = Globals.REMINDER_TEXT_SUMMARY_SIZE;
 
private Reminder reminder;
private long id;
private Date updateDate;
private Date saveDate;
private Date startDate;
private Date expireDate;
private String text;
private GenericUser owner;
 
public ReminderView()
{
}
 
public ReminderView(Reminder reminder)
{
super(reminder);
this.id = reminder.getId();
this.updateDate = reminder.getUpdateDate();
this.saveDate = reminder.getSaveDate();
this.startDate = reminder.getStartDate();
this.expireDate = reminder.getExpireDate();
this.text = reminder.getText();
this.owner = reminder.getOwner();
}
 
public void persistViewInObject(Reminder reminder)
{
reminder.setText(text);
reminder.setStartDate(startDate);
reminder.setExpireDate(expireDate);
}
 
public Date getUpdateDate()
{
return updateDate;
}
 
public String getFormatedSaveDate()
{
return DatesUtils.getStringFromDate(updateDate);
}
 
public String getFormatedUpdateDate()
{
return DatesUtils.getStringFromDate(updateDate);
}
 
public String getFormatedStartDate()
{
return DatesUtils.getStringFromDate(startDate);
}
 
public String getFormatedExpireDate()
{
return DatesUtils.getStringFromDate(expireDate);
}
 
public Date getExpireDate()
{
return expireDate;
}
 
public void setExpireDate(Date expireDate)
{
this.expireDate = expireDate;
}
 
public Date getStartDate()
{
return startDate;
}
 
public Date getSaveDate()
{
return saveDate;
}
 
public void setStartDate(Date startDate)
{
this.startDate = startDate;
}
 
public long getId()
{
return id;
}
 
public void setId(long id)
{
this.id = id;
}
 
public String getText()
{
return text;
}
 
public void setText(String text)
{
this.text = text;
}
 
public Class getReferenceClass()
{
return ReminderImpl.class;
}
 
public Serializable getSerializable()
{
return id;
}
 
public long getOwnerID()
{
return getOwner().getId();
}
 
private String summary = null;
 
public String getTextSummary()
{
if(summary == null)
summary = StringsUtils.getFragment(getText(), TEXT_SUMMARY_SIZE);
if(summary == null)
summary = "";
return summary;
}
 
public boolean getHasMoreThanSummary()
{
String summary = getTextSummary();
if(summary == null || summary.trim().length()==0)
return false;
return getTextSummary().trim().length() != text.trim().length();
}
 
public GenericUser getOwner()
{
return owner;
}
 
/**
* Not implemented
*
* @return null
*/
public List<String> getOwnerRoles()
{
logger.warn("Invoke not implemented method in class:" + getClass().getName());
return null;
}
 
/**
* Not implemented
*
* @return null
*/
public String getChoosedOwnerRole()
{
logger.warn("Invoke not implemented method in class:" + getClass().getName());
return null;
}
 
public boolean isOwnedBy(GenericUser u)
{
return reminder.isOwnedBy(u);
}
}
/impl/src/java/pt/estgp/estgweb/domain/views/AnnouncementView.java
38,6 → 38,7
private String url;
private String type;
private Date updateDate;
private Date saveDate;
private Date startDate;
private Date expireDate;
private Integer counter;
77,6 → 78,7
this.internalUrlInclude = announcement.isInternalUrlInclude();
this.internal = announcement.isInternal();
this.updateDate = announcement.getUpdateDate();
this.saveDate = announcement.getSaveDate();
}
 
public void persistViewInObject(Announcement announcement)
294,34 → 296,7
 
public String getFormatedText()
{
if(text == null || text.trim().length() == 0)
return "";
 
String formatedText = text;
StringBuilder finalFormatedText = new StringBuilder();
boolean newLine = true;
for(int i =0;i<formatedText.length();i++)
{
if(newLine && formatedText.charAt(i) == ' ')
{
finalFormatedText.append("&nbsp;");
}
else if(formatedText.charAt(i) == '\n')
{
finalFormatedText.append("<br>");
newLine = true;
}
else if(formatedText.charAt(i) == '\t')
{
finalFormatedText.append("&nbsp;&nbsp;&nbsp;&nbsp;");
}
else
{
finalFormatedText.append(formatedText.charAt(i));
newLine = false;
}
}
return finalFormatedText.toString();
return StringsUtils.getFormatedText(text);
}
 
public Boolean getHaveAllText()
/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
107,4 → 107,9
{
return new StudentImpl();
}
 
public static ReminderImpl createReminderImpl()
{
return new ReminderImpl();
}
}
/impl/src/java/pt/estgp/estgweb/domain/ReminderImpl.java
New file
0,0 → 1,71
package pt.estgp.estgweb.domain;
 
import org.apache.log4j.Logger;
 
import java.util.List;
import java.util.Date;
import java.io.Serializable;
 
import pt.estgp.estgweb.domain.enums.AnnouncementStyleEnum;
import pt.estgp.estgweb.utils.RoleManager;
 
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 10:27:25
* @see pt.estgp.estgweb.domain
*/
public class ReminderImpl extends Reminder implements IOwned, IContextTimerObject
{
 
private static final Logger logger = Logger.getLogger(ReminderImpl.class);
 
 
public boolean isOwnedBy(GenericUser u)
{
return u.getId() == getOwner().getId();
}
 
public GenericUser getOwner()
{
return super.getOwner();
}
 
/**
* Not implemented in reminders
*
* @return null
*/
public List<String> getOwnerRoles()
{
logger.warn("Invoke not implemented method in class:" + getClass().getName());
return null;
}
 
/**
* Not implemented in reminders
*
* @return null
*/
public String getChoosedOwnerRole()
{
logger.warn("Invoke not implemented method in class:" + getClass().getName());
return null;
}
 
public Serializable getSerializable()
{
return getId();
}
 
public Date getEndTime()
{
return super.getExpireDate();
}
 
public Date getStartTime()
{
return super.getStartDate();
}
 
}
/impl/src/java/pt/estgp/estgweb/web/utils/RequestUtils.java
24,7 → 24,7
{
if (request.getCookies() == null || request.getCookies().length == 0)
{
Cookie cookie = new Cookie("bacoSession", request.getSession().getId());
Cookie cookie = new Cookie(pt.estgp.estgweb.web.Globals.BACO_SESSION_COOKIE, request.getSession().getId());
response.addCookie(cookie);
return cookie.getValue();
}
32,12 → 32,12
{
for (Cookie cookie : request.getCookies())
{
if (cookie.getName().equals("bacoSession"))
if (cookie.getName().equals(pt.estgp.estgweb.web.Globals.BACO_SESSION_COOKIE))
{
return cookie.getValue();
}
}
Cookie cookie = new Cookie("bacoSession", request.getSession().getId());
Cookie cookie = new Cookie(pt.estgp.estgweb.web.Globals.BACO_SESSION_COOKIE, request.getSession().getId());
response.addCookie(cookie);
return cookie.getValue();
}
48,7 → 48,7
{
if (request.getCookies() == null || request.getCookies().length == 0)
{
Cookie cookie = new Cookie("bacoSession", BytesUtils.generateHexKey());
Cookie cookie = new Cookie(pt.estgp.estgweb.web.Globals.BACO_SESSION_COOKIE, BytesUtils.generateHexKey());
response.addCookie(cookie);
return false;
}
56,12 → 56,12
{
for (Cookie cookie : request.getCookies())
{
if (cookie.getName().equals("bacoSession"))
if (cookie.getName().equals(pt.estgp.estgweb.web.Globals.BACO_SESSION_COOKIE))
{
return true;
}
}
Cookie cookie = new Cookie("bacoSession", BytesUtils.generateHexKey());
Cookie cookie = new Cookie(pt.estgp.estgweb.web.Globals.BACO_SESSION_COOKIE, BytesUtils.generateHexKey());
response.addCookie(cookie);
return false;
}
77,7 → 77,6
return EMPTY_STRING;
}
 
 
}
 
 
/impl/src/java/pt/estgp/estgweb/web/utils/TestHttpServletRequest.java
New file
0,0 → 1,299
package pt.estgp.estgweb.web.utils;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletInputStream;
import javax.servlet.RequestDispatcher;
import java.util.Enumeration;
import java.util.Map;
import java.util.Locale;
import java.security.Principal;
import java.io.UnsupportedEncodingException;
import java.io.IOException;
import java.io.BufferedReader;
 
/**
* @author Jorge Machado
* @date 22/Mai/2008
* @see pt.estgp.estgweb.web.utils
*/
public class TestHttpServletRequest implements HttpServletRequest
{
Cookie[] cookies = new Cookie[1];
 
public TestHttpServletRequest(String requester)
{
cookies[0] = new Cookie(pt.estgp.estgweb.web.Globals.BACO_SESSION_COOKIE,requester);
}
 
public String getAuthType()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Cookie[] getCookies()
{
return cookies;
}
 
public long getDateHeader(String string)
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getHeader(String string)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Enumeration getHeaders(String string)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Enumeration getHeaderNames()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public int getIntHeader(String string)
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getMethod()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getPathInfo()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getPathTranslated()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getContextPath()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getQueryString()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getRemoteUser()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public boolean isUserInRole(String string)
{
return false; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Principal getUserPrincipal()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getRequestedSessionId()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getRequestURI()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public StringBuffer getRequestURL()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getServletPath()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public HttpSession getSession(boolean b)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public HttpSession getSession()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public boolean isRequestedSessionIdValid()
{
return false; //To change body of implemented methods use File | Settings | File Templates.
}
 
public boolean isRequestedSessionIdFromCookie()
{
return false; //To change body of implemented methods use File | Settings | File Templates.
}
 
public boolean isRequestedSessionIdFromURL()
{
return false; //To change body of implemented methods use File | Settings | File Templates.
}
 
public boolean isRequestedSessionIdFromUrl()
{
return false; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Object getAttribute(String string)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Enumeration getAttributeNames()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getCharacterEncoding()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public void setCharacterEncoding(String string) throws UnsupportedEncodingException
{
//To change body of implemented methods use File | Settings | File Templates.
}
 
public int getContentLength()
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getContentType()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public ServletInputStream getInputStream() throws IOException
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getParameter(String string)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Enumeration getParameterNames()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String[] getParameterValues(String string)
{
return new String[0]; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Map getParameterMap()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getProtocol()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getScheme()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getServerName()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public int getServerPort()
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
 
public BufferedReader getReader() throws IOException
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getRemoteAddr()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getRemoteHost()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public void setAttribute(String string, Object object)
{
//To change body of implemented methods use File | Settings | File Templates.
}
 
public void removeAttribute(String string)
{
//To change body of implemented methods use File | Settings | File Templates.
}
 
public Locale getLocale()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public Enumeration getLocales()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public boolean isSecure()
{
return false; //To change body of implemented methods use File | Settings | File Templates.
}
 
public RequestDispatcher getRequestDispatcher(String string)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getRealPath(String string)
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public int getRemotePort()
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getLocalName()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getLocalAddr()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public int getLocalPort()
{
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
}
/impl/src/java/pt/estgp/estgweb/web/Globals.java
10,6 → 10,7
*/
public class Globals
{
public static final String BACO_SESSION_COOKIE = "BACOSESSIONID";
private static final String PORTAL_MENU_START_LINK_START = "/proxy/";
private static final String PORTAL_MENU_START_LINK_END = "/estgp/public/portal";
private static final String PORTAL_MENU_START_LINK_END_AA = "/estgweb/aa";
/impl/src/java/pt/estgp/estgweb/web/form/reminders/RemindersForm.java
New file
0,0 → 1,96
package pt.estgp.estgweb.web.form.reminders;
 
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.views.ReminderView;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.utils.ConfigProperties;
import org.apache.log4j.Logger;
import org.apache.struts.upload.FormFile;
import org.apache.struts.action.ActionErrors;
 
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 20:42:25
* @see pt.estgp.estgweb.web.form
*/
public class RemindersForm extends AddRolesForm
{
 
private static final Logger logger = Logger.getLogger(RemindersForm.class);
 
private ReminderView reminderView;
 
private String startDate;
private String expireDate;
 
public RemindersForm()
{
reminderView = new ReminderView();
}
 
public RemindersForm(ReminderView reminderView)
{
this.reminderView = reminderView;
}
 
public ReminderView getReminderView()
{
return reminderView;
}
 
public void setReminderView(ReminderView reminderView)
{
this.reminderView = reminderView;
}
 
public String getStartDate()
{
return startDate;
}
 
public void setStartDate(String startDate)
{
this.startDate = startDate;
}
 
public String getExpireDate()
{
return expireDate;
}
 
public void setExpireDate(String expireDate)
{
this.expireDate = expireDate;
}
 
public ActionErrors validate(org.apache.struts.action.ActionMapping actionMapping, javax.servlet.http.HttpServletRequest httpServletRequest)
{
ActionErrors errors = new ActionErrors();
 
Date now = new Date();
if(reminderView.getText() == null || reminderView.getText().trim().length() == 0)
addMessageWithKeys(errors,httpServletRequest,"errors.required","reminder.text");
if(startDate!= null && startDate.length()>0)
{
reminderView.setStartDate(DatesUtils.getDateFromString(startDate));
}
if(expireDate != null && expireDate.length()>0)
{
reminderView.setExpireDate(DatesUtils.getDateFromString(expireDate));
if(reminderView.getExpireDate().getTime() < now.getTime())
addMessage(errors,httpServletRequest,"error.expiredate.expired");
if(reminderView.getStartDate() != null && reminderView.getStartDate().getTime() > reminderView.getExpireDate().getTime())
addMessage(errors,httpServletRequest,"error.expiredate.lesser.than.start.date");
}
return errors;
}
}
/impl/src/java/pt/estgp/estgweb/web/form/announcements/AnnouncementsForm.java
36,6 → 36,8
private String url;
private FormFile bigImage;
private FormFile smallImage;
private String bigImageStr;
private String smallImageStr;
private String targetPrioritiesStr;
private Integer counter;
 
68,6 → 70,27
this.announcementView = announcementView;
}
 
 
public String getBigImageStr()
{
return bigImageStr;
}
 
public void setBigImageStr(String bigImageStr)
{
this.bigImageStr = bigImageStr;
}
 
public String getSmallImageStr()
{
return smallImageStr;
}
 
public void setSmallImageStr(String smallImageStr)
{
this.smallImageStr = smallImageStr;
}
 
public String getStartDate()
{
return startDate;
/impl/src/java/pt/estgp/estgweb/web/controllers/reminders/RemindersController.java
New file
0,0 → 1,144
package pt.estgp.estgweb.web.controllers.reminders;
 
import pt.estgp.estgweb.web.controllers.AddRolesController;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.controllers.announcements.AnnouncementsController;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.form.reminders.RemindersForm;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.views.ReminderView;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.InputStream;
import java.io.ByteArrayOutputStream;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
 
/**
* @author Jorge Machado
* @author Fabio Velez
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class RemindersController extends ApplicationDispatchController
{
 
private static final Logger logger = Logger.getLogger(RemindersController.class);
 
 
public ActionForward save(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
RemindersForm remindersForm = (RemindersForm) form;
ReminderView view = remindersForm.getReminderView();
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"object"};
Object[] args = new Object[]{view};
boolean newReminder = true;
if (view.getId() > 0)
newReminder = false;
ReminderView rV = (ReminderView) sm.execute(RequestUtils.getRequester(request, response), "CreateReminder", args, names);
if (newReminder)
addMessage(request, RequestUtils.getMessagePrefix(request) + "reminder.created.success");
else
addMessage(request, RequestUtils.getMessagePrefix(request) + "reminder.edited.success");
request.setAttribute("ReminderView", rV);
return mapping.findForward("success");
}
catch (FilterChainFailedException e)
{
addMessage(request, RequestUtils.getMessagePrefix(request) + "reminder.created.fail");
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
}
 
public ActionForward delete(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args = new Object[]{new Long(request.getParameter("id"))};
ReminderView rV = (ReminderView) sm.execute(RequestUtils.getRequester(request, response), "DeleteReminder", args, names);
addMessage(request, "reminder.deleted.success", "" + request.getParameter("id"));
request.setAttribute("DeletedReminderView", rV);
return mapping.findForward("success");
 
}
catch (FilterChainFailedException e)
{
addMessage(request, RequestUtils.getMessagePrefix(request) + "reminder.deleted.fail");
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
 
}
 
public ActionForward deleteExpired(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{};
List<ReminderView> rV = (List<ReminderView>) sm.execute(RequestUtils.getRequester(request, response), "DeleteExpiredReminders", args, names);
request.setAttribute("ExpiredReminderViews", rV);
addMessage(request, "reminder.deleted.success", "" + request.getParameter("id"));
return mapping.findForward("success");
 
}
catch (FilterChainFailedException e)
{
addMessage(request, RequestUtils.getMessagePrefix(request) + "reminder.deleted.fail");
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
 
}
}
/impl/src/java/pt/estgp/estgweb/web/controllers/commons/CommonsController.java
6,14 → 6,12
import pt.estgp.estgweb.web.controllers.blogs.BlogsController;
import pt.estgp.estgweb.web.form.blogs.BlogForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.domain.Blog;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.services.common.CommonServicesManager;
import pt.estgp.estgweb.services.common.SearchTypeEnum;
import pt.estgp.estgweb.services.common.ICommonSearchResults;
import pt.estgp.estgweb.services.common.ISearchResults;
import pt.estgp.estgweb.services.common.*;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
36,29 → 34,32
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class CommonsController extends ApplicationDispatchController {
public class CommonsController extends ApplicationDispatchController
{
 
private static final Logger logger = Logger.getLogger(CommonsController.class);
 
public ActionForward search(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
ICommonSearchResults commonSearchResults = CommonServicesManager.getInstance().search(request,response,request.getParameter("query"), SearchTypeEnum.parse(request.getParameter("searchType")));
// if(commonSearchResults.getTotalResults() == 0)
// return mapping.findForward("noresults");
request.setAttribute("ICommonSearchResults",commonSearchResults);
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{request.getParameter("query"), SearchTypeEnum.parse(request.getParameter("searchType"))};
ICommonSearchResults commonSearchResults = (ICommonSearchResults) sm.execute(RequestUtils.getRequester(request, response), "CommonServicesSearch", args, names);
request.setAttribute("ICommonSearchResults", commonSearchResults);
return mapping.findForward("searchResults");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e) {
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
66,20 → 67,26
 
 
public ActionForward searchModule(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException {
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
ISearchResults searchResults = CommonServicesManager.getInstance().search(request,response,request.getParameter("query"), SearchTypeEnum.parse(request.getParameter("searchType")),request.getParameter("module"),Integer.parseInt(request.getParameter("page")));
request.setAttribute("ISearchResults",searchResults);
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{request.getParameter("query"), SearchTypeEnum.parse(request.getParameter("searchType")), ModuleEnum.parse(request.getParameter("module")), Integer.parseInt(request.getParameter("page"))};
ISearchResults searchResults = (ISearchResults) sm.execute(RequestUtils.getRequester(request, response), "CommonServicesSearchModule", args, names);
request.setAttribute("ISearchResults", searchResults);
return mapping.findForward("searchModule");
}
catch (FilterChainFailedException e) {
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e) {
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/AnnouncementsController.java
113,10 → 113,23
newAnnouncement = false;
AnnouncementView aV = (AnnouncementView) sm.execute(RequestUtils.getRequester(request, response), "CreateAnnouncement", args, names);
 
String user = "";
String from = "";
if(UserSessionProxy.loadUserSessionFromRequest(request).getUser()!=null)
{
user="/user";
}
if(request.getParameter("from")!=null)
{
from = request.getParameter("from");
}
 
 
 
if (newAnnouncement)
addMessage(request,RequestUtils.getMessagePrefix(request) + "announcement.created.success", request.getContextPath(), "" + aV.getId(), view.getTitle());
addMessage(request,"announcement.created.success", request.getContextPath()+user, "From" + from ,"" + aV.getId(), view.getTitle());
else
addMessage(request,RequestUtils.getMessagePrefix(request) + "announcement.edited.success", request.getContextPath(), "" + aV.getId(), view.getTitle());
addMessage(request,"announcement.edited.success", request.getContextPath()+user, "From" + from,"" + aV.getId(), view.getTitle());
return mapping.findForward("success");
}
catch (FilterChainFailedException e)
/impl/src/java/pt/estgp/estgweb/web/tags/HasNotRoleTag.java
New file
0,0 → 1,67
package pt.estgp.estgweb.web.tags;
 
import org.apache.log4j.Logger;
 
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
 
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.Globals;
 
public class HasNotRoleTag extends BodyTagSupport
{
 
private static final Logger logger = Logger.getLogger(HasNotRoleTag.class);
 
 
private String role;
 
 
public String getRole()
{
return role;
}
 
public void setRole(String role)
{
this.role = role;
}
 
public int doStartTag() throws JspException
{
if(go())
return EVAL_BODY_TAG;
else
return SKIP_BODY;
}
 
public boolean go()
{
UserSessionImpl userSession = (UserSessionImpl) pageContext.getRequest().getAttribute(Globals.USER_SESSION_KEY);
return !(userSession != null && userSession.getUser() != null && userSession.getUser().hasRole(role));
}
 
public int doEndTag() throws JspException
{
if (go())
{
String toPage = bodyContent.getString().trim();
JspWriter writer = pageContext.getOut();
try
{
writer.write(toPage);
}
catch (Exception e)
{
logger.error(e, e);
throw new JspException(e);
}
}
 
// Continue processing this page
return EVAL_PAGE;
}
 
 
}