Introduce warning to change admin password
FEA : ItEr69S06AutocompleteAndPasswords
This commit is contained in:
parent
3d8fd0c218
commit
4e75b89cd9
8 changed files with 139 additions and 4 deletions
|
|
@ -72,6 +72,8 @@ public class Configuration extends BaseEntity {
|
|||
|
||||
private Boolean generateCodeForCostCategory = true;
|
||||
|
||||
private Boolean changedDefaultAdminPassword = false;
|
||||
|
||||
private ProgressType progressType = ProgressType.SPREAD_PROGRESS;
|
||||
|
||||
private String companyLogoURL = "";
|
||||
|
|
@ -264,4 +266,14 @@ public class Configuration extends BaseEntity {
|
|||
return companyLogoURL;
|
||||
}
|
||||
|
||||
public void setChangedDefaultAdminPassword(
|
||||
Boolean changedDefaultAdminPassword) {
|
||||
this.changedDefaultAdminPassword = changedDefaultAdminPassword;
|
||||
}
|
||||
|
||||
public Boolean getChangedDefaultAdminPassword() {
|
||||
return changedDefaultAdminPassword == null ? false
|
||||
: changedDefaultAdminPassword;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -49,4 +49,8 @@ public interface ITemplateModel {
|
|||
|
||||
boolean isScenariosVisible();
|
||||
|
||||
boolean isChangedDefaultAdminPassword();
|
||||
|
||||
String getIdAdminUser();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,4 +128,13 @@ public class TemplateController extends GenericForwardComposer {
|
|||
public Boolean getScenariosVisible() {
|
||||
return (templateModel != null) && templateModel.isScenariosVisible();
|
||||
}
|
||||
|
||||
public Boolean getDefaultPasswdVisible() {
|
||||
return (templateModel != null) && (getIdAdminUser() != null)
|
||||
&& (!templateModel.isChangedDefaultAdminPassword());
|
||||
}
|
||||
|
||||
public String getIdAdminUser() {
|
||||
return templateModel.getIdAdminUser();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,22 +27,23 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.Registry;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.TaskSource;
|
||||
import org.navalplanner.business.planner.daos.ITaskSourceDAO;
|
||||
import org.navalplanner.business.planner.entities.Dependency;
|
||||
import org.navalplanner.business.planner.entities.Dependency.Type;
|
||||
import org.navalplanner.business.planner.entities.Task;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
import org.navalplanner.business.planner.entities.Dependency.Type;
|
||||
import org.navalplanner.business.resources.daos.IResourceDAO;
|
||||
import org.navalplanner.business.scenarios.daos.IOrderVersionDAO;
|
||||
import org.navalplanner.business.scenarios.daos.IScenarioDAO;
|
||||
|
|
@ -50,6 +51,7 @@ import org.navalplanner.business.scenarios.entities.OrderVersion;
|
|||
import org.navalplanner.business.scenarios.entities.Scenario;
|
||||
import org.navalplanner.business.users.daos.IUserDAO;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
import org.navalplanner.web.users.bootstrap.MandatoryUser;
|
||||
import org.navalplanner.web.users.services.CustomUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
|
|
@ -60,11 +62,11 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.zkoss.ganttz.adapters.PlannerConfiguration;
|
||||
import org.zkoss.ganttz.data.ConstraintCalculator;
|
||||
import org.zkoss.ganttz.data.DependencyType;
|
||||
import org.zkoss.ganttz.data.DependencyType.Point;
|
||||
import org.zkoss.ganttz.data.GanttDate;
|
||||
import org.zkoss.ganttz.data.GanttDiagramGraph;
|
||||
import org.zkoss.ganttz.data.GanttDiagramGraph.IAdapter;
|
||||
import org.zkoss.ganttz.data.IDependency;
|
||||
import org.zkoss.ganttz.data.DependencyType.Point;
|
||||
import org.zkoss.ganttz.data.GanttDiagramGraph.IAdapter;
|
||||
import org.zkoss.ganttz.data.constraint.Constraint;
|
||||
import org.zkoss.ganttz.util.LongOperationFeedback;
|
||||
import org.zkoss.ganttz.util.LongOperationFeedback.IBackGroundOperation;
|
||||
|
|
@ -451,4 +453,22 @@ public class TemplateModel implements ITemplateModel {
|
|||
return configurationDAO.getConfiguration().isScenariosVisible();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public boolean isChangedDefaultAdminPassword() {
|
||||
return configurationDAO.getConfiguration()
|
||||
.getChangedDefaultAdminPassword();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public String getIdAdminUser() {
|
||||
String login = MandatoryUser.ADMIN.getLoginName();
|
||||
try {
|
||||
return Registry.getUserDAO().findByLoginName(login).getId()
|
||||
.toString();
|
||||
} catch (InstanceNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
* This file is part of NavalPlan
|
||||
*
|
||||
* Copyright (C) 2010-2011 Wireless Galicia, S.L.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.web.common.converters;
|
||||
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.users.daos.IUserDAO;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* A {@link IConverter} for {@link User} <br />
|
||||
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
|
||||
*/
|
||||
@Component
|
||||
@Scope(BeanDefinition.SCOPE_SINGLETON)
|
||||
public class UserConverter implements IConverter<User> {
|
||||
|
||||
@Autowired
|
||||
private IUserDAO userDAO;
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public User asObject(String stringRepresentation) {
|
||||
long id = Long.parseLong(stringRepresentation);
|
||||
try {
|
||||
return userDAO.find(id);
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String asString(User entity) {
|
||||
return entity.getId() + "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<User> getType() {
|
||||
return User.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String asStringUngeneric(Object entity) {
|
||||
return asString(getType().cast(entity));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -36,6 +36,8 @@ import org.navalplanner.web.common.MessagesForUser;
|
|||
import org.navalplanner.web.common.OnlyOneVisible;
|
||||
import org.navalplanner.web.common.Util;
|
||||
import org.navalplanner.web.common.components.Autocomplete;
|
||||
import org.navalplanner.web.common.entrypoints.IURLHandlerRegistry;
|
||||
import org.navalplanner.web.common.entrypoints.URLHandler;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.WrongValueException;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
|
|
@ -74,11 +76,18 @@ public class UserCRUDController extends GenericForwardComposer implements
|
|||
|
||||
private Autocomplete profileAutocomplete;
|
||||
|
||||
private IURLHandlerRegistry URLHandlerRegistry;
|
||||
|
||||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception {
|
||||
super.doAfterCompose(comp);
|
||||
comp.setVariable("controller", this, true);
|
||||
messagesForUser = new MessagesForUser(messagesContainer);
|
||||
|
||||
final URLHandler<IUserCRUDController> handler = URLHandlerRegistry
|
||||
.getRedirectorFor(IUserCRUDController.class);
|
||||
handler.registerListener(this, page);
|
||||
|
||||
getVisibility().showOnly(listWindow);
|
||||
passwordBox = (Textbox) createWindow.getFellowIfAny("password");
|
||||
passwordConfirmationBox = (Textbox) createWindow.getFellowIfAny("passwordConfirmation");
|
||||
|
|
|
|||
|
|
@ -186,4 +186,9 @@ a.sub_menu:hover {
|
|||
top:14px;
|
||||
right:0;
|
||||
z-index:2;
|
||||
}
|
||||
|
||||
.footer-messages-area {
|
||||
color: #ffa100;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
|
@ -33,9 +33,11 @@
|
|||
<![CDATA[
|
||||
contextPath = Executions.getCurrent().getContextPath();
|
||||
templateCtrl = templateController;
|
||||
idAdminUser = templateController.getIdAdminUser();
|
||||
]]>
|
||||
</zscript>
|
||||
|
||||
|
||||
<div xmlns:n="http://www.zkoss.org/2005/zk/native" apply="${templateCtrl}" height="100%">
|
||||
|
||||
<borderlayout height="100%" width="100%" >
|
||||
|
|
@ -124,6 +126,12 @@
|
|||
<n:td height="40" align="left" valign="bottom">
|
||||
<n:img height="40" src="${templateCtrl.companyLogoURL}" if="${templateCtrl.companyLogoURL!=''}" />
|
||||
</n:td>
|
||||
<n:td>
|
||||
<div if="${templateCtrl.defaultPasswdVisible}">
|
||||
<n:span id="footer-messages-area" class="footer-messages-area">${i18n:_('The admin account default password was not changed')}.</n:span>
|
||||
<n:a href="${contextPath}/users/users.zul#edit%3D${idAdminUser}" class="footer-messages-area">[${i18n:_('Click here')}]</n:a>
|
||||
</div>
|
||||
</n:td>
|
||||
<n:td height="40" align="right" valign="bottom">
|
||||
<n:img width="110" height="40" src="${contextPath}/common/img/logos_footer_fundacion.png"/>
|
||||
<n:img width="253" height="40" src="${contextPath}/common/img/logos_footer_administracion.png"/>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue