Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 808 → Rev 819

/impl/conf/language/MessageResourcesEmail.properties
3,15 → 3,15
# MAIL MESSAGE RESOURCES
#
################################################################################
module.Email=Serviço de Email
pop.no.messages=Não tem mensagens na sua caixa de correio
pop.title=Ir para <a target="_blank" href="http://mail.estgp.pt/exchange/{0}">WEBMAIL</a>
pop.last.messages=Últimas mensagens de Email
module.Email=Servi\u00e7o de Email
pop.no.messages=N\u00e3o tem mensagens na sua caixa de correio
pop.title=Ir para <a target="_blank" href="http://mail.google.com/a/estgp.pt/{0}">WEBMAIL</a>
pop.last.messages=\u00daltimas mensagens de Email
pop.text=Mensagem
pop.from=De
pop.to=Para
pop.subject=Assunto
pop.loading=Carregando mensagens de Email...
pop.date=Recebido
pop.not.configured=A caixa POP do seu servidor de Email não está configurado. A sigla POP refere-se ao protocolo de leitura de mensagens em servidores de email externos. Por favor configure o seu servidor de POP nos seus dados de perfil<br>(exemplo na ESTG:<br> pop = mail.estgp.pt)
pop.danger.messages=Existem mensagens na sua caixa de correio da escola que estão incorrectamente formatadas e que podem prejudicar a vizualização deste sítio. Por favor remova-as da sua caixa para que as restantes possam ser aqui apresentadas.
pop.not.configured=A caixa POP do seu servidor de Email n\u00e3o est\u00e1 configurado. A sigla POP refere-se ao protocolo de leitura de mensagens em servidores de email externos. Por favor configure o seu servidor de POP nos seus dados de perfil<br>(exemplo na ESTG:<br> pop = mail.estgp.pt)
pop.danger.messages=Existem mensagens na sua caixa de correio da escola que est\u00e3o incorrectamente formatadas e que podem prejudicar a vizualiza\u00e7\u00e3o deste s\u00edtio. Por favor remova-as da sua caixa para que as restantes possam ser aqui apresentadas.
/impl/conf/WEB-INF/struts/tiles-assessments.xml
New file
0,0 → 1,60
<?xml version="1.0" encoding="UTF-8" ?>
 
<!--<!DOCTYPE tiles-definitions PUBLIC-->
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"-->
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">-->
 
<tiles-definitions>
 
<definition name="page.submit.assessment.from.serviceZone" extends="page.separators.serviceZone">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavCreateAssessment.jsp"/>
<put name="body" value="/user/assessments/submitAssessment.jsp"/>
</definition>
 
<definition name="page.list.assessments.from.serviceZone" extends="page.separators.serviceZone">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavListAssessment.jsp"/>
<put name="body" value="/user/assessments/listAssessments.jsp"/>
</definition>
 
<definition name="page.submit.schedule.from.serviceZone" extends="page.separators.serviceZone">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavScheduleAssessment.jsp"/>
<put name="body" value="/user/assessments/scheduleAssessment.jsp"/>
</definition>
 
<definition name="page.submit.editSchedule.from.serviceZone" extends="page.separators.serviceZone">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavEditScheduleAssessment.jsp"/>
<put name="body" value="/user/assessments/editScheduleAssessment.jsp"/>
</definition>
 
<definition name="page.submit.assessment.response.from.home" extends="page.separators.home">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/home/topnavResponseAssessment.jsp"/>
<put name="body" value="/user/assessments/submitAssessmentResponse.jsp"/>
</definition>
 
<definition name="page.configure.correct.assessment.from.serviceZone" extends="page.separators.home">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavConfigureCorrectAssessment.jsp"/>
<put name="body" value="/user/assessments/switchCorrectAssessment.jsp"/>
</definition>
<definition name="page.list.questionsOrResponsesCorrect.from.serviceZone" extends="page.separators.home">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavAssessmentToCorrect.jsp"/>
<put name="body" value="/user/assessments/listQuestionsOrResponsesToCorrect.jsp"/>
</definition>
<definition name="page.submit.correct.assessment.response.from.serviceZone" extends="page.separators.home">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavCorrectAssessmentResponse.jsp"/>
<put name="body" value="/user/assessments/submitCorrectAssessmentResponse.jsp"/>
</definition>
<definition name="page.submit.correct.question.responses.from.serviceZone" extends="page.separators.home">
<put name="title" value="Prova"/>
<put name="topnav" value="/user/serviceZone/topnavCorrectAssessmentQuestionResponses.jsp"/>
<put name="body" value="/user/assessments/submitCorrectQuestionResponses.jsp"/>
</definition>
 
