Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 112 → Rev 132

/impl/conf/language/MessageResourcesAnnouncements.properties
4,7 → 4,7
#
################################################################################
module.Announcements=Anúncios
 
a
announcement.title=Titulo
announcement.text=Texto
announcement.startDate=Data de Aparecimento
14,10 → 14,13
announcement.typeAnnouncement=Tipo
announcement.sendAnnouncementLike=Enviar como
announcement.priorityAnnouncement=Prioridade
announcement.linkAnnouncement=Url
announcement.linkAnnouncement=URL
announcement.internalLinkAnnouncement=URL interno do sistema
announcement.target.roles=Pessoas a quem destina
announcement.created.success=Anúncio criado com sucesso
announcement.edited.success=Anúncio alterado com sucesso
announcement.deleted.success=Anúncio apagado com sucesso
announcement.deleted.fail=Não foi possivel apagar o anuncio
announcement.status=Válido
 
 
31,3 → 34,14
 
announcements.loading=carregando anúncio...
 
announcement.style.img.left=Imagem à esquerda
announcement.style.img.right=Imagem à direita
announcement.style.img.top=Imagem em cima
announcement.style.img.embedded.left=Imagem embebida à esquerda
announcement.style.img.embedded.right=Imagem embebida à direita
 
announcement.internal.url.include.yes=Incluir o conteudo
announcement.internal.url.include.no=Referênciar o conteudo
 
announcement.image.style=Estilo visual
 
/impl/conf/language/MessageResources.properties
101,7 → 101,10
authenticate=Entrar
logout=Sair
submit.announcement=Colocar Anúncio
edit.profile=Editar Meu Perfil
edit.user.profile=Editar Utilizador
services=Serviços
administrative.services=Administrador
announcements=Ultimas Notícias
courses=Cursos
mainAnnouncements=Destaques
220,6 → 223,7
username=Nome de Utilizador
password=Password
submit=Entrar
edit=Editar
confirm=Confirmar
add=Adicionar
remove=Remover
227,20 → 231,31
no=Não
 
#Login
login.firts.time.name=Nome
login.first.time.username=Username
login.first.time.name=Nome
login.first.time.targets=Permissões
login.first.time.bi=BI
login.first.time.address=Morada
login.first.time.zip=Código Postal
login.first.time.birthday.date=Data de Nascimento
login.first.time.country=País
login.first.time.email=E-mail
login.first.time.email.institucion=E-mail Institucional*
login.first.time.email.institucion2=E-mail Institucional
login.first.time.email.secundary=E-mail Secundário
login.first.time.phone.number=Telefone
 
#Profile
profile.edited.sucess=Perfil alterado com sucesso
profile.enter.first.time=É a primeira vez que se esta a ligar, seja bem-vindo {0}
profile.edit=Aqui pode editar o seu perfil
profile.email.change=*Para alterar o seu email dirija-se aos serviços centrais
profile.search.user=Procurar Utilizador
 
#Cursos
course.aa=Acessoria e Administração
 
#Nucleos
nucleo.engenharia=Nucleo de Engenharia
 
 
 
module.Proxy=Proxy
 
/impl/conf/WEB-INF/struts/struts-default.xml
124,21 → 124,23
</action>
 
<!--Profile-->
<action path="/startEditProfile" forward="/profile.do?dispatch=changeProfile"/>
<action path="/findProfile" forward="page.find.profile"/>
<action path="/profile"
type="pt.estgp.estgweb.web.controllers.profile.ProfileController"
name="ProfileForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.profile">
<forward name="success" path="page.authentication.ok"/>
input="page.load.profile">
<forward name="success" path="page.welcome"/>
<forward name="load" path="page.load.profile"/>
<forward name="search" path="page.find.profile"/>
</action>
 
 
 
 
 
</action-mappings>
<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" />
<message-resources parameter="MessageResources"/>
/impl/conf/WEB-INF/struts/tiles-default.xml
267,6 → 267,16
<put name="body" value="/public/index.jsp" />
</definition>
 
<!-- Profile -->
<definition name="page.load.profile" extends="base.layout1">
<put name="title" value="Edit Profile" />
<put name="body" value="/admin/profile/profile.jsp" />
</definition>
<definition name="page.find.profile" extends="base.layout1">
<put name="title" value="Find User Profile" />
<put name="body" value="/admin/profile/findUser.jsp" />
</definition>
 
<!-- Autenticacao -->
<definition name="page.authentication" extends="base.layout1">
<put name="title" value="Authentication" />
285,12 → 295,6
<put name="body" value="/admin/profile/profile.jsp" />
</definition>
 
<!-- Autenticacao -->
<definition name="page.profile" extends="base.layout1">
<put name="title" value="Profile" />
<put name="body" value="/admin/profile/profile.jsp" />
</definition>
 
<!-- ERRORS DEFINITIONS -->
<definition name="page.error.500" extends="base.error.definition">
<put name="title" value="internal error" />
/impl/conf/app.properties
2,7 → 2,7
use.ldap=@use.ldap@
system.language=pt
#Session Settings
user.session.timeout.minutes=15
user.session.timeout.minutes=30
 
email.server=mail.estgp.pt
email.user=
25,6 → 25,9
## Kinds of roles
user.admin=admin
user.super=all
user.student=student
user.teacher=teacher
 
user.role.0=all
user.role.1=admin
user.role.2=student
138,5 → 141,11
search.best.fragments.max.fragments=3
 
 
#########################################################################
# Imports SIGoES
#
siges.institution.code=1
 
 
 
 
/impl/conf/berserk/sd.xml
110,6 → 110,20
</filterChains>
</service>
<service>
<name>DeleteAnnouncement</name>
<implementationClass>pt.estgp.estgweb.services.announcements.DeleteAnnouncementService</implementationClass>
<description>Delete an Announcement</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<!--<chain name="Admins"/>-->
<chain name="OwnersLoadAnnouncement"/>
<!--<chain name="ContextObjectTimer"/>-->
<!--<chain name="ContextStaticTimerExample"/>-->
</filterChains>
</service>
<service>
<name>LoadAnnouncementView</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
<description>Load an Announcement view</description>
165,7 → 179,7
 
 
<!--Teste-->
<service>
<service>
<name>TesteSaver</name>
<implementationClass>pt.estgp.estgweb.services.teste.TesteService</implementationClass>
<description>Saves a teste</description>
177,7 → 191,7
 
 
<!--BLOGS-->
<service>
<service>
<name>CreateBlog</name>
<implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogService</implementationClass>
<description>Create a Blog</description>
223,5 → 237,70
</filterChains>
</service>
 
<!--Import Services-->
<service>
<name>ImportCourseServices</name>
<implementationClass>pt.estgp.estgweb.services.sigesimports.ImportCourseService</implementationClass>
<description>Service to call SiGesWEB Service and import Courses and Course Units</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Supers"/>
</filterChains>
</service>
<service>
<name>ImportStudentServices</name>
<implementationClass>pt.estgp.estgweb.services.sigesimports.ImportStudentService</implementationClass>
<description>Service to call SiGesWEB Service and import Students and Course Units</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Supers"/>
</filterChains>
</service>
<service>
<name>ImportTeacherServices</name>
<implementationClass>pt.estgp.estgweb.services.sigesimports.ImportTeachersService</implementationClass>
<description>Service to call SiGesWEB Service and import Teachers and Course Units</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Supers"/>
</filterChains>
</service>
<!--ProfileServices-->
<service>
<name>LoadUserById</name>
<implementationClass>pt.estgp.estgweb.services.profile.LoadUserByIdService</implementationClass>
<description>Load User By ID</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<!-- <chain name="OwnerLoadProfile"/>-->
</filterChains>
</service>
<service>
<name>EditUser</name>
<implementationClass>pt.estgp.estgweb.services.profile.EditUserService</implementationClass>
<description>Edit User</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<!-- <chain name="OwnerUpdateProfile"/> -->
</filterChains>
</service>
<service>
<name>SearchUser</name>
<implementationClass>pt.estgp.estgweb.services.profile.SearchUserService</implementationClass>
<description>Search Users</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
 
</serviceDefinitions>
/impl/conf/berserk/fcd.xml
27,6 → 27,13
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.AdminControlFilter</filterClass>
</filterChain>
<filterChain>
<name>Supers</name>
<expression>AuthenticatedUsers &amp;&amp; RoleUsers("super")</expression>
<description>Super Users Control Chain</description>
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.AdminControlFilter</filterClass>
</filterChain>
 
<!--Generic Owners: need object in service paramenters-->
<filterChain>
88,4 → 95,24
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.ContextControlFilter</filterClass>
</filterChain>
 
 
 
<!--Profile-->
<filterChain>
<name>OwnerLoadProfile</name>
<expression>OwnerUsersClass("serializable","pt.estgp.estgweb.domain.User")</expression>
<description>Owner of an object Control Chain</description>
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
<filterChain>
<name>OwnerUpdateProfile</name>
<expression>OwnerUsersClass("object.serializable","pt.estgp.estgweb.domain.User")</expression>
<description>Owner of an object Control Chain</description>
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
 
 
</filterChainsDefinitions>
/impl/src/java/pt/estgp/estgweb/utils/RoleManager.java
21,6 → 21,7
{
 
private static String ROLE_MESSAGE_RESOURCES_PREFIX = "role.";
public static String ROLE_SEPARATOR = ",";
 
private static List<String> roles = null;
 
42,7 → 43,7
if(u.getRoles() == null || u.getRoles().length() == 0)
return false;
 
String[] roles = u.getRoles().split(",");
String[] roles = u.getRoles().split(ROLE_SEPARATOR);
for(String role: roles)
{
if(role.equals(requiredRole))
75,7 → 76,7
if(roles == null)
roles = role;
else
roles += "," + role;
roles += ROLE_SEPARATOR + role;
}
return roles;
}
84,7 → 85,7
{
if(rolesStr == null)
return null;
String[] roles = rolesStr.split(",");
String[] roles = rolesStr.split(ROLE_SEPARATOR);
List<String> l = new ArrayList<String>();
for(String role: roles)
{
92,4 → 93,12
}
return l;
}
 
public static String catRole(String old, String newRole)
{
if(old == null || old.length() == 0)
return newRole;
else
return old + ROLE_SEPARATOR + newRole;
}
}
/impl/src/java/pt/estgp/estgweb/Globals.java
3,6 → 3,7
import pt.estgp.estgweb.utils.ConfigProperties;
 
import java.util.List;
import java.math.BigDecimal;
 
/**
* @author Jorge Machado
35,4 → 36,8
public static final int ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_TIMEOUT = ConfigProperties.getIntProperty("announcements.top.flash.news.timeout.miliseconds");
public static List<String> USER_ROLES = ConfigProperties.getListValues("user.role");
 
public static final String STUDENT_ROLE = ConfigProperties.getProperty("role.student");
public static final String TEACHER_ROLE = ConfigProperties.getProperty("role.teacher");
public static final BigDecimal SIGES_INSTITUTION_CODE = new BigDecimal(ConfigProperties.getIntProperty("siges.institution.code"));
 
}
/impl/src/java/pt/estgp/estgweb/services/profile/EditUserService.java
New file
0,0 → 1,36
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.dao.DaoFactory;
import org.apache.log4j.Logger;
 
import java.io.Serializable;
 
public class EditUserService implements IService {
 
private static final Logger logger = Logger.getLogger(EditUserService.class);
 
public User run(UserView userView, UserSession userSession)
{
User user;
 
logger.info("Editing user:" + userView.getId());
 
if(userSession.getUser().getRoles().contains("admin"))
{
user=DaoFactory.getUserDaoImpl().get(userView.getSerializable());
userView.persistViewInObjectAdmin(user);
logger.info("User Edited by:" + userSession.getUser().getName());
}
else
{
user=DaoFactory.getUserDaoImpl().get(userSession.getUser().getSerializable());
userView.persistViewInObjectUser(user);
logger.info("User Edited by:" + userSession.getUser().getName());
}
return user;
}
}
/impl/src/java/pt/estgp/estgweb/services/profile/SearchUserService.java
New file
0,0 → 1,31
package pt.estgp.estgweb.services.profile;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.UserView;
import org.apache.log4j.Logger;
 
import java.util.List;
import java.util.ArrayList;
 
public class SearchUserService implements IService {
 
private static final Logger logger = Logger.getLogger(SearchUserService.class);
 
public List<UserView> run(String textToSearch, UserSession userSession)
{
List<User> users =DaoFactory.getUserDaoImpl().findUsers(textToSearch);
if(users == null)
return null;
List<UserView> userViews = new ArrayList<UserView>();
for(User user: users)
{
UserView userView = new UserView(user);
userViews.add(userView);
}
logger.info("Loading user views");
return userViews;
}
}
/impl/src/java/pt/estgp/estgweb/services/profile/LoadUserByIdService.java
New file
0,0 → 1,29
package pt.estgp.estgweb.services.profile;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.announcements.LoadAnnouncementService;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.views.UserView;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import org.apache.log4j.Logger;
 
import java.io.Serializable;
 
 
public class LoadUserByIdService implements IService {
 
private static final Logger logger = Logger.getLogger(LoadUserByIdService.class);
 
 
 
public UserView run(Serializable id, UserSession userSession)
{
User user = DaoFactory.getUserDaoImpl().load(id);
UserView userView = new UserView(user);
logger.info("Loading user view:" + user.getId());
return userView;
}
}
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentService.java
New file
0,0 → 1,108
package pt.estgp.estgweb.services.sigesimports;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.Globals;
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.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 java.math.BigDecimal;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
 
import jomm.dao.impl.AbstractDao;
 
/**
* @author Jorge Machado
* @date 11/May/2008
* @time 12:51:32
* @see pt.estgp.estgweb
*/
public class ImportStudentService implements IService
{
 
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
String year = "200708";
SiGesWEB service = new SiGesWEB();
ArrayOfDecimal codigosAlunos = service.getSiGesWEBSoap().getCodigosAlunosInscritosDaInstituicao(Globals.SIGES_INSTITUTION_CODE,year);
List<BigDecimal> codigos = codigosAlunos.getDecimal();
for(BigDecimal c: codigos)
{
Aluno d = service.getSiGesWEBSoap().getAlunoInscrito(c,Globals.SIGES_INSTITUTION_CODE,year);
Student t = DaoFactory.getStudentDaoImpl().loadBySigesCode(d.getCodigo().intValue());
if(t == null)
{
t = DomainObjectFactory.createStudentImpl();
DaoFactory.getStudentDaoImpl().save(t);
}
persist(d,t);
}
}
 
/**
* Nao esta testado
* jm
* @param d Aluno
* @param t Student
*/
private void persist(Aluno d, Student t)
{
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());
 
/*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());
else
{
Set<CourseUnit> units = new HashSet<CourseUnit>();
for(BigDecimal unitCode: d.getDisciplinas().getDecimal())
{
List<CourseUnit> l = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + unitCode.intValue());
if(l != null)
units.addAll(l);
else
logger.warn("ATENTION SIGES COURSE UNIT NOT FOUND IN BACO STORAGE: curseUnit " + unitCode.intValue());
}
t.setSubscribedUnits();Units(units);
}
}
 
/**
* Testar por aqui poi requer Super Role e assim e' autmatico
* @param args of main
* @throws ServiceException on error
 
public static void main(String[]args) throws ServiceException
{
AbstractDao.getCurrentSession().beginTransaction();
new ImportStudentService().run();
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
*/
}
 
}
 
 
 
 
 
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java
New file
0,0 → 1,97
package pt.estgp.estgweb.services.sigesimports;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.ipportalegre.siges.web.services.*;
import org.apache.log4j.Logger;
 
import java.util.*;
import java.math.BigDecimal;
 
import jomm.dao.impl.AbstractDao;
 
/**
* @author Jorge Machado
* @date 11/May/2008
* @time 12:51:32
* @see pt.estgp.estgweb
*/
public class ImportTeachersService implements IService
{
 
private static final Logger logger = Logger.getLogger(ImportTeachersService.class);
 
public void run() throws ServiceException
{
//todo passar para um utilitario que cria automaticamente o ano lectivo
String year = "200708";
SiGesWEB service = new SiGesWEB();
ArrayOfDecimal codigosDocentes = service.getSiGesWEBSoap().getCodigosDocentesInscritosDaInstituicao(Globals.SIGES_INSTITUTION_CODE,year);
List<BigDecimal> codigos = codigosDocentes.getDecimal();
for(BigDecimal c: codigos)
{
Docente d = service.getSiGesWEBSoap().getDocente(c,Globals.SIGES_INSTITUTION_CODE,year);
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(d.getCodigoFuncionario().intValue());
if(t == null)
{
t = DomainObjectFactory.createTeacherImpl();
DaoFactory.getTeacherDaoImpl().save(t);
}
persist(d,t);
}
}
 
/**
* Nao esta testado
* jm
* @param d docente
* @param t teacher
*/
private void persist(Docente d, Teacher t)
{
t.setName(d.getNomeFuncionarioInt());
t.setEmail(d.getEmail());
t.setSigesCode(d.getCodigoFuncionario().intValue());
t.setAddress(d.getMorada());
t.setZip(""+d.getCodigoPostal().intValue());
t.setBi(d.getNumeroBi());
t.setEmployerName(d.getNomeFuncionario());
t.setAcademicName(d.getNomeAcademico());
t.setBirthDate(d.getDataNascimento().toGregorianCalendar().getTime());
//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());
else
{
Set<CourseUnit> units = new HashSet<CourseUnit>();
for(BigDecimal unitCode: d.getDisciplinas().getDecimal())
{
List<CourseUnit> l = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + unitCode.intValue());
if(l != null)
units.addAll(l);
else
logger.warn("ATENTION SIGES COURSE UNIT NOT FOUND IN BACO STORAGE: curseUnit " + unitCode.intValue());
}
t.setTeachedUnits(units);
}
}
 
/**
* Testar por aqui poi requer Super Role e assim e' autmatico
* @param args of main
* @throws ServiceException on error
*/
public static void main(String[]args) throws ServiceException
{
AbstractDao.getCurrentSession().beginTransaction();
new ImportTeachersService().run();
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
 
}
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
6,6 → 6,8
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.dao.DaoFactory;
import pt.estgp.estgweb.Globals;
import pt.ipportalegre.siges.web.services.*;
14,6 → 16,8
import java.util.*;
import java.math.BigDecimal;
 
import jomm.dao.impl.AbstractDao;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
44,7 → 48,15
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());
 
DaoFactory.getCourseUnitDaoImpl().save(c);
}
 
Set<Map.Entry<Integer,Disciplina>> set = disciplinasMap.entrySet();
81,11 → 93,16
}
 
public static void main(String[]args) throws ServiceException {
AbstractDao.getCurrentSession().beginTransaction();
 
 
 
 
new ImportCourseService().run();
 
 
AbstractDao.getCurrentSession().getTransaction().commit();
 
}
 
 
/impl/src/java/pt/estgp/estgweb/services/announcements/DeleteAnnouncementService.java
New file
0,0 → 1,47
package pt.estgp.estgweb.services.announcements;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import org.apache.log4j.Logger;
 
import java.io.Serializable;
 
/*
* @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
*
*/
public class DeleteAnnouncementService implements IService {
 
private static final Logger logger = Logger.getLogger(DeleteAnnouncementService.class);
 
 
 
public Boolean run(Serializable id, UserSession userSession)
{
try
{
logger.info("Deleting announcement:" + id);
DaoFactory.getAnnouncementDaoImpl().delete(id);
return true;
}
catch(Exception e)
{
logger.error("Can´t delete announcement:"+id +""+e);
return false;
}
}
}
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
85,7 → 85,6
UserImpl u = DomainObjectFactory.createUserImpl();
u.setUsername(username);
u.setName(getName(map));
u.setAddress("urra");
u.setRoles(getRoles(map));
u.setNewUser(true);
DaoFactory.getUserDaoImpl().save(u);
/impl/src/java/pt/estgp/estgweb/domain/UserManagedRoleImpl.java
New file
0,0 → 1,40
package pt.estgp.estgweb.domain;
 
import java.util.Date;
import java.util.Set;
 
 
public abstract class UserManagedRoleImpl extends UserImpl
{
 
public UserManagedRoleImpl()
{
 
}
public UserManagedRoleImpl(Date saveDate, boolean superuser, String name, String username, String password, String roles, String address, String zip, String country, String email, String outEmail, String phonenumber, String sex, String bi, Date birthDate, Set<Group> groups, Set<CourseUserAssociation> courses)
{
super(saveDate, superuser, name, username, password, roles, address, zip, country, email, outEmail, phonenumber, sex, bi, birthDate, groups, courses);
}
 
/**
*
* @return the managed role of implementation object
*/
public abstract String getManagedRole();
 
/**
*
* @return roles of student check first if has student role
*/
public String getRoles()
{
if(super.getRoles() == null)
super.setRoles(getManagedRole());
else if(super.getRoles().indexOf(getManagedRole()) < 0)
{
addRole(getManagedRole());
}
return super.getRoles();
}
}
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java
2,9 → 2,10
 
import pt.estgp.estgweb.utils.RoleManager;
 
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.io.Serializable;
import java.util.Set;
 
/**
* @author Jorge Machado
16,7 → 17,15
{
private boolean newUser = false;
 
public UserImpl()
{}
 
public UserImpl(Date saveDate, boolean superuser, String name, String username, String password, String roles, String address, String zip, String country, String email, String outEmail, String phonenumber, String sex, String bi, Date birthDate, Set<Group> groups, Set<CourseUserAssociation> courses)
{
super(saveDate, superuser, name, username, password, roles, address, zip, country, email, outEmail, phonenumber, sex, bi, birthDate, groups, courses);
}
 
 
public boolean isNewUser() {
return newUser;
}
41,6 → 50,11
return false;
}
 
public void addRole(String role)
{
setRoles(RoleManager.catRole(getRoles(),"student"));
}
 
public boolean hasRole(String r)
{
if(r == null || getRoles() == null || getRoles().length() == 0)
71,4 → 85,9
{
return getId();
}
 
public User getOwner()
{
return this;
}
}
/impl/src/java/pt/estgp/estgweb/domain/enums/AnnouncementStyleEnum.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.enums;
 
/**
* Created by IntelliJ IDEA.
* User: Jorge Machado
* Date: 14/Mai/2008
* Time: 12:24:35
* To change this template use File | Settings | File Templates.
*/
public enum AnnouncementStyleEnum {
imgLeft("announcement.style.img.left"),
imgRight("announcement.style.img.right"),
imgTop("announcement.style.img.top"),
imgEmbeddedLeft("announcement.style.img.embedded.left"),
imgEmbeddedRight("announcement.style.img.embedded.right");
 
private String messageKey;
 
private AnnouncementStyleEnum(String messageKey)
{
this.messageKey = messageKey;
}
 
public String getMessageKey()
{
return messageKey;
}
 
 
public static AnnouncementStyleEnum parse(String type)
{
for(AnnouncementStyleEnum styleEnum: values())
{
if(styleEnum.getMessageKey().equals(type))
return styleEnum;
}
return null;
}
}
/impl/src/java/pt/estgp/estgweb/domain/StudentImpl.java
New file
0,0 → 1,21
package pt.estgp.estgweb.domain;
 
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.Globals;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 12:51:32
* @see pt.estgp.estgweb
*/
public class StudentImpl extends Student
{
 
public static final String STUDENT_ROLE = Globals.STUDENT_ROLE;
 
 
public String getManagedRole() {
return STUDENT_ROLE;
}
}
/impl/src/java/pt/estgp/estgweb/domain/views/AnnouncementView.java
3,6 → 3,7
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.AnnouncementImpl;
import pt.estgp.estgweb.domain.enums.AnnouncementStyleEnum;
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.utils.ConfigProperties;
 
35,6 → 36,10
private Integer counter;
private boolean status;
private long ownerID;
private String style;
private String internalUrlServer;
private String internalUrlPath;
private boolean internalUrlInclude;
 
public AnnouncementView()
{}
57,6 → 62,10
this.expireDate = announcement.getExpireDate();
this.choosedOwnerRole = announcement.getChoosedOwnerRole();
this.ownerID=announcement.getOwner().getId();
this.internalUrlServer = announcement.getInternalUrlServer();
this.internalUrlPath = announcement.getInternalUrlPath();
this.style = announcement.getStyle();
this.internalUrlInclude = announcement.isInternalUrlInclude();
}
 
public void persistViewInObject(Announcement announcement)
73,9 → 82,50
announcement.setStatus(status);
announcement.setCounter(counter);
announcement.setChoosedOwnerRole(choosedOwnerRole);
announcement.setInternalUrlServer(internalUrlServer);
announcement.setInternalUrlPath(internalUrlPath);
announcement.setStyle(style);
announcement.setInternalUrlInclude(internalUrlInclude);
}
 
 
public boolean isInternalUrlInclude() {
return internalUrlInclude;
}
 
public void setInternalUrlInclude(boolean internalUrlInclude) {
this.internalUrlInclude = internalUrlInclude;
}
 
public String getStyle() {
return style;
}
 
public AnnouncementStyleEnum getStyleEnum()
{
return AnnouncementStyleEnum.parse(style);
}
 
public void setStyle(String style) {
this.style = style;
}
 
public String getInternalUrlPath() {
return internalUrlPath;
}
 
public void setInternalUrlPath(String internalUrlPath) {
this.internalUrlPath = internalUrlPath;
}
 
public String getInternalUrlServer() {
return internalUrlServer;
}
 
public void setInternalUrlServer(String internalUrlServer) {
this.internalUrlServer = internalUrlServer;
}
 
public String getChoosedOwnerRole() {
return choosedOwnerRole;
}
216,6 → 266,25
return getText();
}
 
