Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 138 → Rev 140

/impl/conf/language/MessageResources.properties
229,12 → 229,11
remove=Remover
yes=Sim
no=Não
edit=Editar
 
#Login
login.first.time.username=Username
login.first.time.name=Nome
login.first.time.targets=Permissões
login.first.time.targets=Papeis
login.first.time.bi=BI
login.first.time.address=Morada
login.first.time.zip=Código Postal
/impl/src/java/pt/estgp/estgweb/services/announcements/AnnouncementsCommonServices.java
48,10 → 48,13
else
roles = ((UserImpl) userSession.getUser()).getRolesList();
 
searchResults.setTotalResults(DaoFactory.getAnnouncementDaoImpl().countAnnouncements(search, searchType, roles, null));
boolean internal = true;
if (userSession.getUser() == null)
internal = false;
searchResults.setTotalResults(DaoFactory.getAnnouncementDaoImpl().countAnnouncements(search, searchType, roles, null,internal));
if (searchResults.getTotalResults() > 0)
{
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().searchAnnouncements(search, searchType, maxResults, page, roles, null);
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().searchAnnouncements(search, searchType, maxResults, page, roles, null,internal);
if (announcements == null)
return searchResults;
for (Announcement a : announcements)
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadTargetMaxAnnouncementsService.java
27,8 → 27,8
List<String> targetRoles = null;
if(userSession.getUser() != null)
targetRoles = userSession.getUser().getTargetRolesList();
boolean internal = true;
if(userSession.getUser() == null)
boolean internal = true;
if (userSession.getUser() == null)
internal = false;
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,subTarget,internal);
if(announcements == null)
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java
19,33 → 19,38
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);
super(saveDate, superuser, name, username, password, roles, address, zip, country, email, outEmail, phonenumber, sex, bi, birthDate, groups, courses);
}
 
 
public boolean isNewUser() {
public boolean isNewUser()
{
return newUser;
}
 
public void setNewUser(boolean newUser) {
public void setNewUser(boolean newUser)
{
this.newUser = newUser;
}
}
 
/**
* check if user is in some group
*
* @param g to check
* @return true if belongs to group
*/
public boolean hasGroup(Group g)
{
if(getGroups() == null)
if (getGroups() == null)
return false;
for(Group group: getGroups())
for (Group group : getGroups())
{
if(group.getId() == g.getId())
if (group.getId() == g.getId())
return true;
}
return false;
53,23 → 58,22
 
public void addRole(String role)
{
setRoles(RoleManager.catRole(getRoles(),"student"));
setRoles(RoleManager.catRole(getRoles(), role));
}
 
public boolean hasRole(String r)
{
if(r == null || getRoles() == null || getRoles().length() == 0)
if (r == null || getRoles() == null || getRoles().length() == 0)
return false;
for(String role: RoleManager.getRolesFromSerial(getRoles()))
for (String role : RoleManager.getRolesFromSerial(getRoles()))
{
if(role.equals(r))
if (role.equals(r))
return true;
}
return false;
}
 
/**
*
* @return a list of role Strings
*/
public List<String> getOwnerRoles()
99,7 → 103,7
 
public boolean isAdmin()
{
return hasRole(Globals.ADMIN_ROLE);
return hasRole(Globals.ADMIN_ROLE);
}
 
public boolean isSuperUserOrAdmin()
/impl/src/java/pt/estgp/estgweb/web/controllers/profile/ProfileController.java
34,7 → 34,7
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class ProfileController extends ApplicationDispatchController {
public class ProfileController extends AddRolesController {
 
private static final Logger logger = Logger.getLogger(ProfileController.class);
 
81,6 → 81,7
throws Throwable, ServletException {
try
{
ProfileForm pF = (ProfileForm) form;
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
String id = request.getParameter("id");
long userToLoad;
90,14 → 91,13
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);
pF.setUserView(uV);
pF.setSelectedRoles(uV.getUserRoles());
return mapping.findForward("load");
}
catch(FilterChainFailedException e)
/impl/src/java/pt/estgp/estgweb/web/tags/IsNotAdminTag.java
21,7 → 21,8
public int doEndTag() throws JspException {
 
UserSessionImpl userSession = (UserSessionImpl) pageContext.getRequest().getAttribute(Globals.USER_SESSION_KEY);
if(userSession == null || userSession.getUser() == null || !(((UserImpl)userSession.getUser()).hasRole(Globals.ADMIN_ROLE) && !((UserImpl)userSession.getUser()).isSuperuser()))
 
if(userSession == null || userSession.getUser() == null)
{
String toPage = bodyContent.getString().trim();
JspWriter writer = pageContext.getOut();
35,6 → 36,20
throw new JspException(e);
}
}
else if(!(((UserImpl)userSession.getUser()).hasRole(Globals.ADMIN_ROLE)) && !((UserImpl)userSession.getUser()).isSuperuser())
{
String toPage = bodyContent.getString().trim();
JspWriter writer = pageContext.getOut();
try
{
writer.write(toPage);
}
catch(Exception e)
{
logger.error(e,e);
throw new JspException(e);
}
}
 
// Continue processing this page
return EVAL_PAGE;
/impl/src/java/pt/estgp/estgweb/web/tags/CanManageTag.java
5,6 → 5,7
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.IOwned;
import pt.estgp.estgweb.domain.IInternal;
import pt.estgp.estgweb.Globals;
 
import javax.servlet.jsp.tagext.BodyTagSupport;
49,9 → 50,13
UserSessionImpl userSession = (UserSessionImpl) pageContext.getRequest().getAttribute(Globals.USER_SESSION_KEY);
 
IOwned owned = (IOwned) RequestUtils.lookup(pageContext, name, property, null);
 
if(owned != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser()) || ((UserImpl) userSession.getUser()).isSuperUserOrAdmin()))
IInternal iInternal = (IInternal) owned;
if(userSession.getUser() == null && iInternal.isInternal())
{
//do nothing
}
else if(owned != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser()) || ((UserImpl) userSession.getUser()).isSuperUserOrAdmin()))
{
String toPage = bodyContent.getString().trim();
JspWriter writer = pageContext.getOut();
try
/impl/src/web/admin/profile/findUser.jsp
9,8 → 9,6
<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>
/impl/src/web/admin/profile/profile.jsp
1,25 → 1,26
<%@ 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/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"/>
<%--<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>
<th>
<bean:message key="login.first.time.username"/>
</th>
<td>
<html:text property="userView.username" maxlength="250" readonly="true" styleClass="readOnly"/>
</td>
27,22 → 28,28
</estgweb:isNotAdmin>
<estgweb:isAdmin>
<tr>
<th><bean:message key="login.first.time.username"/></th>
<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>
<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: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();">
<input type="button" value="<bean:message key="add"/>"
onclick="set(this.form,'addRole');this.form.submit();">
</logic:present>
</html:select>
 
50,7 → 57,11
<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>
<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>
59,50 → 70,66
</tr>
</estgweb:isAdmin>
<tr>
<th><bean:message key="login.first.time.bi"/></th>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<th>
<bean:message key="login.first.time.email.institucion"/>
</th>
<td>
<html:text property="userView.email" maxlength="250" readonly="true" styleClass="readOnly"/>
</td>
110,27 → 137,33
</estgweb:isNotAdmin>
<estgweb:isAdmin>
<tr>
<th><bean:message key="login.first.time.email.institucion2"/></th>
<th>
<bean:message key="login.first.time.email.institucion2"/>
</th>
<td>
<html:text property="userView.email" maxlength="250"/>
</td>
</tr>
</estgweb:isAdmin>
 
<tr>
<th><bean:message key="login.first.time.email.secundary"/></th>
<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>
<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"/>"/>
<input type="button" onclick="set(this.form,'editUser');this.form.submit()"
value="<bean:message key="confirm"/>"/>
</td>
</tr>
</table>