</tiles-definitions>
/impl/conf/WEB-INF/struts/struts-assessment.xml
New file
0,0 → 1,141
<?xml version="1.0" encoding="UTF-8"?>
 
<!--<!DOCTYPE struts-config PUBLIC-->
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"-->
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">-->
 
<struts-config>
 
<form-beans>
<form-bean type="pt.estgp.estgweb.web.form.assessments.AssessmentsForm" name="AssessmentsForm"/>
</form-beans>
 
<global-exceptions>
 
</global-exceptions>
 
<global-forwards>
 
</global-forwards>
 
<action-mappings>
 
<action path="/user/submitAssessmentFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.submit.assessment.from.serviceZone"
validate="true">
<forward name="serviceZone" path="page.separators.serviceZone"/>
</action>
 
<action path="/user/scheduleAssessmentFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.submit.schedule.from.serviceZone"
validate="true">
<forward name="serviceZone" path="page.separators.serviceZone"/>
</action>
 
<action path="/user/editScheduleAssessmentFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.submit.editSchedule.from.serviceZone"
validate="false">
<forward name="serviceZone" path="page.separators.serviceZone"/>
</action>
 
<action path="/user/startAssessmentResponseFromHome" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=loadResponse&amp;from=Home"/>
<action path="/user/submitAssessmentResponseFromHome"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.submit.assessment.response.from.home"
validate="false">
<forward name="home" path="page.separators.home"/>
</action>
 
<action path="/user/submitConfigureCorrectAssessmentFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.configure.correct.assessment.from.serviceZone"
validate="false">
<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/>
</action>
 
<action path="/user/chooseQuestionOrAssessmentToCorrectFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.list.questionsOrResponsesCorrect.from.serviceZone"
validate="false">
<!--<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/>-->
</action>
 
<!--SUBMETER CORRECCAO A UMA PROVA INDIVIDUAL-->
<action path="/user/startSubmitCorrectAssessmentResponseFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=loadCorrectResponse&amp;from=ServiceZone"/>
<action path="/user/submitCorrectAssessmentResponseFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.submit.correct.assessment.response.from.serviceZone"
validate="false">
<forward name="serviceZone" path="page.separators.serviceZone"/>
<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/>
</action>
 
<!--SUBMETER CORRECCAO ÀS RESPOSTAS DE UMA QUESTÃO INDIVIDUAL-->
<action path="/user/startSubmitCorrectQuestionResponsesFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=loadQuestionResponses&amp;from=ServiceZone"/>
<action path="/user/submitCorrectQuestionResponsesFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.submit.correct.question.responses.from.serviceZone"
validate="false">
<forward name="serviceZone" path="page.separators.serviceZone"/>
<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/>
</action>
 
<!--<action path="/user/startLoadSurveyNodeGraphs" forward="page.load.survey.node.graphs"/>-->
<!--<action path="/user/startListSurveyStats" forward="/user/surveysControllerFromServiceZone.do?dispatch=listStats"/>-->
<action path="/user/generateEvaluationsPdfFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=generateEvaluationsPdf&amp;from=ServiceZone"/>
<action path="/user/startCorrectAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=startCorrect&amp;from=ServiceZone"/>
<action path="/user/startScheduleAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=schedule&amp;from=ServiceZone"/>
<action path="/user/startEditScheduleAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=editSchedule&amp;from=ServiceZone"/>
<action path="/user/startCloneAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=clone&amp;from=ServiceZone"/>
<action path="/user/startEditAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=edit&amp;from=ServiceZone"/>
<action path="/user/startListAssessmentsFromServiceZone" forward="page.list.assessments.from.serviceZone"/>
<action path="/user/startSubmitAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=create&amp;from=ServiceZone"/>
<action path="/user/assessmentsControllerFromServiceZone"
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController"
name="AssessmentsForm"
scope="request"
parameter="dispatch"
input="page.submit.assessment.from.serviceZone"
validate="false">
<forward name="listAssessments" path="page.list.assessments.from.serviceZone"/>
<forward name="loadQuestionResponses" path="page.submit.correct.question.responses.from.serviceZone"/>
<forward name="loadCorrectResponse" path="page.submit.correct.assessment.response.from.serviceZone"/>
<forward name="startCorrect" path="page.configure.correct.assessment.from.serviceZone"/>
<forward name="response" path="page.submit.assessment.response.from.home"/>
<!--<forward name="stats" path="page.list.survey.stats"/>-->
<forward name="schedule" path="page.submit.schedule.from.serviceZone"/>
<forward name="editSchedule" path="page.submit.editSchedule.from.serviceZone"/>
<forward name="serviceZone" path="page.separators.serviceZone"/>
<forward name="from.add.role" path="page.submit.assessment.from.serviceZone"/>
</action>
 