public String getFormatedText()
{
if(text == null | text.trim().length() == 0)
return "";
 
String formatedText = text.replace(" ","&nbsp;");
StringBuilder finalFormatedText = new StringBuilder();
for(int i =0;i<formatedText.length();i++)
{
if(formatedText.charAt(i) == '\n')
finalFormatedText.append("<br>");
else if(formatedText.charAt(i) == '\t')
finalFormatedText.append("&nbsp;&nbsp;&nbsp;&nbsp;");
else
finalFormatedText.append(formatedText.charAt(i));
}
return finalFormatedText.toString();
}
 
public Boolean getHaveAllText()
{
if(getType().equals("top.flash.news"))
/impl/src/java/pt/estgp/estgweb/domain/views/UserView.java
New file
0,0 → 1,181
package pt.estgp.estgweb.domain.views;
 
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.AnnouncementImpl;
import pt.estgp.estgweb.domain.User;
 
import java.util.List;
import java.util.Date;
import java.io.Serializable;
 
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 19:34:49
* @see pt.estgp.estgweb.domain.views
*/
public class UserView extends DomainObjectView
{
private long id;
private String name;
private List<String> userRoles;
private String address;
private String zip;
private String country;
private String email;
private String outEmail;
private String phonenumber;
private String bi;
private Date birthDate;
private String username;
 
public UserView()
{}
 
public UserView(User user)
{
 
super(user);
this.id = user.getId();
this.name=user.getName();
this.address=user.getAddress();
this.zip = user.getZip();
this.country=user.getCountry();
this.email=user.getEmail();
this.phonenumber=user.getPhonenumber();
this.userRoles = RoleManager.getRolesFromSerial(user.getRoles());
this.outEmail=user.getOutEmail();
this.bi=user.getBi();
this.birthDate=user.getBirthDate();
this.username=user.getUsername();
}
 
public void persistViewInObjectAdmin(User user)
{
user.setName(name);
user.setAddress(address);
user.setZip(zip);
user.setCountry(country);
user.setEmail(email);
user.setPhonenumber(phonenumber);
user.setRoles(RoleManager.getSerialRoles(userRoles));
user.setOutEmail(outEmail);
user.setBi(bi);
user.setBirthDate(birthDate);
user.setUsername(username);
}
 
public void persistViewInObjectUser(User user)
{
user.setOutEmail(outEmail);
}
 
public Class getReferenceClass()
{
return User.class;
}
 
public Serializable getSerializable()
{
return id;
}
 
public long getId() {
return id;
}
 
public void setId(long id) {
this.id = id;
}
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public List<String> getUserRoles() {
return userRoles;
}
 
public void setUserRoles(List<String> userRoles) {
this.userRoles = userRoles;
}
 
public String getAddress() {
return address;
}
 
public void setAddress(String address) {
this.address = address;
}
 
public String getZip() {
return zip;
}
 
public void setZip(String zip) {
this.zip = zip;
}
 
public String getCountry() {
return country;
}
 
public void setCountry(String country) {
this.country = country;
}
 
public String getEmail() {
return email;
}
 
public void setEmail(String email) {
this.email = email;
}
 
public String getPhonenumber() {
return phonenumber;
}
 
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
 
public String getOutEmail() {
return outEmail;
}
 
public void setOutEmail(String outEmail) {
this.outEmail = outEmail;
}
 
public String getBi() {
return bi;
}
 
public void setBi(String bi) {
this.bi = bi;
}
 
public Date getBirthDate() {
return birthDate;
}
 
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
 
public String getUsername() {
return username;
}
 
public void setUsername(String username) {
this.username = username;
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
1,5 → 1,11
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.CourseUnit;
import static org.hibernate.criterion.Restrictions.*;
 
import java.util.List;
import java.util.Set;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
20,4 → 26,9
return (CourseUnitDaoImpl) myInstance;
}
 
public List<CourseUnit> loadBySigesCode(String sigesCode)
{
return createCriteria().add(eq("code",sigesCode)).list();
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/TeacherDaoImpl.java
New file
0,0 → 1,28
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.Teacher;
import static org.hibernate.criterion.Restrictions.*;
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class TeacherDaoImpl extends TeacherDao
{
private TeacherDaoImpl(){}
 
public static TeacherDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new TeacherDaoImpl();
return (TeacherDaoImpl) myInstance;
}
 
public Teacher loadBySigesCode(int sigesCode)
{
return (Teacher) createCriteria().add(eq("sigesCode",sigesCode)).uniqueResult();
}
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/UserDaoImpl.java
4,7 → 4,10
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Hibernate;
import static org.hibernate.criterion.Restrictions.eq;
import org.hibernate.Criteria;
import static org.hibernate.criterion.Restrictions.*;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.SimpleExpression;
 
 
import java.util.List;
76,14 → 79,14
}
}
 
/**
/**
* Used by the base DAO classes but here for your modification Load object
* matching the given key and return it.
*
* @param ID to load
* @return a user
*/
public final User loadByID(String ID)
public final User loadByID(String ID)
{
try
{
120,6 → 123,18
}
}
 
public List<User> findUsers (String textToSearch)
{
Criteria criteria = createCriteria();
Criterion name= or(like("name","%"+textToSearch+"%"),like("name","%"+textToSearch+"%"));
Criterion username = or(like("username", "%" + textToSearch + "%"), like("username", "%" + textToSearch + "%"));
Criterion email = or(like("email", "%" + textToSearch + "%"), like("email", "%" + textToSearch + "%"));
criteria.add(or(or(name,username),email));
return criteria.list();
}
 
 
 
public Serializable save(User obj)
{
try {
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/StudentDaoImpl.java
New file
0,0 → 1,29
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.Student;
import static org.hibernate.criterion.Restrictions.*;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class StudentDaoImpl extends StudentDao
{
private StudentDaoImpl(){}
 
public static StudentDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new StudentDaoImpl();
return (StudentDaoImpl) myInstance;
}
 
public Student loadBySigesCode(int sigesCode)
{
return (Student) createCriteria().add(eq("sigesCode",sigesCode)).uniqueResult();
}
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
75,12 → 75,23
return BlogDaoImpl.getInstance();
}
 
public static BlogPostDaoImpl getBlogPostDaoImpl()
public static BlogPostDaoImpl getBlogPostDaoImpl()
{
return BlogPostDaoImpl.getInstance();
}
 
public static CourseUnitDaoImpl getCourseUnitDaoImpl()
{
return CourseUnitDaoImpl.getInstance();
}
 
public static TeacherDaoImpl getTeacherDaoImpl()
{
return TeacherDaoImpl.getInstance();
}
 
public static StudentDaoImpl getStudentDaoImpl()
{
return StudentDaoImpl.getInstance();
}
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
92,4 → 92,14
{
return new CourseUnitImpl();
}
 
public static TeacherImpl createTeacherImpl()
{
return new TeacherImpl();
}
 
public static StudentImpl createStudentImpl()
{
return new StudentImpl();
}
}
/impl/src/java/pt/estgp/estgweb/domain/TeacherImpl.java
New file
0,0 → 1,20
package pt.estgp.estgweb.domain;
 
import pt.estgp.estgweb.Globals;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 12:51:32
* @see pt.estgp.estgweb
*/
public class TeacherImpl extends Teacher
{
 
public static final String TEACHER_ROLE = Globals.TEACHER_ROLE;
 
 
public String getManagedRole() {
return TEACHER_ROLE;
}
}
/impl/src/java/pt/estgp/estgweb/web/form/profile/ProfileForm.java
1,24 → 1,89
package pt.estgp.estgweb.web.form.profile;
 
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.views.UserView;
import pt.estgp.estgweb.web.form.ApplicationForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.utils.DatesUtils;
 
import java.util.List;
 
/**
* @author Fabio
* @date 30/Abr/2008
* @time 17:18:57
* @see pt.estgp.estgweb.web.form.profile
*/
public class ProfileForm extends ApplicationForm
{
private User user;
public class ProfileForm extends AddRolesForm {
 
public User getUser() {
return user;
private UserView userView;
private String textToSearch;
private static List<UserView> usersFind;
private long userIDToChange;
private String birthDayDate;
 
public ProfileForm()
{
userView = new UserView();
}
 
public void setUser(User user) {
this.user = user;
public ProfileForm(UserView userView)
{
this.userView = userView;
}
 
public UserView getUserView()
{
return userView;
}
 
public void setUserView(UserView userView)
{
this.userView = userView;
}
 
public String getTextToSearch() {
return textToSearch;
}
 
public void setTextToSearch(String textToSearch) {
this.textToSearch = textToSearch;
}
 
 
public List<UserView> getUsersFind() {
return usersFind;
}
 
public void setUsersFind(List<UserView> usersFind) {
ProfileForm.usersFind = usersFind;
}
 
public long getUserIDToChange() {
return userIDToChange;
}
 
public void setUserIDToChange(long userIDToChange) {
this.userIDToChange = userIDToChange;
}
 
public String getBirthDayDate() {
if(userView.getBirthDate()!=null)
{
this.birthDayDate= DatesUtils.getStringFromDate(userView.getBirthDate());
return birthDayDate;
}
else
{
this.birthDayDate="";
return birthDayDate;
}
 
}
 
public void setBirthDayDate(String birthDayDate) {
this.birthDayDate=birthDayDate;
this.userView.setBirthDate(DatesUtils.getDateFromString(birthDayDate));
}
}
 
/impl/src/java/pt/estgp/estgweb/web/controllers/profile/ProfileController.java
1,16 → 1,23
package pt.estgp.estgweb.web.controllers.profile;
 
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.controllers.AddRolesController;
import pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.form.profile.ProfileForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.views.UserView;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
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.*;
 
18,6 → 25,8
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
 
/**
* @author Jorge Machado
29,42 → 38,104
 
private static final Logger logger = Logger.getLogger(ProfileController.class);
 
 
public ActionForward editUser(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException {
 
String username = request.getParameter("username");
String password = request.getParameter("password");
 
ProfileForm profileForm =(ProfileForm) form;
UserView userView= profileForm.getUserView();
try
{
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{username,password};
UserSession userSession = (UserSession) sm.execute(RequestUtils.getRequester(request),"Authenticate",args);
request.setAttribute(Globals.USER_SESSION_KEY,userSession);
if(!((UserImpl)userSession.getUser()).isNewUser())
return mapping.findForward("success");
else
{
return mapping.findForward("firstTimeAuthenticate");
String[] names = new String[]{"object"};
Object[] args = new Object[]{userView};
User user = (User) sm.execute(RequestUtils.getRequester(request),"EditUser",args,names);
if(userSession.getUser().getId()==user.getId()){
userSession.setUser(user);
request.setAttribute(Globals.USER_SESSION_KEY,userSession);
logger.info("Puting new user info in session:" + user.getId());
}
addMessage(request,"profile.edited.sucess");
return mapping.findForward("success");
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
}
 
public ActionForward changeProfile(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException {
try
{
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
String id = request.getParameter("id");
long userToLoad;
 
if(id!=null)
userToLoad=Long.valueOf(id);
else
userToLoad=userSession.getUser().getId();
 
ProfileForm profileForm = new ProfileForm();
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args = new Object[]{userToLoad};
UserView uV = (UserView) sm.execute(RequestUtils.getRequester(request),"LoadUserById",args,names);
profileForm.setUserView(uV);
profileForm.setSelectedRoles(uV.getUserRoles());
request.setAttribute("ProfileForm",profileForm);
return mapping.findForward("load");
}
catch (AuthenticateException e)
catch(FilterChainFailedException e)
{
ActionMessages actionMessages = new ActionMessages();
actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(e.getMessage()));
saveErrors(request, actionMessages);
return mapping.getInputForward();
return mapping.findForward("error401");
}
catch (Throwable e)
{
if(e instanceof NoCookiesException)
return mapping.findForward("errorNoCookies");
logger.fatal(e,e);
logger.error(e,e);
throw e;
}
return mapping.findForward("error500");
}
 
public ActionForward search(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException {
try
{
ProfileForm fromRequest=(ProfileForm) form;
ProfileForm profileForm = new ProfileForm();
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args = new Object[]{fromRequest.getTextToSearch()};
List<UserView> uVs = (List<UserView>) sm.execute(RequestUtils.getRequester(request),"SearchUser",args,names);
profileForm.setUsersFind(uVs);
request.setAttribute("ProfileForm",profileForm);
return mapping.findForward("search");
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
}
}
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/AnnouncementsController.java
107,8 → 107,14
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"object"};
Object[] args = new Object[]{view,i, i2};
boolean newAnnouncement = true;
if(view.getId() > 0)
newAnnouncement = false;
AnnouncementView aV = (AnnouncementView) sm.execute(RequestUtils.getRequester(request),"CreateAnnouncement",args,names);
addMessage(request,"announcement.edited.success","" + aV.getId());
if(newAnnouncement)
addMessage(request,"announcement.created.success","" + aV.getId());
else
addMessage(request,"announcement.edited.success","" + aV.getId());
return mapping.findForward("success");
}
catch(FilterChainFailedException e)
153,7 → 159,42
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"))};
Boolean status= (Boolean) sm.execute(RequestUtils.getRequester(request),"DeleteAnnouncement",args,names);
if(status)
{
addMessage(request,"announcement.deleted.success","" + request.getParameter("id"));
return mapping.findForward("success");
}
else
{
addMessage(request,"announcement.deleted.fail","" + request.getParameter("id"));
return mapping.findForward("success");
}
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
 
}
 
public ActionForward list(ActionMapping mapping,
/impl/src/java/pt/estgp/estgweb/web/controllers/authenticate/AuthenticateController.java
17,6 → 17,7
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.views.UserView;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
62,8 → 63,13
else
{
ProfileForm profileForm = new ProfileForm();
profileForm.setUser(userSession.getUser());
IServiceManager sm2 = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args2 = new Object[]{userSession.getUser().getId()};
UserView uV = (UserView) sm2.execute(RequestUtils.getRequester(request),"LoadUserById",args2,names);
profileForm.setUserView(uV);
request.setAttribute("ProfileForm",profileForm);
addMessage(request,"profile.enter.first.time",uV.getName());
return mapping.findForward("firstTimeAuthenticate");
}
 
/impl/src/java/pt/estgp/estgweb/examples/DBInit.java
24,6 → 24,7
AbstractDao.getCurrentSession().beginTransaction();
UserImpl user = DomainObjectFactory.createUserImpl();
user.setUsername("super");
user.setSuperuser(true);
user.setName("super user");
user.setRoles("all,admin");
user.setPassword(BytesUtils.getMD5("1"));
/impl/src/doc/estgweb.eap
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/impl/src/hbm/pt/estgp/estgweb/domain/GenericUser.hbm.xml
32,7 → 32,11
<property name="zip" type="string"/>
<property name="country" type="string"/>
<property name="email" type="string"/>
<property name="outEmail" type="string"/>
<property name="phonenumber" type="string"/>
<property name="sex" type="string"/>
<property name="bi" type="string"/>
<property name="birthDate" type="date"/>
<set name="groups" table="group_users">
<key column="user_id"/>
<many-to-many column="group_id" class="pt.estgp.estgweb.domain.Group"/>
41,7 → 45,34
<key column="user_id"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUserAssociation"/>
</set>
<subclass name="pt.estgp.estgweb.domain.UserImpl" discriminator-value="UserImpl"/>
<subclass name="pt.estgp.estgweb.domain.UserImpl" discriminator-value="UserImpl">
<subclass name="pt.estgp.estgweb.domain.UserManagedRoleImpl">
<subclass name="pt.estgp.estgweb.domain.Student">
<meta attribute="extends">pt.estgp.estgweb.domain.UserManagedRoleImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<property name="sigesCode" type="int"/>
<property name="userNameNetpa" type="string"/>
<set name="subscribedUnits" lazy="true">
<key column="studentId"/>
<many-to-many class="pt.estgp.estgweb.domain.CourseUnit" column="courseUnitId"/>
</set>
<subclass name="pt.estgp.estgweb.domain.StudentImpl" discriminator-value="StudentImpl"/>
</subclass>
<subclass name="pt.estgp.estgweb.domain.Teacher">
<meta attribute="extends">pt.estgp.estgweb.domain.UserManagedRoleImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<property name="sigesCode" type="int"/>
<property name="userNameNetpa" type="string"/>
<property name="academicName" type="string"/>
<property name="employerName" type="string"/>
<set name="teachedUnits" lazy="true">
<key column="studentId"/>
<many-to-many class="pt.estgp.estgweb.domain.CourseUnit" column="courseUnitId"/>
</set>
<subclass name="pt.estgp.estgweb.domain.TeacherImpl" discriminator-value="TeacherImpl"/>
</subclass>
</subclass>
</subclass>
</subclass>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
21,7 → 21,7
<property name="courseYear" type="string" />
<property name="institutionCode" type="string" />
<property name="status" type="boolean" />
 
<many-to-one name="courseunit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitImpl" discriminator-value="CourseUnitImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/Announcement.hbm.xml
22,6 → 22,10
<property name="targetRoles" type="text"/>
<property name="type" type="string" />
<property name="url" type="string"/>
<property name="internalUrlPath" type="string"/>
<property name="internalUrlServer" type="string"/>
<property name="internalUrlInclude" type="boolean"/>
<property name="style" type="string"/>
<property name="status" type="boolean" />
<property name="counter" type="integer" />
<many-to-one name="bigImage" column="bigImage" class="pt.estgp.estgweb.domain.Image" lazy="no-proxy" outer-join="false" cascade="all" />
/impl/src/web/auth/autenticationok.jsp
7,5 → 7,8
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
 
<bean:message key="authentication.ok"/> <bean:write name="UserSession" property="name"/>
 
<jomm:messages/>
<bean:message key="authentication.ok"/> <bean:write name="UserSession" property="user.name"/>
/impl/src/web/admin/profile/findUser.jsp
New file
0,0 → 1,36
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>
 
<jomm:messages/>
<html:form action="/profile">
<input type="hidden" name="dispatch" value="search">
<html:hidden property="userView.id"/>
<html:hidden property="userView.userRoles"/>
 
<table class="form">
<tr>
<th>
<bean:message key="profile.search.user"/>
</th>
<td>
<html:text property="textToSearch" maxlength="50"/>
</td>
<td>
<input type="button" onclick="set(this.form,'search');this.form.submit()" value="<bean:message key="search"/>">
</td>
</tr>
</table>
 
<logic:present name="ProfileForm" property="usersFind">
<ul>
<logic:iterate id="userView" name="ProfileForm" property="usersFind" type="pt.estgp.estgweb.domain.views.UserView">
<li>${userView.name} <html:link action="/profile?id=${userView.id}&dispatch=changeProfile"><bean:message key="edit"/></html:link></li>
</logic:iterate>
</ul>
</logic:present>
</html:form>
/impl/src/web/admin/profile/profile.jsp
New file
0,0 → 1,141
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %>
 
 
<jomm:messages/>
<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>
<html:form action="/profile">
<input type="hidden" name="dispatch" value="editUser">
<html:hidden property="userView.id"/>
<html:hidden property="userView.userRoles"/>
<bean:message key="profile.edit"/>
 
<table class="form">
<estgweb:isNotAdmin>
<tr>
<th><bean:message key="login.first.time.username"/></th>
<td>
<html:text property="userView.username" maxlength="250" readonly="true" styleClass="readOnly"/>
</td>
</tr>
</estgweb:isNotAdmin>
<estgweb:isAdmin>
<tr>
<th><bean:message key="login.first.time.username"/></th>
<td>
<html:text property="userView.username" maxlength="250"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.targets"/></th>
<td>
<html:select property="targetRolesStr">
<logic:present name="ProfileForm" property="targetRoles">
<logic:iterate id="item" name="ProfileForm" property="targetRoles">
<jomm:option itemName="item" comparableObjectName="ProfileForm" comparableObjectProperty="targetRolesStr">
<jomm:message patternMessage="user.role.{0}" name0="item"/>
</jomm:option>
</logic:iterate>
<input type="button" value="<bean:message key="add"/>" onclick="set(this.form,'addRole');this.form.submit();">
</logic:present>
</html:select>
<logic:present name="ProfileForm" property="selectedRoles">
<logic:notEmpty name="ProfileForm" property="selectedRoles">
<ul>
<logic:iterate id="item" name="ProfileForm" property="selectedRoles">
<li><jomm:message patternMessage="user.role.{0}" name0="item"/><input type="button" value="<bean:message key="remove"/>" onclick="AnnouncementsForm.role.value='${item}';set(this.form,'removeRole');this.form.submit();"></li>
</logic:iterate>
</ul>
</logic:notEmpty>
</logic:present>
</td>
</tr>
</estgweb:isAdmin>
<tr>
<th><bean:message key="login.first.time.bi"/></th>
<td>
<html:text property="userView.bi" maxlength="250" readonly="true" styleClass="readOnly"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.birthday.date"/></th>
<td>
<html:text property="birthDayDate" maxlength="100" readonly="true" styleClass="readOnly"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.name"/></th>
<td>
<html:text property="userView.name" maxlength="250" readonly="true" styleClass="readOnly"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.address"/></th>
<td>
<html:text property="userView.address" maxlength="250" readonly="true" styleClass="readOnly"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.zip"/></th>
<td>
<html:text property="userView.zip" maxlength="8" readonly="true" styleClass="readOnly"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.country"/></th>
<td>
<html:text property="userView.country" maxlength="100" readonly="true" styleClass="readOnly"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.phone.number"/></th>
<td>
<html:text property="userView.phonenumber" maxlength="250" styleClass="readOnly"/>
</td>
</tr>
<estgweb:isNotAdmin>
<tr>
<th><bean:message key="login.first.time.email.institucion"/></th>
<td>
<html:text property="userView.email" maxlength="250" readonly="true" styleClass="readOnly"/>
</td>
</tr>
</estgweb:isNotAdmin>
<estgweb:isAdmin>
<tr>
<estgweb:isAdmin>
<th><bean:message key="login.first.time.email.institucion2"/></th>
</estgweb:isAdmin>
<estgweb:isNotAdmin>
<th><bean:message key="login.first.time.email.institucion"/></th>
</estgweb:isNotAdmin>
<td>
<html:text property="userView.email" maxlength="250"/>
</td>
</tr>
</estgweb:isAdmin>
<tr>
<th><bean:message key="login.first.time.email.secundary"/></th>
<td>
<html:text property="userView.outEmail" maxlength="250"/>
</td>
</tr>
<estgweb:isNotAdmin>
<tr>
<th><bean:message key="profile.email.change"/></th>
</tr>
</estgweb:isNotAdmin>
<tr class="buttons">
<td colspan="2">
<input type="button" onclick="set(this.form,'editUser');this.form.submit()" value="<bean:message key="confirm"/>"/>
</td>
</tr>
</table>
</html:form>
/impl/src/web/admin/announcements/submitAnnouncement.jsp
148,6 → 148,22
 
<tr>
<th>
<bean:message key="announcement.image.style"/>
</th>
<td>
<html:select property="announcementView.style">
<html:option value="announcement.style.img.left"><bean:message key="announcement.style.img.left"/></html:option>
<html:option value="announcement.style.img.right"><bean:message key="announcement.style.img.right"/></html:option>
<html:option value="announcement.style.img.top"><bean:message key="announcement.style.img.top"/></html:option>
<html:option value="announcement.style.img.top"><bean:message key="announcement.style.img.embedded.left"/></html:option>
<html:option value="announcement.style.img.top"><bean:message key="announcement.style.img.embedded.right"/></html:option>
</html:select>
</td>
</tr>
 
 
<tr>
<th>
<bean:message key="announcement.linkAnnouncement"/>
</th>
<td>
159,8 → 175,27
<html:text property="url" maxlength="250"/>
</td>
</tr>
 
 
<tr>
<th>
<bean:message key="announcement.internalLinkAnnouncement"/>
</th>
<td>
<html:select property="announcementView.internalUrlServer">
<html:option value="true"><bean:message key="announcement.internal.url.include.yes"/></html:option>
<html:option value="false"><bean:message key="announcement.internal.url.include.no"/></html:option>
</html:select>
<html:text property="announcementView.internalUrlPath"/>
<html:select property="announcementView.internalUrlServer">
<html:option value="estg">ESTG</html:option>
<html:option value="ionline">IONLINE</html:option>
</html:select>
</td>
</tr>
 
<tr>
<th>
<bean:message key="announcement.text"/>
</th>
<td>
/impl/src/web/css/style.css
65,7 → 65,7
 
TD.rightPage, TD.rightPagePortal {
VERTICAL-ALIGN: top;
/*WIDTH: 160px;*/
/*WIDTH: 160px;*/
}
 
.rightPagePosition {
81,9 → 81,13
/************************************** Content Structure ********************************/
.contentPortal {
padding-left: 10px;
 
}
 
.content h2 a {
font-size: 0.8em;
}
 
.content h2 {
font-size: 1em;
}
357,14 → 361,14
 
.portalLeftAnnouncements table {
table-layout: fixed;
/*width: 180px;*/
/*width: 180px;*/
padding-top: 10px;
font-size: 0.8em;
}
 
.portalRightAnnouncements table {
table-layout: fixed;
/*width: 250px;*/
/*width: 250px;*/
font-size: 0.8em;
}
 
387,7 → 391,7
/* todo FABIO
todo Left Manus???? ao pe de portalMenus isto esta uma confusao*/
.navleftMenu {
/*width: 180px;*/
/*width: 180px;*/
padding-left: 10px;
}
 
647,12 → 651,12
}
#leftMenuModule UL {
MARGIN: 0;
/*WIDTH: 155px;*/
/*WIDTH: 155px;*/
}
.linkLeftMenu UL li
{
width:110px;
width:110px;
 
}
 
 
692,7 → 696,7
 
.boxHorizontal {
padding-top: 5px;
 
}
 
.form th, .boxHorizontal th {
743,6 → 747,20
width: 100px;
}
 
 
.form input.readOnly {
background-color:#cccccc;
border-top-width: 1px;
color:#FFFFFF;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
}
 
/* PAGE LAYOUTS */
 
.seccao, .seccao p {
/impl/src/web/layout/navigationLeft.jsp
6,26 → 6,34
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %>
 
<div id="leftPagePosition">
<%--ANONIMOUS MENUS--%>
<jsp:include page="/layout/navigationLeftAdmin.jsp"/>
<jsp:include page="/layout/navigationLeftMenu.jsp"/>
<div id="leftPagePosition">
<%--ANONIMOUS MENUS--%>
<jsp:include page="/layout/navigationLeftAdmin.jsp"/>
<jsp:include page="/layout/navigationLeftMenu.jsp"/>
 
<%-- USER MENUS--%>
<div id="leftMenuModule">
<div class="linkLeftMenu">
<div class="listClean">
<%-- USER MENUS--%>
<div id="leftMenuModule">
<div class="linkLeftMenu">
<div class="listClean">
<estgweb:isAuthenticated>
<%--SERVICES--%>
<ul>
<h2><bean:message key="services"/></h2>
<li>
<html:link action="/startEditProfile"><bean:message key="edit.profile"/></html:link>
</li>
<li>
<html:link action="/startSubmitAnnouncement"><bean:message key="submit.announcement"/></html:link>
</li>
<li>
<html:link action="/startSubmitBlog"><bean:message key="submit.blog"/></html:link>
</li>
 
<estgweb:isAdmin>
<h2><bean:message key="administrative.services"/></h2>
<li>
<html:link action="/findProfile"><bean:message key="edit.user.profile"/></html:link>
</li>
</estgweb:isAdmin>
<!--OTHER PLACES-->
<h2><bean:message key="Others"/></h2>
<li>
35,8 → 43,8
<a href="<%=request.getContextPath()%>/proxy/layout4/estgp/">ESTG SITE TESTE</a>
</li>
</ul>
</estgweb:isAuthenticated>
</div>
</estgweb:isAuthenticated>
</div>
</div>
</div>
</div>
/impl/src/web/public/announcements/loadAnnouncement.jsp
1,40 → 1,137
<%@ page import="jomm.utils.MessageResources" %>
<%@ page import="org.apache.struts.util.RequestUtils" %>
<%@ page import="pt.estgp.estgweb.domain.UserSessionImpl" %>
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page import="pt.estgp.estgweb.domain.enums.AnnouncementStyleEnum" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="Announcement" type="pt.estgp.estgweb.domain.views.AnnouncementView" scope="request"/>
<% UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSession(request);%>
<html:link href="http://www.sapo.pt"></html:link>
<div class="seccao">
<h2>${Announcement.title}
<% if(userSession.getUser()!=null){
if((userSession.getUser().getId()==Announcement.getOwnerID())||(userSession.getUser().getRoles().contains("all"))||(userSession.getUser().getRoles().contains("admin")))
{%>
<html:link action="/loadAnnouncement?id=${Announcement.id}&dispatch=edit">Editar</html:link>
<html:link action="/loadAnnouncement?id=${Announcement.id}&dispatch=delete">Apagar</html:link>
<%}
}%>
</h2>
<%
AnnouncementStyleEnum styleEnum = Announcement.getStyleEnum();
if (styleEnum == AnnouncementStyleEnum.imgEmbeddedLeft || styleEnum == AnnouncementStyleEnum.imgEmbeddedRight) {
String align = "left";
if (styleEnum == AnnouncementStyleEnum.imgEmbeddedRight)
align = "right";
%>
 
<div class="seccao">
<h2>${Announcement.title}</h2>
<p>
<%
if(Announcement.getBigImage() != null)
{
%>
 
<p>
<div class="imageAnnouncement">
<img align="left" alt="<%=Announcement.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>">
<%
if (Announcement.getBigImage() != null) {
%>
<img align="<%=align%>" alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>">
<%
} else if (Announcement.getSmallImage() != null) {
%>
<img align="<%=align%>" alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getSmallImage().getId()%>">
<%
}
%>
</div>
${Announcement.formatedText}
<%
}
else if(Announcement.getSmallImage() != null)
{
if (Announcement.getUrl() != null) {
%>
<div class="imageAnnouncement">
<img align="left" alt="<%=Announcement.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getSmallImage().getId()%>">
</div>
<%
}
%>
${Announcement.text}
<%
if(Announcement.getUrl()!=null)
{
%>
<html:link href="${Announcement.url}">Ver +</html:link>
<%
}%>
</p>
</p>
<%
} else if (styleEnum == AnnouncementStyleEnum.imgTop) {
%>
<table>
<tr>
<td>
<div class="imageAnnouncement">
<%
if (Announcement.getBigImage() != null) {
%>
<img alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>">
<%
} else if (Announcement.getSmallImage() != null) {
%>
<img alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getSmallImage().getId()%>">
<%
}
%>
</div>
</td>
</tr>
<tr>
<td>${Announcement.formatedText}</td>
</tr>
</table>
<%
} else if (styleEnum == AnnouncementStyleEnum.imgLeft) {
%>
<table>
<tr>
<td>
<div class="imageAnnouncement">
<%
if (Announcement.getBigImage() != null) {
%>
<img alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>">
<%
} else if (Announcement.getSmallImage() != null) {
%>
<img alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getSmallImage().getId()%>">
<%
}
%>
</div>
</td>
<td>${Announcement.formatedText}</td>
</tr>
</table>
<%
} else if (styleEnum == AnnouncementStyleEnum.imgRight) {
%>
<table>
<tr>
<td>${Announcement.formatedText}</td>
<td>
<div class="imageAnnouncement">
<%
if (Announcement.getBigImage() != null) {
%>
<img alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>">
<%
} else if (Announcement.getSmallImage() != null) {
%>
<img alt="<%=Announcement.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getSmallImage().getId()%>">
<%
}
%>
</div>
</td>
</tr>
</table>
<%
}
%>
</div>
/impl/gen/java/pt/estgp/estgweb/domain/Course.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
20,11 → 20,12
private String courseYear;
private String institutionCode;
private boolean status;
private CourseUnit courseunit;
 
public CourseUnit() {
}
 
public CourseUnit(Date saveDate, String name, String code, String courseCode, String courseName, String courseYear, String institutionCode, boolean status) {
public CourseUnit(Date saveDate, String name, String code, String courseCode, String courseName, String courseYear, String institutionCode, boolean status, CourseUnit courseunit) {
this.saveDate = saveDate;
this.name = name;
this.code = code;
33,6 → 34,7
this.courseYear = courseYear;
this.institutionCode = institutionCode;
this.status = status;
this.courseunit = courseunit;
}
public long getId() {
105,6 → 107,13
public void setStatus(boolean status) {
this.status = status;
}
public CourseUnit getCourseunit() {
return this.courseunit;
}
public void setCourseunit(CourseUnit courseunit) {
this.courseunit = courseunit;
}
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Teacher.java
New file
0,0 → 1,74
package pt.estgp.estgweb.domain;
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
* Teacher generated by hbm2java
*/
public abstract class Teacher extends pt.estgp.estgweb.domain.UserManagedRoleImpl implements java.io.Serializable {
 
 
private int sigesCode;
private String userNameNetpa;
private String academicName;
private String employerName;
private Set<CourseUnit> teachedUnits = new HashSet<CourseUnit>(0);
 
public Teacher() {
}
 
public Teacher(Date saveDate, boolean superuser, String name, String username, String password, String roles, String address, String zip, String country, String email, String outEmail, String phonenumber, String sex, String bi, Date birthDate, Set<Group> groups, Set<CourseUserAssociation> courses, int sigesCode, String userNameNetpa, String academicName, String employerName, Set<CourseUnit> teachedUnits) {
super(saveDate, superuser, name, username, password, roles, address, zip, country, email, outEmail, phonenumber, sex, bi, birthDate, groups, courses);
this.sigesCode = sigesCode;
this.userNameNetpa = userNameNetpa;
this.academicName = academicName;
this.employerName = employerName;
this.teachedUnits = teachedUnits;
}
public int getSigesCode() {
return this.sigesCode;
}
public void setSigesCode(int sigesCode) {
this.sigesCode = sigesCode;
}
public String getUserNameNetpa() {
return this.userNameNetpa;
}
public void setUserNameNetpa(String userNameNetpa) {
this.userNameNetpa = userNameNetpa;
}
public String getAcademicName() {
return this.academicName;
}
public void setAcademicName(String academicName) {
this.academicName = academicName;
}
public String getEmployerName() {
return this.employerName;
}
public void setEmployerName(String employerName) {
this.employerName = employerName;
}
public Set<CourseUnit> getTeachedUnits() {
return this.teachedUnits;
}
public void setTeachedUnits(Set<CourseUnit> teachedUnits) {
this.teachedUnits = teachedUnits;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
19,14 → 19,18
private String zip;
private String country;
private String email;
private String outEmail;
private String phonenumber;
private String sex;
private String bi;
private Date birthDate;
private Set<Group> groups = new HashSet<Group>(0);
private Set<CourseUserAssociation> courses = new HashSet<CourseUserAssociation>(0);
 
public User() {
}
 
public User(Date saveDate, boolean superuser, String name, String username, String password, String roles, String address, String zip, String country, String email, String phonenumber, Set<Group> groups, Set<CourseUserAssociation> courses) {
public User(Date saveDate, boolean superuser, String name, String username, String password, String roles, String address, String zip, String country, String email, String outEmail, String phonenumber, String sex, String bi, Date birthDate, Set<Group> groups, Set<CourseUserAssociation> courses) {
super(saveDate, superuser, name);
this.username = username;
this.password = password;
35,7 → 39,11
this.zip = zip;
this.country = country;
this.email = email;
this.outEmail = outEmail;
this.phonenumber = phonenumber;
this.sex = sex;
this.bi = bi;
this.birthDate = birthDate;
this.groups = groups;
this.courses = courses;
}
89,6 → 97,13
public void setEmail(String email) {
this.email = email;
}
public String getOutEmail() {
return this.outEmail;
}
public void setOutEmail(String outEmail) {
this.outEmail = outEmail;
}
public String getPhonenumber() {
return this.phonenumber;
}
96,6 → 111,27
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public String getSex() {
return this.sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBi() {
return this.bi;
}
public void setBi(String bi) {
this.bi = bi;
}
public Date getBirthDate() {
return this.birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
public Set<Group> getGroups() {
return this.groups;
}
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Image.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GenericUserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/TeacherDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class Teacher.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.Teacher;
 
 
public class TeacherDao extends AbstractDao<Teacher> {
//public class TeacherDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(TeacherDao.class);
 
protected static TeacherDao myInstance = null;
 
protected TeacherDao(){
super();
}
 
public static TeacherDao getInstance() {
if (myInstance == null)
myInstance = new TeacherDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return Teacher.class;
}
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserSessionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ImageDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/TesteDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/StudentDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class Student.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.Student;
 
 
public class StudentDao extends AbstractDao<Student> {
//public class StudentDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(StudentDao.class);
 
protected static StudentDao myInstance = null;
 
protected StudentDao(){
super();
}
 
public static StudentDao getInstance() {
if (myInstance == null)
myInstance = new StudentDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return Student.class;
}
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogPostDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUserAssociationDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GroupDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 7/Mai/2008 20:26:58 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:32:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/Blog.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Student.java
New file
0,0 → 1,56
package pt.estgp.estgweb.domain;
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
* Student generated by hbm2java
*/
public abstract class Student extends pt.estgp.estgweb.domain.UserManagedRoleImpl implements java.io.Serializable {
 
 
private int sigesCode;
private String userNameNetpa;
private Set<CourseUnit> subscribedUnits = new HashSet<CourseUnit>(0);
 
public Student() {
}
 
public Student(Date saveDate, boolean superuser, String name, String username, String password, String roles, String address, String zip, String country, String email, String outEmail, String phonenumber, String sex, String bi, Date birthDate, Set<Group> groups, Set<CourseUserAssociation> courses, int sigesCode, String userNameNetpa, Set<CourseUnit> subscribedUnits) {
super(saveDate, superuser, name, username, password, roles, address, zip, country, email, outEmail, phonenumber, sex, bi, birthDate, groups, courses);
this.sigesCode = sigesCode;
this.userNameNetpa = userNameNetpa;
this.subscribedUnits = subscribedUnits;
}
public int getSigesCode() {
return this.sigesCode;
}
public void setSigesCode(int sigesCode) {
this.sigesCode = sigesCode;
}
public String getUserNameNetpa() {
return this.userNameNetpa;
}
public void setUserNameNetpa(String userNameNetpa) {
this.userNameNetpa = userNameNetpa;
}
public Set<CourseUnit> getSubscribedUnits() {
return this.subscribedUnits;
}
public void setSubscribedUnits(Set<CourseUnit> subscribedUnits) {
this.subscribedUnits = subscribedUnits;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
22,6 → 22,10
private String targetRoles;
private String type;
private String url;
private String internalUrlPath;
private String internalUrlServer;
private boolean internalUrlInclude;
private String style;
private boolean status;
private Integer counter;
private Image bigImage;
31,7 → 35,7
public Announcement() {
}
 
public Announcement(Date saveDate, Date startDate, Date expireDate, String subTargets, String title, String choosedOwnerRole, String text, String targetRoles, String type, String url, boolean status, Integer counter, Image bigImage, Image smallImage, GenericUser owner) {
public Announcement(Date saveDate, Date startDate, Date expireDate, String subTargets, String title, String choosedOwnerRole, String text, String targetRoles, String type, String url, String internalUrlPath, String internalUrlServer, boolean internalUrlInclude, String style, boolean status, Integer counter, Image bigImage, Image smallImage, GenericUser owner) {
this.saveDate = saveDate;
this.startDate = startDate;
this.expireDate = expireDate;
42,6 → 46,10
this.targetRoles = targetRoles;
this.type = type;
this.url = url;
this.internalUrlPath = internalUrlPath;
this.internalUrlServer = internalUrlServer;
this.internalUrlInclude = internalUrlInclude;
this.style = style;
this.status = status;
this.counter = counter;
this.bigImage = bigImage;
133,6 → 141,34
public void setUrl(String url) {
this.url = url;
}
public String getInternalUrlPath() {
return this.internalUrlPath;
}
public void setInternalUrlPath(String internalUrlPath) {
this.internalUrlPath = internalUrlPath;
}
public String getInternalUrlServer() {
return this.internalUrlServer;
}
public void setInternalUrlServer(String internalUrlServer) {
this.internalUrlServer = internalUrlServer;
}
public boolean isInternalUrlInclude() {
return this.internalUrlInclude;
}
public void setInternalUrlInclude(boolean internalUrlInclude) {
this.internalUrlInclude = internalUrlInclude;
}
public String getStyle() {
return this.style;
}
public void setStyle(String style) {
this.style = style;
}
public boolean isStatus() {
return this.status;
}
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Group.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 7/Mai/2008 20:26:52 by Hibernate Tools 3.2.0.b9
// Generated 15/Mai/2008 12:31:57 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/etc/bugs/waiting/waiting.txt
--- impl/etc/bugs/resolved/resolved.txt (revision 0)
+++ impl/etc/bugs/resolved/resolved.txt (revision 132)
@@ -0,0 +1,34 @@
+2008-05-12 11:23:09,548 ERROR UserSessionFilter:doFilter():86 - java.lang.NullPointerException
+java.lang.NullPointerException
+ at pt.utl.ist.berserk.storage.FilterChainProxy.getExpression(FilterChainProxy.java:194)
+ at pt.utl.ist.berserk.logic.filterManager.FilterBroker.(FilterBroker.java:118)
+ at pt.utl.ist.berserk.logic.filterManager.FilterBrokerFactory.getFilterBroker(FilterBrokerFactory.java:171)
+ at pt.utl.ist.berserk.logic.serviceManager.ServiceManager$ServiceConfiguration.(ServiceManager.java:118)
+ at pt.utl.ist.berserk.logic.serviceManager.ServiceManager.registerService(ServiceManager.java:188)
+ at pt.utl.ist.berserk.logic.serviceManager.ServiceManager.registerServices(ServiceManager.java:171)
+ at pt.utl.ist.berserk.logic.serviceManager.ServiceManager.(ServiceManager.java:179)
+ at pt.utl.ist.berserk.logic.serviceManager.ServiceManager.getInstance(ServiceManager.java:199)
+ at pt.estgp.estgweb.web.UserSessionProxy.loadUserSession(UserSessionProxy.java:65)
+ at pt.estgp.estgweb.web.filters.UserSessionFilter.doFilter(UserSessionFilter.java:53)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
+ at jomm.web.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49)
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
+ at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
+ at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
+ at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
+ at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
+ at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
+ at java.lang.Thread.run(Thread.java:595)
+
+Resolução:
+Filter Chain com nome diferente do especificado no serviço
+
+#########################################################################################################################################
\ No newline at end of file