</action-mappings>
 
</struts-config>
/impl/conf/app.properties
442,7 → 442,8
pop.container.use=true
#pop.container.use=false
pop.web.interface=http://mail.estgp.pt/exchange
pop.server=mail.estgp.pt
#pop.server=mail.estgp.pt
pop.server=pop.gmail.com
pop.use.default.server=true
pop.use.username.and.password.first.authentication=true
pop.max.messages=15
575,4 → 576,4
assessments.correctA.0=anonymous
assessments.correctA.1=notAnonymous
assessments.correction.selection.0=question
assessments.correction.selection.1=assessment
assessments.correction.selection.1=assessment
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java
56,14 → 56,17
{
valid=true;
message.addRecipient(email.getType(),new InternetAddress(recipient));
logger.info("Adding recipient to transport:"+recipient);
}
}
if(valid)
{
 
String content = TemplateUtils.getOrLoadTemplate(Globals.TEMPLATE_EMAIL_PATH + "/" + email.getEmailTemplateName());
// Format the mail message
String fullMessage = MessageFormat.format(content, email.getArguments().toArray());
 
logger.info("FROM:" + email.getFrom());
message.setFrom(new InternetAddress(email.getFrom()));
message.setSubject(email.getSubject());
message.setText(fullMessage,"utf-8");
74,7 → 77,9
else
message.setHeader("Content-Type","text/plain; charset=\"utf-8\"");
message.setHeader("Content-Transfer-Encoding", "quoted-printable");
logger.info("Sending email to transport:"+fullMessage);
 
 
Transport.send(message);
}
}
167,7 → 172,16
if(Email.validEmail(u.getOutEmail()))
recipients.add(u.getOutEmail());
}
logger.info("subject: " + subject);
logger.info("user: " + user.getEmail());
logger.info("template: " + template);
logger.info("arguments:");
for(String arg: arguments)
logger.info(arg);
logger.info("recipients:");
for(String rec: recipients)
logger.info(rec);
logger.info("arguments end");
return new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC);
}
 
/impl/src/java/pt/estgp/estgweb/services/email/ReadEmailService.java
9,6 → 9,7
import pt.estgp.estgweb.services.email.impl.DefaultPopEmail;
import pt.estgp.estgweb.services.email.impl.DefaultAddress;
 
import com.sun.mail.pop3.POP3SSLStore;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import java.util.List;
33,10 → 34,44
public class ReadEmailService implements IService
{
 
private static final boolean POP_SECURE = true; //todo mudar isto
private static final String POP_MAIL_DATE_KEY = "POP_MAIL_DATE_KEY";
private static final String POP_MAIL_MESSAGES_KEY = "POP_MAIL_MESSAGES_KEY";
private static final Logger logger = Logger.getLogger(ReadEmailService.class);
 
private Store getStoreSSL(String username,String password,String host)
{
Session session = null;
Store store = null;
Folder folder;
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties pop3Props = new Properties();
pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
pop3Props.setProperty("mail.pop3.port", "995");
pop3Props.setProperty("mail.pop3.socketFactory.port", "995");
URLName url = new URLName("pop3", host, 995, "",
username, password);
session = Session.getInstance(pop3Props, null);
store = new POP3SSLStore(session, url);
return store;
}
private Store getStore(Properties props) throws NoSuchProviderException
{
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("pop3");
return store;
}
public List<IPopEmail> run(UserSession userSession)
{
if (!((UserImpl) userSession.getUser()).hasPopConfigured())
55,7 → 90,7
 
String host = userSession.getUser().getPop3server();
String username = userSession.getUser().getPop3username();
String password = DesUtils.getInstance().decrypt(userSession.getUser().getPop3password());
String password = userSession.getUser().getPop3password(); //DesUtils.getInstance().decrypt(userSession.getUser().getPop3password());
String provider = "pop3";
if (host == null || username == null || password == null || host.trim().length() == 0 || password.trim().length() == 0 || username.trim().length() == 0)
{
63,9 → 98,18
}
try
{
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore(provider);
store.connect(host, username, password);
Store store;
if(POP_SECURE)
{
store = getStoreSSL(username, password, host);
store.connect();
}
else
{
store = getStore(props);
store.connect(host, username, password);
}
Folder inbox = store.getFolder("INBOX");
if (inbox == null)
{
/impl/src/java/pt/estgp/estgweb/web/tags/CanManageTag.java
70,7 → 70,9
 
 
IInternal iInternal = (IInternal) owned;
if(userSession.getUser() == null && iInternal.isInternal())
System.out.println("userSession: " + userSession);
System.out.println("iInternal: " + iInternal);
if((userSession==null || userSession.getUser() == null) && iInternal.isInternal())
{
return false;
}
78,10 → 80,10
{
boolean valid = Boolean.parseBoolean(this.valid);
IValid iValid = (IValid) owned;
return owned != null && userSession.getUser() != null && (iValid.isValid() == valid && owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin());
return owned != null && userSession != null && userSession.getUser() != null && (iValid.isValid() == valid && owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin());
}
else
return owned != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin());
return owned != null && userSession != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin());
 
}
 
/impl/src/web/admin/profile/profilePersonalData.jsp
1,4 → 1,6
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.form.profile.ProfileForm" %>
<%@ page import="pt.estgp.estgweb.domain.StudentImpl" %>
<%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %>
<%@ 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" %>
23,6 → 25,7
}
request.setAttribute("fromAction", fromAction);
 
boolean regular = false;
//separator=${separator}
%>
<html:form action="/user/profile${fromAction}?${from}">
34,6 → 37,35
 
<baco:isAdmin>
<tr>
<th>TIPO DE UTILIZADOR</th>
<td>
<%
 
pt.estgp.estgweb.web.form.profile.ProfileForm pf = (pt.estgp.estgweb.web.form.profile.ProfileForm) request.getAttribute("ProfileForm");
if(pf.getUserView().getUser() instanceof pt.estgp.estgweb.domain.StudentImpl)
{
%>
CLASSE ESTUDANTE
<%
}
else if(pf.getUserView().getUser() instanceof pt.estgp.estgweb.domain.TeacherImpl)
{
%>
CLASSE PROFESSOR
<%
}
else
{
regular = true;
%>
<label class="warning">CLASSE NORMAL</label>
<%
}
 
%>
</td>
</tr>
<tr>
<th>
<bean:message key="profile.autoBlockMode"/>
</th>
71,12 → 103,14
</tr>
</baco:isAdmin>
<baco:isNotAdmin>
 
<tr>
<th>
<bean:message key="profile.siges.code"/>
</th>
<td>
<html:text styleClass="text" property="userView.code" maxlength="250" readonly="true"/>
 
</td>
</tr>
<tr>
113,7 → 147,22
<bean:message key="profile.siges.code"/>
</th>
<td>
<html:text styleClass="text" property="userView.code" maxlength="250"/>
<%
if(regular)
{
%>
<html:text styleClass="text" property="userView.code" maxlength="250" readonly="true"/> <br/>ESTE UTILIZADOR É NORMAL NAO TEM CODIGO SIGES
<%
}
else
{
%>
<html:text styleClass="text" property="userView.code" maxlength="250"/>
<%
}
%>
 
 
</td>
</tr>
<tr>
/impl/src/web/admin/announcements/submitMessage.jsp
24,6 → 24,7
%>
 
 
<p class="warning">Atenção caro utilizador. Para este serviço enviar mensagens com sucesso os seus endereços de correio que definidos no seu perfil têm de ser válidos</p>
<html:form action="/user/submitMessage" enctype="multipart/form-data" onsubmit="this.form.text.value=myEditor.saveHTML()">
 
<input type="hidden" name="dispatch" value="sendMessage" >
/common/mail/mail.jar
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream