mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-22 14:17:57 +01:00
Finish account settings option.
This commit is contained in:
parent
a845a87183
commit
cfe78bdf7e
@ -5,124 +5,5 @@
|
|||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
|
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
|
||||||
version="2.4">
|
version="2.4">
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
|
|
||||||
<param-value>messages</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>contextConfigLocation</param-name>
|
|
||||||
<param-value>
|
|
||||||
/WEB-INF/wisemapping-security.xml
|
|
||||||
/WEB-INF/wisemapping-dao.xml
|
|
||||||
/WEB-INF/wisemapping-service.xml
|
|
||||||
/WEB-INF/wisemapping-model.xml
|
|
||||||
/WEB-INF/wisemapping-acegi-security.xml
|
|
||||||
</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
- Loads the root application context of this web app at startup.
|
|
||||||
- The application context is then available via
|
|
||||||
- WebApplicationContextUtils.getWebApplicationContext(servletContext).
|
|
||||||
-->
|
|
||||||
<listener>
|
|
||||||
<listener-class>com.wisemapping.service.HibernateAppListener</listener-class>
|
|
||||||
</listener>
|
|
||||||
|
|
||||||
|
|
||||||
<filter>
|
|
||||||
<filter-name>charsetFilter</filter-name>
|
|
||||||
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>encoding</param-name>
|
|
||||||
<param-value>UTF-8</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>forceEncoding</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</init-param>
|
|
||||||
</filter>
|
|
||||||
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>charsetFilter</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
<filter>
|
|
||||||
<filter-name>hibernate</filter-name>
|
|
||||||
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>singleSession</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>sessionFactoryBeanName</param-name>
|
|
||||||
<param-value>mindmapSessionFactory</param-value>
|
|
||||||
</init-param>
|
|
||||||
</filter>
|
|
||||||
<filter>
|
|
||||||
<filter-name>Acegi Filter Chain Proxy</filter-name>
|
|
||||||
<filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>targetClass</param-name>
|
|
||||||
<param-value>org.acegisecurity.util.FilterChainProxy</param-value>
|
|
||||||
</init-param>
|
|
||||||
</filter>
|
|
||||||
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>Acegi Filter Chain Proxy</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>hibernate</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<listener>
|
|
||||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
|
||||||
</listener>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>wisemapping</servlet-name>
|
|
||||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
|
||||||
<load-on-startup>1</load-on-startup>
|
|
||||||
|
|
||||||
<init-param>
|
|
||||||
<param-name>contextConfigLocation</param-name>
|
|
||||||
<param-value>
|
|
||||||
/WEB-INF/wisemapping-servlet.xml
|
|
||||||
/WEB-INF/wisemapping-captcha.xml
|
|
||||||
</param-value>
|
|
||||||
</init-param>
|
|
||||||
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>dwr-invoker</servlet-name>
|
|
||||||
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>debug</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</init-param>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>wisemapping</servlet-name>
|
|
||||||
<url-pattern>*.htm</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>dwr-invoker</servlet-name>
|
|
||||||
<url-pattern>/dwr/*</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<welcome-file-list>
|
|
||||||
<welcome-file>
|
|
||||||
index.jsp
|
|
||||||
</welcome-file>
|
|
||||||
</welcome-file-list>
|
|
||||||
<session-config>
|
|
||||||
<session-timeout>180</session-timeout>
|
|
||||||
</session-config>
|
|
||||||
</web-app>
|
</web-app>
|
@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
|
||||||
|
|
||||||
import com.wisemapping.service.UserService;
|
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
import org.springframework.web.servlet.mvc.Controller;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
|
|
||||||
public class ActivationController
|
|
||||||
implements Controller, InitializingBean
|
|
||||||
{
|
|
||||||
|
|
||||||
//~ Instance fields ......................................................................................
|
|
||||||
private UserService userService;
|
|
||||||
|
|
||||||
//~ Methods ..............................................................................................
|
|
||||||
|
|
||||||
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
ModelAndView modelAndView;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
final String code = request.getParameter("code");
|
|
||||||
userService.activateAccount(Long.parseLong(code));
|
|
||||||
modelAndView = new ModelAndView("activationAccountConfirmation");
|
|
||||||
}
|
|
||||||
catch (Throwable exc)
|
|
||||||
{
|
|
||||||
// TODO Fix it !
|
|
||||||
exc.printStackTrace();
|
|
||||||
// Any type of error
|
|
||||||
modelAndView = new ModelAndView("activationAccountConfirmationFail");
|
|
||||||
}
|
|
||||||
return modelAndView;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserService(UserService userService) {
|
|
||||||
this.userService = userService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
|
|
||||||
*/
|
|
||||||
public void afterPropertiesSet()
|
|
||||||
throws Exception {
|
|
||||||
if (userService == null) {
|
|
||||||
throw new RuntimeException("userService was not set!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
|
||||||
|
|
||||||
import com.wisemapping.model.MindMap;
|
|
||||||
import com.wisemapping.service.MindmapService;
|
|
||||||
import com.wisemapping.service.UserService;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
import org.springframework.web.servlet.mvc.SimpleFormController;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
|
|
||||||
public class BaseSimpleFormController extends SimpleFormController
|
|
||||||
{
|
|
||||||
|
|
||||||
private MindmapService mindmapService;
|
|
||||||
private UserService userService;
|
|
||||||
private String errorView;
|
|
||||||
|
|
||||||
public UserService getUserService() {
|
|
||||||
return userService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserService(UserService userService) {
|
|
||||||
this.userService = userService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MindmapService getMindmapService() {
|
|
||||||
return mindmapService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getErrorView() {
|
|
||||||
return errorView;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override protected org.springframework.web.servlet.ModelAndView showForm(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, org.springframework.validation.BindException bindException) throws java.lang.Exception
|
|
||||||
{
|
|
||||||
final ModelAndView view = super.showForm(httpServletRequest, httpServletResponse,bindException);
|
|
||||||
final String viewName = getErrorView();
|
|
||||||
if(viewName !=null && bindException.getAllErrors().size()>0)
|
|
||||||
{
|
|
||||||
view.setViewName(viewName);
|
|
||||||
view.addObject("errorView",true);
|
|
||||||
}
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
|
||||||
|
|
||||||
import com.wisemapping.model.User;
|
|
||||||
import com.wisemapping.security.Utils;
|
|
||||||
import com.wisemapping.service.UserService;
|
|
||||||
import com.wisemapping.view.ChangePasswordBean;
|
|
||||||
import org.springframework.validation.BindException;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
public class ChangePasswordController
|
|
||||||
extends BaseSimpleFormController {
|
|
||||||
|
|
||||||
//~ Methods ..............................................................................................
|
|
||||||
|
|
||||||
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
|
|
||||||
BindException errors)
|
|
||||||
throws ServletException {
|
|
||||||
final ChangePasswordBean bean = (ChangePasswordBean) command;
|
|
||||||
// Reload user only in case of being necessary...
|
|
||||||
final User model = Utils.getUser();
|
|
||||||
|
|
||||||
final UserService userService = this.getUserService();
|
|
||||||
final User user = userService.reloadUser(model);
|
|
||||||
|
|
||||||
user.setPassword(bean.getPassword());
|
|
||||||
userService.changePassword(user);
|
|
||||||
|
|
||||||
return new ModelAndView(getSuccessView());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
|
||||||
|
|
||||||
import com.wisemapping.model.User;
|
|
||||||
import com.wisemapping.security.Utils;
|
|
||||||
import com.wisemapping.service.UserService;
|
|
||||||
import com.wisemapping.view.UserBean;
|
|
||||||
import org.springframework.validation.BindException;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
public class EditProfileController extends BaseSimpleFormController {
|
|
||||||
|
|
||||||
|
|
||||||
protected Object formBackingObject(HttpServletRequest httpServletRequest) throws Exception {
|
|
||||||
final User model = Utils.getUser();
|
|
||||||
return new UserBean(model);
|
|
||||||
}
|
|
||||||
|
|
||||||
//~ Methods ..............................................................................................
|
|
||||||
|
|
||||||
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
|
|
||||||
BindException errors)
|
|
||||||
throws ServletException {
|
|
||||||
final UserBean bean = (UserBean) command;
|
|
||||||
final UserService userService = this.getUserService();
|
|
||||||
|
|
||||||
// Reload user only in case of beeing necessary...
|
|
||||||
final User model = Utils.getUser();
|
|
||||||
final User user = userService.reloadUser(model);
|
|
||||||
|
|
||||||
user.setFirstname(bean.getFirstname());
|
|
||||||
user.setLastname(bean.getLastname());
|
|
||||||
// trim() the email email in order to remove spaces
|
|
||||||
user.setEmail(bean.getEmail().trim());
|
|
||||||
user.setAllowSendEmail(bean.isAllowSendEmail());
|
|
||||||
|
|
||||||
// Sync Acegi user and DB user
|
|
||||||
model.setAllowSendEmail(bean.isAllowSendEmail());
|
|
||||||
userService.updateUser(user);
|
|
||||||
|
|
||||||
return new ModelAndView(getSuccessView());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
|
||||||
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
import org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
public class SettingsController {
|
|
||||||
|
|
||||||
public ModelAndView handleNoSuchRequestHandlingMethod(NoSuchRequestHandlingMethodException noSuchRequestHandlingMethodException, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
|
|
||||||
throws Exception {
|
|
||||||
return new ModelAndView("setting");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
|
||||||
|
|
||||||
import com.wisemapping.exceptions.WiseMappingException;
|
|
||||||
import com.wisemapping.importer.ImporterException;
|
|
||||||
import com.wisemapping.model.MindMap;
|
|
||||||
import com.wisemapping.model.User;
|
|
||||||
import com.wisemapping.security.Utils;
|
|
||||||
import com.wisemapping.view.TagBean;
|
|
||||||
import org.springframework.validation.BindException;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
public class TagsController
|
|
||||||
extends BaseSimpleFormController {
|
|
||||||
|
|
||||||
//~ Methods ..............................................................................................
|
|
||||||
protected Object formBackingObject(HttpServletRequest httpServletRequest) throws Exception {
|
|
||||||
|
|
||||||
final MindMap mindmap = null;
|
|
||||||
final User user = Utils.getUser();
|
|
||||||
final User dbUser = getUserService().getUserBy(user.getId());
|
|
||||||
|
|
||||||
final TagBean tagBean = new TagBean();
|
|
||||||
tagBean.setUserTags(dbUser.getTags());
|
|
||||||
tagBean.setMindmapId(mindmap.getId());
|
|
||||||
tagBean.setMindmapTags(mindmap.getTags());
|
|
||||||
tagBean.setMindmapTitle(mindmap.getTitle());
|
|
||||||
return tagBean;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)
|
|
||||||
throws ServletException, WiseMappingException, ImporterException
|
|
||||||
{
|
|
||||||
final TagBean bean = (TagBean) command;
|
|
||||||
final MindMap mindmap = getMindmapService().findMindmapById(bean.getMindmapId());
|
|
||||||
getMindmapService().addTags(mindmap, bean.getMindmapTags());
|
|
||||||
return new ModelAndView(getSuccessView());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,132 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
|
||||||
|
|
||||||
import com.wisemapping.model.User;
|
|
||||||
import com.wisemapping.service.UserService;
|
|
||||||
import com.wisemapping.view.UserBean;
|
|
||||||
import com.wisemapping.exceptions.WiseMappingException;
|
|
||||||
import net.tanesha.recaptcha.ReCaptcha;
|
|
||||||
import net.tanesha.recaptcha.ReCaptchaResponse;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
import org.springframework.validation.BindException;
|
|
||||||
import org.springframework.validation.ObjectError;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
public class UserRegistrationController
|
|
||||||
extends BaseSimpleFormController {
|
|
||||||
|
|
||||||
//~ Instance fields ......................................................................................
|
|
||||||
|
|
||||||
private boolean emailConfirmEnabled;
|
|
||||||
private UserService userService;
|
|
||||||
private ReCaptcha captchaService;
|
|
||||||
private boolean captchaEnabled;
|
|
||||||
|
|
||||||
//~ Methods ..............................................................................................
|
|
||||||
|
|
||||||
|
|
||||||
public boolean isEmailConfirmEnabled() {
|
|
||||||
return emailConfirmEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmailConfirmEnabled(boolean emailConfirmEnabled) {
|
|
||||||
this.emailConfirmEnabled = emailConfirmEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModelAndView onSubmit(@Nullable Object command) throws WiseMappingException {
|
|
||||||
final UserBean userBean = ((UserBean) command);
|
|
||||||
|
|
||||||
if (userBean != null) {
|
|
||||||
final User user = new User();
|
|
||||||
// trim() the email email in order to remove spaces
|
|
||||||
user.setEmail(userBean.getEmail().trim());
|
|
||||||
user.setUsername(userBean.getUsername());
|
|
||||||
user.setFirstname(userBean.getFirstname());
|
|
||||||
user.setLastname(userBean.getLastname());
|
|
||||||
user.setPassword(userBean.getPassword());
|
|
||||||
userService.createUser(user, emailConfirmEnabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
final Map<String, Object> model = new HashMap<String, Object>();
|
|
||||||
model.put("confirmByEmail", emailConfirmEnabled);
|
|
||||||
return new ModelAndView(getSuccessView(), model);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserService(UserService userService) {
|
|
||||||
this.userService = userService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCaptchaService(@NotNull final ReCaptcha captchaService) {
|
|
||||||
this.captchaService = captchaService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ReCaptcha getCaptchaService() {
|
|
||||||
return captchaService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isCaptchaEnabled() {
|
|
||||||
return captchaEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCaptchaEnabled(boolean captchaEnabled) {
|
|
||||||
this.captchaEnabled = captchaEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onBindAndValidate(HttpServletRequest request, Object command, BindException errors) throws Exception {
|
|
||||||
|
|
||||||
super.onBindAndValidate(request, command, errors);
|
|
||||||
// If captcha is enabled, generate it ...
|
|
||||||
if (isCaptchaEnabled()) {
|
|
||||||
|
|
||||||
final String challenge = request.getParameter("recaptcha_challenge_field");
|
|
||||||
final String uresponse = request.getParameter("recaptcha_response_field");
|
|
||||||
|
|
||||||
final String remoteAddr = request.getRemoteAddr();
|
|
||||||
final ReCaptchaResponse reCaptchaResponse = captchaService.checkAnswer(remoteAddr, challenge, uresponse);
|
|
||||||
if (!reCaptchaResponse.isValid()) {
|
|
||||||
errors.rejectValue("captcha", Messages.CAPTCHA_ERROR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ModelAndView showForm(HttpServletRequest request, HttpServletResponse response, BindException bindException) throws Exception {
|
|
||||||
final ModelAndView modelAndView = super.showForm(request, response, bindException);
|
|
||||||
|
|
||||||
// If captcha is enabled, generate it ...
|
|
||||||
if (isCaptchaEnabled()) {
|
|
||||||
final Properties prop = new Properties();
|
|
||||||
prop.put("theme", "white");
|
|
||||||
final String captchaHtml = captchaService.createRecaptchaHtml(null, prop);
|
|
||||||
request.setAttribute("captchaHtml", captchaHtml);
|
|
||||||
request.setAttribute("captchaEnabled", true);
|
|
||||||
}
|
|
||||||
return modelAndView;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -34,8 +34,6 @@ public interface UserManager {
|
|||||||
|
|
||||||
User getUserByUsername(String username);
|
User getUserByUsername(String username);
|
||||||
|
|
||||||
boolean authenticate(String email, String password);
|
|
||||||
|
|
||||||
void createUser(User user);
|
void createUser(User user);
|
||||||
|
|
||||||
void auditLogin(UserLogin userLogin);
|
void auditLogin(UserLogin userLogin);
|
||||||
|
@ -86,14 +86,6 @@ public class UserManagerImpl
|
|||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean authenticate(final String email, final String password) {
|
|
||||||
final boolean result;
|
|
||||||
final User user = getUserBy(email);
|
|
||||||
result = user != null && user.getPassword().equals(password);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createUser(User user) {
|
public void createUser(User user) {
|
||||||
assert user != null : "Trying to store a null user";
|
assert user != null : "Trying to store a null user";
|
||||||
@ -134,7 +126,7 @@ public class UserManagerImpl
|
|||||||
getHibernateTemplate().save(userLogin);
|
getHibernateTemplate().save(userLogin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateUser(User user) {
|
public void updateUser(@NotNull User user) {
|
||||||
assert user != null : "user is null";
|
assert user != null : "user is null";
|
||||||
user.setPassword(passwordEncoder.encodePassword(user.getPassword(), null));
|
user.setPassword(passwordEncoder.encodePassword(user.getPassword(), null));
|
||||||
getHibernateTemplate().update(user);
|
getHibernateTemplate().update(user);
|
||||||
|
@ -49,7 +49,7 @@ final public class NotificationService {
|
|||||||
final String collabEmail = collaboration.getCollaborator().getEmail();
|
final String collabEmail = collaboration.getCollaborator().getEmail();
|
||||||
|
|
||||||
// Build the subject ...
|
// Build the subject ...
|
||||||
final String subject = user.getFullName() + " has shared a mindmap with you";
|
final String subject = "[WiseMapping] " + user.getFullName() + " has shared a mindmap with you";
|
||||||
|
|
||||||
// Fill template properties ...
|
// Fill template properties ...
|
||||||
final Map<String, Object> model = new HashMap<String, Object>();
|
final Map<String, Object> model = new HashMap<String, Object>();
|
||||||
@ -70,15 +70,44 @@ final public class NotificationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void resetPassword(@NotNull User user, @NotNull String temporalPassword) {
|
public void resetPassword(@NotNull User user, @NotNull String temporalPassword) {
|
||||||
|
final String mailSubject = "[WiseMapping] Your new password";
|
||||||
|
final String messageTitle = "Your new password has been generated";
|
||||||
|
final String messageBody =
|
||||||
|
"<p>Someone, most likely you, requested a new password for your WiseMapping account. </p>\n" +
|
||||||
|
"<p><strong>Here is your new password: : " + temporalPassword + "</strong></p>\n" +
|
||||||
|
"<p>You can login clicking <a href=\"" + this.baseUrl + "/c/login\">here</a>. We strongly encourage you to change the password as soon as possible.</p>";
|
||||||
|
|
||||||
|
sendTemplateMail(user, mailSubject, messageTitle, messageBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void passwordChanged(@NotNull User user) {
|
||||||
|
final String mailSubject = "[WiseMapping] Your password has been changed";
|
||||||
|
final String messageTitle = "Your password has been changed successfully";
|
||||||
|
final String messageBody =
|
||||||
|
"<p>This is only an notification that your password has been changed. No further action is required.</p>";
|
||||||
|
|
||||||
|
sendTemplateMail(user, mailSubject, messageTitle, messageBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void newAccountCreated(@NotNull User user) {
|
||||||
|
final String mailSubject = "Welcome to WiseMapping !";
|
||||||
|
final String messageTitle = "Your account has been created successfully";
|
||||||
|
final String messageBody =
|
||||||
|
"<p> Thank you for your interest in WiseMapping. If have any feedback or idea, send us an email to <a href=\"mailto:feedback@wisemapping.com\">feedback@wisemapping.com</a> .We'd love to hear from you.</p>";
|
||||||
|
sendTemplateMail(user, mailSubject, messageTitle, messageBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendTemplateMail(@NotNull User user, @NotNull String mailSubject, @NotNull String messageTitle, @NotNull String messageBody) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final Map<String, Object> model = new HashMap<String, Object>();
|
final Map<String, Object> model = new HashMap<String, Object>();
|
||||||
model.put("user", user);
|
model.put("firstName", user.getFirstname());
|
||||||
model.put("temporalPassword", temporalPassword);
|
model.put("messageTitle", messageTitle);
|
||||||
model.put("supportEmail", mailer.getSupportEmail());
|
model.put("messageBody", messageBody);
|
||||||
model.put("password", temporalPassword);
|
|
||||||
model.put("baseUrl", this.baseUrl);
|
model.put("baseUrl", this.baseUrl);
|
||||||
|
model.put("supportEmail", mailer.getSupportEmail());
|
||||||
|
|
||||||
mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), "Reset Your WiseMapping Password", model, "passwordRecovery.vm");
|
mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), mailSubject, model, "baseLayout.vm");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
handleException(e);
|
handleException(e);
|
||||||
}
|
}
|
||||||
@ -100,7 +129,7 @@ final public class NotificationService {
|
|||||||
public void activateAccount(@NotNull User user) {
|
public void activateAccount(@NotNull User user) {
|
||||||
final Map<String, User> model = new HashMap<String, User>();
|
final Map<String, User> model = new HashMap<String, User>();
|
||||||
model.put("user", user);
|
model.put("user", user);
|
||||||
mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), "WiseMapping : Active account", model, "activationAccountMail.vm");
|
mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), "[WiseMapping] Active account", model, "activationAccountMail.vm");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendRegistrationEmail(@NotNull User user) {
|
public void sendRegistrationEmail(@NotNull User user) {
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.mail;
|
|
||||||
|
|
||||||
import javax.mail.Authenticator;
|
|
||||||
import javax.mail.PasswordAuthentication;
|
|
||||||
|
|
||||||
public class SmtpAuthenticator
|
|
||||||
extends Authenticator
|
|
||||||
{
|
|
||||||
private String username;
|
|
||||||
private String password;
|
|
||||||
|
|
||||||
public SmtpAuthenticator(String username, String password)
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
this.username = username;
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PasswordAuthentication getPasswordAuthentication()
|
|
||||||
{
|
|
||||||
return new PasswordAuthentication(username, password);
|
|
||||||
}
|
|
||||||
}
|
|
@ -58,6 +58,7 @@ public class MindmapController {
|
|||||||
public String showDetails(@PathVariable int id, @NotNull Model model) {
|
public String showDetails(@PathVariable int id, @NotNull Model model) {
|
||||||
final MindMapBean mindmap = findMindmapBean(id);
|
final MindMapBean mindmap = findMindmapBean(id);
|
||||||
model.addAttribute("mindmap", mindmap);
|
model.addAttribute("mindmap", mindmap);
|
||||||
|
model.addAttribute("baseUrl", siteBaseUrl);
|
||||||
return "mindmapDetail";
|
return "mindmapDetail";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,9 +19,10 @@
|
|||||||
package com.wisemapping.ncontroller;
|
package com.wisemapping.ncontroller;
|
||||||
|
|
||||||
|
|
||||||
import com.wisemapping.controller.Messages;
|
import com.wisemapping.validator.Messages;
|
||||||
import com.wisemapping.exceptions.WiseMappingException;
|
import com.wisemapping.exceptions.WiseMappingException;
|
||||||
import com.wisemapping.model.User;
|
import com.wisemapping.model.User;
|
||||||
|
import com.wisemapping.security.Utils;
|
||||||
import com.wisemapping.service.InvalidUserEmailException;
|
import com.wisemapping.service.InvalidUserEmailException;
|
||||||
import com.wisemapping.service.UserService;
|
import com.wisemapping.service.UserService;
|
||||||
import com.wisemapping.validator.UserValidator;
|
import com.wisemapping.validator.UserValidator;
|
||||||
@ -33,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -119,6 +121,12 @@ public class UsersController {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "account/settings", method = RequestMethod.GET)
|
||||||
|
public String showUserSettingsPage(@NotNull Model model) {
|
||||||
|
model.addAttribute("user", Utils.getUser());
|
||||||
|
return "accountSettings";
|
||||||
|
}
|
||||||
|
|
||||||
private BindingResult validateRegistrationForm(@NotNull UserBean userBean, @NotNull HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
private BindingResult validateRegistrationForm(@NotNull UserBean userBean, @NotNull HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
||||||
final UserValidator userValidator = new UserValidator();
|
final UserValidator userValidator = new UserValidator();
|
||||||
userValidator.setUserService(userService);
|
userValidator.setUserService(userService);
|
||||||
|
@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
* Copyright [2011] [wisemapping]
|
||||||
|
*
|
||||||
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the license at
|
||||||
|
*
|
||||||
|
* http://www.wisemapping.org/license
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.wisemapping.rest;
|
||||||
|
|
||||||
|
import com.wisemapping.model.User;
|
||||||
|
import com.wisemapping.security.Utils;
|
||||||
|
import com.wisemapping.service.UserService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class AccountController extends BaseController {
|
||||||
|
@Qualifier("userService")
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.PUT, value = "account/password", consumes = {"text/plain"})
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
public void changePassword(@RequestBody String password) {
|
||||||
|
if (password == null) {
|
||||||
|
throw new IllegalArgumentException("Password can not be null");
|
||||||
|
}
|
||||||
|
|
||||||
|
final User user = Utils.getUser();
|
||||||
|
user.setPassword(password);
|
||||||
|
userService.changePassword(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.PUT, value = "account/firstname", consumes = {"text/plain"})
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
public void changeFirstname(@RequestBody String firstname) {
|
||||||
|
if (firstname == null) {
|
||||||
|
throw new IllegalArgumentException("Firstname can not be null");
|
||||||
|
}
|
||||||
|
|
||||||
|
final User user = Utils.getUser();
|
||||||
|
user.setFirstname(firstname);
|
||||||
|
userService.updateUser(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.PUT, value = "account/lastname", consumes = {"text/plain"})
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
public void changeLastName(@RequestBody String lastname) {
|
||||||
|
if (lastname == null) {
|
||||||
|
throw new IllegalArgumentException("lastname can not be null");
|
||||||
|
|
||||||
|
}
|
||||||
|
final User user = Utils.getUser();
|
||||||
|
user.setLastname(lastname);
|
||||||
|
userService.updateUser(user);
|
||||||
|
}
|
||||||
|
}
|
@ -23,6 +23,7 @@ import com.wisemapping.model.User;
|
|||||||
import com.wisemapping.rest.model.RestUser;
|
import com.wisemapping.rest.model.RestUser;
|
||||||
import com.wisemapping.service.UserService;
|
import com.wisemapping.service.UserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -33,6 +34,7 @@ import java.io.IOException;
|
|||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
public class AdminController extends BaseController {
|
public class AdminController extends BaseController {
|
||||||
|
@Qualifier("userService")
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ public class UserServiceImpl
|
|||||||
// Generate a random password ...
|
// Generate a random password ...
|
||||||
final String password = randomstring(8, 10);
|
final String password = randomstring(8, 10);
|
||||||
user.setPassword(password);
|
user.setPassword(password);
|
||||||
changePassword(user);
|
updateUser(user);
|
||||||
|
|
||||||
// Send an email with the new temporal password ...
|
// Send an email with the new temporal password ...
|
||||||
notificationService.resetPassword(user, password);
|
notificationService.resetPassword(user, password);
|
||||||
@ -119,11 +119,16 @@ public class UserServiceImpl
|
|||||||
// Send registration email.
|
// Send registration email.
|
||||||
if (emailConfirmEnabled) {
|
if (emailConfirmEnabled) {
|
||||||
notificationService.sendRegistrationEmail(user);
|
notificationService.sendRegistrationEmail(user);
|
||||||
|
} else {
|
||||||
|
// Send a welcome email ..
|
||||||
|
notificationService.newAccountCreated(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void changePassword(@NotNull User user) {
|
public void changePassword(@NotNull User user) {
|
||||||
|
notificationService.passwordChanged(user);
|
||||||
userManager.updateUser(user);
|
userManager.updateUser(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.validator;
|
|
||||||
|
|
||||||
import org.springframework.validation.Validator;
|
|
||||||
import org.springframework.validation.Errors;
|
|
||||||
import org.springframework.validation.ValidationUtils;
|
|
||||||
import com.wisemapping.view.ChangePasswordBean;
|
|
||||||
import com.wisemapping.model.Constants;
|
|
||||||
|
|
||||||
public class ChangePasswordValidator
|
|
||||||
implements Validator {
|
|
||||||
|
|
||||||
public boolean supports(final Class clazz) {
|
|
||||||
return clazz.equals(ChangePasswordBean.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void validate(Object obj, Errors errors) {
|
|
||||||
ChangePasswordBean bean = (ChangePasswordBean) obj;
|
|
||||||
|
|
||||||
if (bean == null) {
|
|
||||||
errors.rejectValue("changePassword", "error.not-specified", null, "Value required.");
|
|
||||||
} else {
|
|
||||||
|
|
||||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "required", "Field is required.");
|
|
||||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "retryPassword", "required", "Field is required.");
|
|
||||||
ValidatorUtils.rejectIfExceeded(errors,
|
|
||||||
"password",
|
|
||||||
"The password must have less than "+ Constants.MAX_USER_PASSWORD_LENGTH + " characters.",
|
|
||||||
bean.getPassword(),
|
|
||||||
Constants.MAX_USER_PASSWORD_LENGTH);
|
|
||||||
ValidatorUtils.rejectIfExceeded(errors,
|
|
||||||
"retryPassword",
|
|
||||||
"The retryPassword must have less than "+ Constants.MAX_USER_PASSWORD_LENGTH + " characters.",
|
|
||||||
bean.getRetryPassword(),
|
|
||||||
Constants.MAX_USER_PASSWORD_LENGTH);
|
|
||||||
final String password = bean.getPassword();
|
|
||||||
if (password != null && !password.equals(bean.getRetryPassword())) {
|
|
||||||
errors.rejectValue("password", "Password mismatch", "Your password entries did not match");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.validator;
|
|
||||||
|
|
||||||
import com.wisemapping.view.UserBean;
|
|
||||||
import com.wisemapping.controller.Messages;
|
|
||||||
import com.wisemapping.service.UserService;
|
|
||||||
import com.wisemapping.model.User;
|
|
||||||
import com.wisemapping.model.Constants;
|
|
||||||
import org.springframework.validation.Errors;
|
|
||||||
import org.springframework.validation.ValidationUtils;
|
|
||||||
import org.springframework.validation.Validator;
|
|
||||||
|
|
||||||
public class EditProfileValidator implements Validator {
|
|
||||||
|
|
||||||
private UserService userService;
|
|
||||||
|
|
||||||
public boolean supports(final Class clazz) {
|
|
||||||
return clazz.equals(UserBean.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void validate(Object obj, Errors errors) {
|
|
||||||
UserBean user = (UserBean) obj;
|
|
||||||
if (user == null) {
|
|
||||||
errors.rejectValue("user", "error.not-specified", null, "Value required.");
|
|
||||||
} else {
|
|
||||||
|
|
||||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstname", "required", "Field is required.");
|
|
||||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastname", "required", "Field is required.");
|
|
||||||
ValidatorUtils.rejectIfExceeded(errors,
|
|
||||||
"firstname",
|
|
||||||
"The firstname must have less than "+ Constants.MAX_USER_FIRSTNAME_LENGTH + " characters.",
|
|
||||||
user.getFirstname(),
|
|
||||||
Constants.MAX_USER_FIRSTNAME_LENGTH);
|
|
||||||
ValidatorUtils.rejectIfExceeded(errors,
|
|
||||||
"lastname",
|
|
||||||
"The lastname must have less than "+ Constants.MAX_USER_LASTNAME_LENGTH + " characters.",
|
|
||||||
user.getLastname(),
|
|
||||||
Constants.MAX_USER_LASTNAME_LENGTH);
|
|
||||||
final String email = user.getEmail();
|
|
||||||
boolean isValid = Utils.isValidateEmailAddress(email);
|
|
||||||
if (isValid) {
|
|
||||||
final User oldUser = userService.getUserBy(email);
|
|
||||||
if (oldUser != null && user.getId() != oldUser.getId()) {
|
|
||||||
errors.rejectValue("email", Messages.EMAIL_ALREADY_EXIST);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Utils.validateEmailAddress(email, errors);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserService(UserService userService) {
|
|
||||||
this.userService = userService;
|
|
||||||
}
|
|
||||||
}
|
|
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
package com.wisemapping.validator;
|
package com.wisemapping.validator;
|
||||||
|
|
||||||
import com.wisemapping.controller.Messages;
|
|
||||||
import com.wisemapping.model.MindMap;
|
import com.wisemapping.model.MindMap;
|
||||||
import com.wisemapping.model.User;
|
import com.wisemapping.model.User;
|
||||||
import com.wisemapping.model.Constants;
|
import com.wisemapping.model.Constants;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.wisemapping.controller;
|
package com.wisemapping.validator;
|
||||||
|
|
||||||
public interface Messages {
|
public interface Messages {
|
||||||
String EMAIL_ALREADY_EXIST = "EMAIL_ALREADY_EXIST";
|
String EMAIL_ALREADY_EXIST = "EMAIL_ALREADY_EXIST";
|
@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.validator;
|
|
||||||
|
|
||||||
import com.wisemapping.model.Constants;
|
|
||||||
import com.wisemapping.view.TagBean;
|
|
||||||
import org.springframework.validation.Errors;
|
|
||||||
import org.springframework.validation.Validator;
|
|
||||||
|
|
||||||
public class TagValidator implements Validator {
|
|
||||||
|
|
||||||
public boolean supports(final Class clazz) {
|
|
||||||
return clazz.equals(TagBean.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void validate(Object obj, Errors errors) {
|
|
||||||
TagBean tag = (TagBean) obj;
|
|
||||||
if (tag == null) {
|
|
||||||
errors.rejectValue("user", "error.not-specified");
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// Validate email address ...
|
|
||||||
final String tags = tag.getMindmapTags();
|
|
||||||
ValidatorUtils.rejectIfExceeded(errors,
|
|
||||||
"mindmapTags",
|
|
||||||
"The tags must have less than "+ Constants.MAX_TAGS_LENGTH + " characters.",
|
|
||||||
tags,
|
|
||||||
Constants.MAX_TAGS_LENGTH);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
package com.wisemapping.validator;
|
package com.wisemapping.validator;
|
||||||
|
|
||||||
import com.wisemapping.controller.Messages;
|
|
||||||
import com.wisemapping.service.UserService;
|
import com.wisemapping.service.UserService;
|
||||||
import com.wisemapping.view.UserBean;
|
import com.wisemapping.view.UserBean;
|
||||||
import com.wisemapping.model.Constants;
|
import com.wisemapping.model.Constants;
|
||||||
|
@ -24,8 +24,6 @@ import org.springframework.validation.ValidationUtils;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
|
||||||
import com.wisemapping.controller.Messages;
|
|
||||||
|
|
||||||
final public class Utils {
|
final public class Utils {
|
||||||
//Set the email emailPattern string
|
//Set the email emailPattern string
|
||||||
|
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2011] [wisemapping]
|
|
||||||
*
|
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the license at
|
|
||||||
*
|
|
||||||
* http://www.wisemapping.org/license
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.wisemapping.view;
|
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class TagBean
|
|
||||||
{
|
|
||||||
private Set<String> userTags;
|
|
||||||
private String mindmapTitle;
|
|
||||||
private int mindmapId;
|
|
||||||
private String mindmapTags;
|
|
||||||
|
|
||||||
public TagBean(){}
|
|
||||||
|
|
||||||
public Set<String> getUserTags() {
|
|
||||||
return userTags;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserTags(Set<String> tags) {
|
|
||||||
this.userTags = tags;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMindmapTags() {
|
|
||||||
return mindmapTags;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMindmapTags(String tags) {
|
|
||||||
this.mindmapTags = tags;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMindmapTitle()
|
|
||||||
{
|
|
||||||
return mindmapTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMindmapTitle(String title)
|
|
||||||
{
|
|
||||||
this.mindmapTitle = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMindmapId()
|
|
||||||
{
|
|
||||||
return mindmapId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMindmapId(int id)
|
|
||||||
{
|
|
||||||
this.mindmapId = id;
|
|
||||||
}
|
|
||||||
}
|
|
@ -10,28 +10,32 @@
|
|||||||
<a href="${baseUrl}">
|
<a href="${baseUrl}">
|
||||||
<img style="border: 0;margin-top: 10px;"
|
<img style="border: 0;margin-top: 10px;"
|
||||||
src="${baseUrl}/images/logo-small.png"
|
src="${baseUrl}/images/logo-small.png"
|
||||||
alt="WiseMapping Log"/>
|
alt="WiseMapping"/>
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td valign="bottom" height="32px" style="padding: 0;font-size: 16px;">
|
<td valign="bottom" height="32px" style="padding: 0;font-size: 16px;">
|
||||||
Your password has been reset
|
${messageTitle}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div style="font-size: 13px; background-color: #FFF; padding: 10px 7px 7px 7px; min-height: 100px">
|
<div style="font-size: 13px; background-color: #FFF; padding: 10px 7px 7px 7px; min-height: 100px">
|
||||||
<p>A temporal password has been generated for you account. </p>
|
Hi ${firstName}:
|
||||||
|
<p>
|
||||||
|
${messageBody}
|
||||||
|
</p>
|
||||||
|
|
||||||
<p><strong>New Password: ${password}</strong></p>
|
<p style="color: #898989;">Regards,<br/>
|
||||||
|
The WiseMapping Team<br/>
|
||||||
<p>You can login clicking <a href="${baseUrl}/c/login">here</a>.We strongly encourage you to change the password as soon as possible.</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p style="font-size: 13px;font-family: Arial, sans-serif">Important: Do not reply this email. If
|
<p style="font-size: 13px;font-family: Arial, sans-serif">Important: Do not reply this email. If
|
||||||
you need further help or have any concerns regarding your account, contact us to <a href="mailto:${supportEmail}">here</a>.
|
you need further help or believe you have received this email in error, contact us to <a
|
||||||
|
href="mailto:${supportEmail}">here</a>.
|
||||||
</p>
|
</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -9,7 +9,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If you have received this mail by error, you do not need to take any action to cancel the account. The account will
|
If you have received this mail by error, you do not need to take any action to cancel the account. The account will
|
||||||
not be activated, and you will not receive any futher emails.
|
not be activated, and you will not receive any further emails.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
@ -1,41 +0,0 @@
|
|||||||
<html>
|
|
||||||
<body>
|
|
||||||
<div style="background-color: #d1e4f0; max-width: 650px; font-family: Arial, sans-serif; color: #000; padding: 5px;">
|
|
||||||
<div style="height: 36px; font-size: 14px; font-weight: bold; padding-bottom: 4px;">
|
|
||||||
<table style="display: inline;width: 100%;">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td height="35px" width="2px" style="padding: 0; padding-right: 5px; text-align:center">
|
|
||||||
<img src="https://ssl.gstatic.com/docs/documents/share/images/services/document-1.png"
|
|
||||||
alt="Document"/>
|
|
||||||
</td>
|
|
||||||
<td valign="middle" height="32px" style="padding: 0;">I've shared <a
|
|
||||||
href='https://docs.google.com/document/d/1kx48Yhpt01y2LZnIVGJNgKTg_IlvQMh=47R2NIwRn4Hg/edit'>Untitled
|
|
||||||
document
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div style="font-size: 13px; background-color: #FFF; padding: 10px 7px 7px 7px;">
|
|
||||||
Click to open:
|
|
||||||
<ul style="list-style-type: none; padding: 0; margin: 0;">
|
|
||||||
<li style="margin: 0;">
|
|
||||||
<a href="https://docs.google.com/document/d/1kx48Yhpt01y2LZnIVG=JNgKTg_IlvQMh47R2NIwRn4Hg/edit">Untitled
|
|
||||||
document</a></li>
|
|
||||||
</ul>
|
|
||||||
<span style="color: #898989;">Google Docs makes it easy to create, store and share online documents, spreadsheets and presentations.</span>
|
|
||||||
|
|
||||||
<div style="text-align: right;">
|
|
||||||
<a href="https://docs.google.com">
|
|
||||||
<img style="border: 0;margin-top: 10px;"
|
|
||||||
src="https://ssl.gstatic.com/docs/documents/share/images/services/docs_logo-1.gif"
|
|
||||||
alt="Logo for Google Docs"/>
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,23 +0,0 @@
|
|||||||
<html>
|
|
||||||
<body style="font-family: Arial, sans-serif; color: #000;">
|
|
||||||
<p>
|
|
||||||
Hi,
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Thank you so much for your interest in WiseMapping. Your subscription was a success! If you have any questions or
|
|
||||||
have any feedback, please don't hesitate to reply to this email, or use the on line form. We'd love to hear from
|
|
||||||
you.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
For questions or concerns regarding your account, send us an email to ${supportEmail}.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Cheers, <br/>
|
|
||||||
The WiseMapping Team.
|
|
||||||
<a href="${baseUrl}">WiseMapping Site</a>
|
|
||||||
</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -11,6 +11,7 @@ VIEWERS=Viewers
|
|||||||
ADD_VIEWERS=Add Viewers
|
ADD_VIEWERS=Add Viewers
|
||||||
CURRENT_VIEWERS=Current Viewers
|
CURRENT_VIEWERS=Current Viewers
|
||||||
USER_REGISTRATION=User Registration
|
USER_REGISTRATION=User Registration
|
||||||
|
SEND_ME_A_NEW_PASSWORD=Send Me A New Password
|
||||||
CANCEL=Cancel
|
CANCEL=Cancel
|
||||||
SUBMIT=Submit
|
SUBMIT=Submit
|
||||||
FIRSTNAME=Firstname
|
FIRSTNAME=Firstname
|
||||||
@ -19,6 +20,8 @@ EMAIL=Email
|
|||||||
HELP=Help
|
HELP=Help
|
||||||
LOGOUT=Logout
|
LOGOUT=Logout
|
||||||
PASSWORD=Password
|
PASSWORD=Password
|
||||||
|
NEW_PASSWORD=New password
|
||||||
|
CONFIRM_NEW_PASSWORD=Confirm new password
|
||||||
MY_WISEMAPS=My Wisemaps
|
MY_WISEMAPS=My Wisemaps
|
||||||
SAVE_AND_CLOSE=Save and Close
|
SAVE_AND_CLOSE=Save and Close
|
||||||
RETYPE_PASSWORD=Retype Password
|
RETYPE_PASSWORD=Retype Password
|
||||||
@ -26,7 +29,7 @@ REGISTER=Register
|
|||||||
REMEMBER_ME=Stay signed in
|
REMEMBER_ME=Stay signed in
|
||||||
SIGN_IN=Sign In
|
SIGN_IN=Sign In
|
||||||
SIGN_UP=Sign Up
|
SIGN_UP=Sign Up
|
||||||
SETTINGS=Settings
|
ACCOUNT=Account
|
||||||
USERNAME=Username
|
USERNAME=Username
|
||||||
BACK=Back
|
BACK=Back
|
||||||
CLOSE=Close
|
CLOSE=Close
|
||||||
@ -39,7 +42,7 @@ ROLE=Role
|
|||||||
YOUR_ROLE=Your Role
|
YOUR_ROLE=Your Role
|
||||||
CAPTCHA= Word Verification
|
CAPTCHA= Word Verification
|
||||||
FORGOT_PASSWORD=Forgot Password ?
|
FORGOT_PASSWORD=Forgot Password ?
|
||||||
CHANGE_PASSWORD=Change your Password
|
CHANGE_PASSWORD=Change Password
|
||||||
FAQ=Frequent Asked Questions
|
FAQ=Frequent Asked Questions
|
||||||
SHORT_FAQ=FAQ
|
SHORT_FAQ=FAQ
|
||||||
LOGIN=Login
|
LOGIN=Login
|
||||||
@ -99,6 +102,7 @@ EMAIL_ALREADY_EXIST=Email already exists
|
|||||||
NO_VALID_EMAIL_ADDRESS=Invalid email address
|
NO_VALID_EMAIL_ADDRESS=Invalid email address
|
||||||
USERNAME_ALREADY_EXIST=Username already exists
|
USERNAME_ALREADY_EXIST=Username already exists
|
||||||
PASSWORD_MISSMATCH=Your password entries did not match
|
PASSWORD_MISSMATCH=Your password entries did not match
|
||||||
|
CHANGE_PASSWORD_SUCCESS=Your password has been changed successfully.
|
||||||
TYPE_CHARACTER_BELOW=Type the characters you see in the picture below.
|
TYPE_CHARACTER_BELOW=Type the characters you see in the picture below.
|
||||||
WISEMAPPING_ACCOUNT_MESSAGE=Please check the WiseMapping Account information you've entered above, and review the Terms of Service
|
WISEMAPPING_ACCOUNT_MESSAGE=Please check the WiseMapping Account information you've entered above, and review the Terms of Service
|
||||||
REGISTRATION_CLICK_ADVICE= By clicking on 'Register' below you are agreeing to the Terms of Service above and the Privacy Policy.
|
REGISTRATION_CLICK_ADVICE= By clicking on 'Register' below you are agreeing to the Terms of Service above and the Privacy Policy.
|
||||||
@ -139,7 +143,7 @@ INSERT=Insert
|
|||||||
WISE_IT=Wise It!
|
WISE_IT=Wise It!
|
||||||
EDITOR.LAST_SAVED=last modification by {0}
|
EDITOR.LAST_SAVED=last modification by {0}
|
||||||
SHARE_IT=Share It
|
SHARE_IT=Share It
|
||||||
SETTINGS_DETAIL=Do you want to change you user options?. Here is the place.
|
ACCOUNT_DETAIL=Do you want to change you user options?. Here is the place.
|
||||||
SETTINGS_MSG=Please, select what option want to change from you profile:
|
SETTINGS_MSG=Please, select what option want to change from you profile:
|
||||||
TAGS=Tags
|
TAGS=Tags
|
||||||
AVAILABLE_TAGS = Available tags
|
AVAILABLE_TAGS = Available tags
|
||||||
|
@ -25,7 +25,7 @@ REGISTER=Registración
|
|||||||
REMEMBER_ME=Recordar mi sesión
|
REMEMBER_ME=Recordar mi sesión
|
||||||
SIGN_IN=Entrar
|
SIGN_IN=Entrar
|
||||||
SIGN_UP=Registrate
|
SIGN_UP=Registrate
|
||||||
SETTINGS=Configuración
|
ACCOUNT=Configuración
|
||||||
USERNAME=Nombre de usuario
|
USERNAME=Nombre de usuario
|
||||||
BACK=Atrás
|
BACK=Atrás
|
||||||
CLOSE=Cerrar
|
CLOSE=Cerrar
|
||||||
@ -141,7 +141,7 @@ INSERT=Insertar
|
|||||||
WISE_IT=Wise It!
|
WISE_IT=Wise It!
|
||||||
EDITOR.LAST_SAVED=ultima modificación hecha por {0}
|
EDITOR.LAST_SAVED=ultima modificación hecha por {0}
|
||||||
SHARE_IT=Compartilo
|
SHARE_IT=Compartilo
|
||||||
SETTINGS_DETAIL=Desea cambiar sus preferencias? Este es el lugar.
|
ACCOUNT_DETAIL=Desea cambiar sus preferencias? Este es el lugar.
|
||||||
SETTINGS_MSG=Por favor, seleccione que opción desea modificar de su perfil:
|
SETTINGS_MSG=Por favor, seleccione que opción desea modificar de su perfil:
|
||||||
TAGS=Etiquetas
|
TAGS=Etiquetas
|
||||||
AVAILABLE_TAGS = Etiquetas disponibles
|
AVAILABLE_TAGS = Etiquetas disponibles
|
||||||
|
@ -25,7 +25,7 @@ REGISTER = S\'inscrire
|
|||||||
REMEMBER_ME = M\u00e9moriser
|
REMEMBER_ME = M\u00e9moriser
|
||||||
SIGN_IN = S\'identifier
|
SIGN_IN = S\'identifier
|
||||||
SIGN_UP = Se d\u00e9connecter
|
SIGN_UP = Se d\u00e9connecter
|
||||||
SETTINGS = Param\u00e9tres du compte
|
ACCOUNT = Param\u00e9tres du compte
|
||||||
USERNAME = Pseudo
|
USERNAME = Pseudo
|
||||||
BACK = Pr\u00e9c\u00e9dent
|
BACK = Pr\u00e9c\u00e9dent
|
||||||
CLOSE = Fermer
|
CLOSE = Fermer
|
||||||
@ -145,7 +145,7 @@ INSERT = Ins\u00e9rer
|
|||||||
|
|
||||||
EDITOR.LAST_SAVED = Derni\u00e9re modification par
|
EDITOR.LAST_SAVED = Derni\u00e9re modification par
|
||||||
SHARE_IT = Partager
|
SHARE_IT = Partager
|
||||||
SETTINGS_DETAIL = Souhaitez-vous modifier les options de votre profil ?
|
ACCOUNT_DETAIL = Souhaitez-vous modifier les options de votre profil ?
|
||||||
SETTINGS_MSG = S\u00e9lectionnez les options que vous souhaitez modifier dans votre profil
|
SETTINGS_MSG = S\u00e9lectionnez les options que vous souhaitez modifier dans votre profil
|
||||||
TAGS = Mots-cl\u00e9s
|
TAGS = Mots-cl\u00e9s
|
||||||
AVAILABLE_TAGS = Mots-cl\u00e9s disponibles
|
AVAILABLE_TAGS = Mots-cl\u00e9s disponibles
|
||||||
|
@ -94,10 +94,9 @@
|
|||||||
<put-attribute name="body" value="/jsp/mindmapDetail.jsp"/>
|
<put-attribute name="body" value="/jsp/mindmapDetail.jsp"/>
|
||||||
</definition>
|
</definition>
|
||||||
|
|
||||||
<definition name="setting" extends="dialogTemplate">
|
<definition name="accountSettings" extends="dialogTemplate">
|
||||||
<put-attribute name="title" value="SETTINGS"/>
|
<put-attribute name="title" value="SETTINGS"/>
|
||||||
<put-attribute name="details" value="SETTINGS_MSG"/>
|
<put-attribute name="body" value="/jsp/accountSettings.jsp"/>
|
||||||
<put-attribute name="body" value="/jsp/setting.jsp"/>
|
|
||||||
</definition>
|
</definition>
|
||||||
|
|
||||||
<definition name="editProfile" extends="dialogTemplate">
|
<definition name="editProfile" extends="dialogTemplate">
|
||||||
@ -173,11 +172,4 @@
|
|||||||
<put-attribute name="details" value="KEYBOARD_MSG"/>
|
<put-attribute name="details" value="KEYBOARD_MSG"/>
|
||||||
<put-attribute name="body" value="/jsp/keyboard.jsp"/>
|
<put-attribute name="body" value="/jsp/keyboard.jsp"/>
|
||||||
</definition>
|
</definition>
|
||||||
|
|
||||||
<definition name="changePassword" extends="dialogTemplate">
|
|
||||||
<put-attribute name="title" value="CHANGE_PASSWORD"/>
|
|
||||||
<put-attribute name="details" value="FIELD_REQUIRED_MSG"/>
|
|
||||||
<put-attribute name="body" value="/jsp/changePassword.jsp"/>
|
|
||||||
</definition>
|
|
||||||
|
|
||||||
</tiles-definitions>
|
</tiles-definitions>
|
||||||
|
@ -90,8 +90,7 @@
|
|||||||
<init-param>
|
<init-param>
|
||||||
<param-name>contextConfigLocation</param-name>
|
<param-name>contextConfigLocation</param-name>
|
||||||
<param-value>
|
<param-value>
|
||||||
<!--/WEB-INF/wisemapping-servlet.xml-->
|
/WEB-INF/wisemapping-servlet.xml
|
||||||
/WEB-INF/wisemapping-nservlet.xml
|
|
||||||
</param-value>
|
</param-value>
|
||||||
</init-param>
|
</init-param>
|
||||||
|
|
||||||
|
@ -1,97 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns:context="http://www.springframework.org/schema/context"
|
|
||||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
|
||||||
xsi:schemaLocation="
|
|
||||||
http://www.springframework.org/schema/beans
|
|
||||||
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
|
|
||||||
http://www.springframework.org/schema/context
|
|
||||||
http://www.springframework.org/schema/context/spring-context-3.1.xsd
|
|
||||||
http://www.springframework.org/schema/mvc
|
|
||||||
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
|
|
||||||
|
|
||||||
<context:component-scan base-package="com.wisemapping.ncontroller"/>
|
|
||||||
<context:annotation-config/>
|
|
||||||
<mvc:annotation-driven/>
|
|
||||||
|
|
||||||
|
|
||||||
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
|
|
||||||
<property name="location" value="/WEB-INF/app.properties"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="exceptionHandlerResolver"
|
|
||||||
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
|
|
||||||
<property name="defaultStatusCode" value="500"/>
|
|
||||||
<property name="defaultErrorView" value="unexpectedError"/>
|
|
||||||
<property name="exceptionMappings">
|
|
||||||
<props>
|
|
||||||
<prop key="com.wisemapping.exceptions.UnsupportedBrowserException">browserNotSupported</prop>
|
|
||||||
<!-- Security exceptions are wrapped in this exceptions -->
|
|
||||||
<prop key="java.lang.reflect.UndeclaredThrowableException">securityError</prop>
|
|
||||||
</props>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
|
|
||||||
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
|
|
||||||
<property name="definitions">
|
|
||||||
<list>
|
|
||||||
<value>/WEB-INF/defs/definitions.xml</value>
|
|
||||||
</list>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="localeResolver"
|
|
||||||
class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
|
|
||||||
<property name="defaultLocale" value="en"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="localeChangeInterceptor"
|
|
||||||
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
|
|
||||||
<property name="paramName" value="language"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="reCaptcha" class="net.tanesha.recaptcha.ReCaptchaImpl">
|
|
||||||
<property name="privateKey" value="${registration.recaptcha.privateKey}"/>
|
|
||||||
<property name="publicKey" value="${registration.recaptcha.publicKey}"/>
|
|
||||||
<property name="includeNoscript" value="false"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="multipartResolver"
|
|
||||||
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
|
||||||
<!-- one of the properties available; the maximum file size in bytes -->
|
|
||||||
<property name="maxUploadSize" value="522240"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="browserSupportInterceptor" class="com.wisemapping.filter.BrowserSupportInterceptor">
|
|
||||||
<property name="exclude">
|
|
||||||
<list>
|
|
||||||
<value>/</value>
|
|
||||||
<value>/index.jsp</value>
|
|
||||||
<value>/c/home</value>
|
|
||||||
<value>/c/login</value>
|
|
||||||
<value>/c/user/registration</value>
|
|
||||||
<value>/c/captcha</value>
|
|
||||||
<value>/c/publicView</value>
|
|
||||||
<value>/service/*</value>
|
|
||||||
<value>/c/search</value>
|
|
||||||
<value>/c/keyboard</value>
|
|
||||||
<value>/c/renameMap</value>
|
|
||||||
<value>/c/embeddedView</value>
|
|
||||||
<value>/c/user/resetPassword</value>
|
|
||||||
</list>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
|
|
||||||
<property name="basenames">
|
|
||||||
<list>
|
|
||||||
<value>messages</value>
|
|
||||||
</list>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
</beans>
|
|
@ -1,51 +1,97 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:context="http://www.springframework.org/schema/context"
|
||||||
|
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||||
|
xsi:schemaLocation="
|
||||||
|
http://www.springframework.org/schema/beans
|
||||||
|
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
|
||||||
|
http://www.springframework.org/schema/context
|
||||||
|
http://www.springframework.org/schema/context/spring-context-3.1.xsd
|
||||||
|
http://www.springframework.org/schema/mvc
|
||||||
|
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
|
||||||
|
|
||||||
<beans>
|
<context:component-scan base-package="com.wisemapping.ncontroller"/>
|
||||||
|
<context:annotation-config/>
|
||||||
|
<mvc:annotation-driven/>
|
||||||
|
|
||||||
<bean id="userValidator" class="com.wisemapping.validator.UserValidator">
|
|
||||||
<property name="userService" ref="userService"/>
|
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
|
||||||
<property name="captchaService" ref="reCaptcha"/>
|
<property name="location" value="/WEB-INF/app.properties"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="settingResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
|
<bean id="exceptionHandlerResolver"
|
||||||
<property name="mappings">
|
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
|
||||||
|
<property name="defaultStatusCode" value="500"/>
|
||||||
|
<property name="defaultErrorView" value="unexpectedError"/>
|
||||||
|
<property name="exceptionMappings">
|
||||||
<props>
|
<props>
|
||||||
<prop key="settings">settings</prop>
|
<prop key="com.wisemapping.exceptions.UnsupportedBrowserException">browserNotSupported</prop>
|
||||||
|
<!-- Security exceptions are wrapped in this exceptions -->
|
||||||
|
<prop key="java.lang.reflect.UndeclaredThrowableException">securityError</prop>
|
||||||
</props>
|
</props>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="settingsController" class="com.wisemapping.controller.SettingsController">
|
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
|
||||||
<property name="methodNameResolver" ref="settingResolver"/>
|
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="changePasswordValidator" class="com.wisemapping.validator.ChangePasswordValidator"/>
|
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
|
||||||
<bean id="changePasswordController" class="com.wisemapping.controller.ChangePasswordController">
|
<property name="definitions">
|
||||||
<property name="sessionForm" value="false"/>
|
<list>
|
||||||
<property name="commandName" value="changePassword"/>
|
<value>/WEB-INF/defs/definitions.xml</value>
|
||||||
<property name="commandClass" value="com.wisemapping.view.ChangePasswordBean"/>
|
</list>
|
||||||
<property name="validator" ref="changePasswordValidator"/>
|
</property>
|
||||||
<property name="formView" value="changePassword"/>
|
|
||||||
<property name="successView" value="closeDialog"/>
|
|
||||||
<property name="userService" ref="userService"/>
|
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="editProfileValidator" class="com.wisemapping.validator.EditProfileValidator">
|
<bean id="localeResolver"
|
||||||
<property name="userService" ref="userService"/>
|
class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
|
||||||
|
<property name="defaultLocale" value="en"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="editProfileController" class="com.wisemapping.controller.EditProfileController">
|
<bean id="localeChangeInterceptor"
|
||||||
<property name="sessionForm" value="false"/>
|
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
|
||||||
<property name="commandName" value="editProfile"/>
|
<property name="paramName" value="language"/>
|
||||||
<property name="commandClass" value="com.wisemapping.view.UserBean"/>
|
|
||||||
<property name="validator" ref="editProfileValidator"/>
|
|
||||||
<property name="formView" value="editProfile"/>
|
|
||||||
<property name="successView" value="closeDialog"/>
|
|
||||||
<property name="userService" ref="userService"/>
|
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="activationController" class="com.wisemapping.controller.ActivationController">
|
<bean id="reCaptcha" class="net.tanesha.recaptcha.ReCaptchaImpl">
|
||||||
<property name="userService" ref="userService"/>
|
<property name="privateKey" value="${registration.recaptcha.privateKey}"/>
|
||||||
|
<property name="publicKey" value="${registration.recaptcha.publicKey}"/>
|
||||||
|
<property name="includeNoscript" value="false"/>
|
||||||
</bean>
|
</bean>
|
||||||
ans>
|
|
||||||
|
<bean id="multipartResolver"
|
||||||
|
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
||||||
|
<!-- one of the properties available; the maximum file size in bytes -->
|
||||||
|
<property name="maxUploadSize" value="522240"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="browserSupportInterceptor" class="com.wisemapping.filter.BrowserSupportInterceptor">
|
||||||
|
<property name="exclude">
|
||||||
|
<list>
|
||||||
|
<value>/</value>
|
||||||
|
<value>/index.jsp</value>
|
||||||
|
<value>/c/home</value>
|
||||||
|
<value>/c/login</value>
|
||||||
|
<value>/c/user/registration</value>
|
||||||
|
<value>/c/captcha</value>
|
||||||
|
<value>/c/publicView</value>
|
||||||
|
<value>/service/*</value>
|
||||||
|
<value>/c/search</value>
|
||||||
|
<value>/c/keyboard</value>
|
||||||
|
<value>/c/renameMap</value>
|
||||||
|
<value>/c/embeddedView</value>
|
||||||
|
<value>/c/user/resetPassword</value>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
|
||||||
|
<property name="basenames">
|
||||||
|
<list>
|
||||||
|
<value>messages</value>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
</beans>
|
99
wise-webapp/src/main/webapp/jsp/accountSettings.jsp
Executable file
99
wise-webapp/src/main/webapp/jsp/accountSettings.jsp
Executable file
@ -0,0 +1,99 @@
|
|||||||
|
<%@ include file="/jsp/init.jsp" %>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
|
<li class="active"><a href="#changeUserPanel" data-toggle="pill">General</a></li>
|
||||||
|
<li><a href="#changePasswordPanel" data-toggle="pill">Security</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane fade active in" id="changeUserPanel">
|
||||||
|
<div id="changeInfoMsg" class="alert">
|
||||||
|
</div>
|
||||||
|
<form action="#" method="POST" id="changeUserForm">
|
||||||
|
<fieldset>
|
||||||
|
<label for="email"><strong><spring:message code="EMAIL"/>:</strong></label>
|
||||||
|
<input type="text" name="password" id="email" required="required" readonly="readonly"
|
||||||
|
value="${user.email}"/>
|
||||||
|
|
||||||
|
<label for="userName"><strong><spring:message code="USERNAME"/>:</strong></label>
|
||||||
|
<input type="text" name="password" id="userName" required="required" value="${user.username}"
|
||||||
|
readonly="readonly"/>
|
||||||
|
|
||||||
|
<label for="firstname"><strong><spring:message code="FIRSTNAME"/>:</strong></label>
|
||||||
|
<input type="text" name="firstname" id="firstname" required="required" value="${user.firstname}"/>
|
||||||
|
|
||||||
|
<label for="lastname"><strong><spring:message code="LASTNAME"/>:</strong></label>
|
||||||
|
<input type="text" name="lastname" id="lastname" required="required" value="${user.lastname}"/>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<input type="submit" id="changeUserInfoBtn" class="btn btn-primary" value="Save"/>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane fade" id="changePasswordPanel">
|
||||||
|
<div id="changePasswordMsg" class="alert">
|
||||||
|
</div>
|
||||||
|
<form action="#" method="POST" id="changePasswordForm">
|
||||||
|
<fieldset>
|
||||||
|
<label for="password"><strong><spring:message code="NEW_PASSWORD"/>:</strong></label>
|
||||||
|
<input type="password" name="password" id="password" required="required"/>
|
||||||
|
|
||||||
|
<label for="repassword"><strong><spring:message code="CONFIRM_NEW_PASSWORD"/>:</strong></label>
|
||||||
|
<input type="password" name="password" id="repassword" required="required"/>
|
||||||
|
<br/>
|
||||||
|
<input type="submit" id="changePasswordBtn" class="btn btn-primary"
|
||||||
|
value="<spring:message code="CHANGE_PASSWORD"/>"/>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('#changePasswordMsg').hide();
|
||||||
|
function postChange(url, postBody, msgContainerId, successMsg) {
|
||||||
|
// Change success message ...
|
||||||
|
jQuery.ajax(url, {
|
||||||
|
async:false,
|
||||||
|
dataType: 'json',
|
||||||
|
data: postBody,
|
||||||
|
type: 'PUT',
|
||||||
|
contentType:"text/plain; charset=utf-8",
|
||||||
|
success : function(data, textStatus, jqXHR) {
|
||||||
|
$('#' + msgContainerId).removeClass('alert-error').addClass('alert-info').show();
|
||||||
|
$('#' + msgContainerId).text(successMsg);
|
||||||
|
},
|
||||||
|
error: function(jqXHR, textStatus, errorThrown) {
|
||||||
|
$('#' + msgContainerId).removeClass('alert-info').addClass('alert-error').show();
|
||||||
|
$('#' + msgContainerId).text(textStatus);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#changePasswordForm').submit(function(event) {
|
||||||
|
|
||||||
|
var inputVal = $('#changePasswordForm #password').val();
|
||||||
|
var rinputVal = $('#changePasswordForm #repassword').val();
|
||||||
|
if (inputVal != rinputVal) {
|
||||||
|
// Password mismatch message ...
|
||||||
|
$('#changePasswordMsg').removeClass('alert-info').addClass('alert-error').show();
|
||||||
|
$('#changePasswordMsg').text('<spring:message code="PASSWORD_MISSMATCH"/>');
|
||||||
|
} else {
|
||||||
|
postChange("service/account/password", inputVal, 'changePasswordMsg', '<spring:message code="CHANGE_PASSWORD_SUCCESS"/>');
|
||||||
|
}
|
||||||
|
event.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#changeUserForm').submit(function(event) {
|
||||||
|
|
||||||
|
var fistname = $('#changeUserForm #firstname').val();
|
||||||
|
var lastname = $('#changeUserForm #lastname').val();
|
||||||
|
|
||||||
|
postChange("service/account/firstname", fistname, 'changeInfoMsg', 'Your info has been changed successfully');
|
||||||
|
postChange("service/account/lastname", lastname, 'changeInfoMsg', 'Your info has been changed successfully');
|
||||||
|
event.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
@ -17,8 +17,8 @@
|
|||||||
<spring:message code="MY_WISEMAPS"/>
|
<spring:message code="MY_WISEMAPS"/>
|
||||||
</a>
|
</a>
|
||||||
| <a href="${pageContext.request.contextPath}/c/settings" rel="moodalbox 400px 250px wizard"
|
| <a href="${pageContext.request.contextPath}/c/settings" rel="moodalbox 400px 250px wizard"
|
||||||
title="<spring:message code="SETTINGS_DETAIL"/>">
|
title="<spring:message code="ACCOUNT_DETAIL"/>">
|
||||||
<spring:message code="SETTINGS"/>
|
<spring:message code="ACCOUNT"/>
|
||||||
</a>
|
</a>
|
||||||
| <a href="${pageContext.request.contextPath}/c/logout" title="<spring:message code="LOGOUT"/>">
|
| <a href="${pageContext.request.contextPath}/c/logout" title="<spring:message code="LOGOUT"/>">
|
||||||
<spring:message code="LOGOUT"/>
|
<spring:message code="LOGOUT"/>
|
||||||
|
@ -1,17 +1,33 @@
|
|||||||
<%@page pageEncoding="UTF-8"%>
|
<%@page pageEncoding="UTF-8" %>
|
||||||
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
|
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
|
||||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
|
||||||
|
<div id="settings-dialog-modal" class="modal fade">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
|
<h3><spring:message code="ACCOUNT"/></h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-cancel" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<div id="headerToolbar">
|
<div id="headerToolbar">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${principal != null}">
|
<c:when test="${principal != null}">
|
||||||
<div id="headerActions">
|
<div id="headerActions">
|
||||||
<spring:message code="WELCOME"/>, ${principal.firstname}
|
<spring:message code="WELCOME"/>, ${principal.firstname}
|
||||||
| <span><a href="${pageContext.request.contextPath}/c/maps/"><spring:message code="MY_WISEMAPS"/></a></span>
|
| <span><a href="${pageContext.request.contextPath}/c/maps/"><spring:message
|
||||||
| <span><a href="${pageContext.request.contextPath}/c/settings" title="<spring:message code="SETTINGS_DETAIL"/>"><spring:message code="SETTINGS"/></a></span>
|
code="MY_WISEMAPS"/></a></span>
|
||||||
| <span><a href="${pageContext.request.contextPath}/c/logout" title="<spring:message code="LOGOUT"/>"><spring:message code="LOGOUT"/></a></span>
|
| <span><a id="userSettingsBtn" href="#"
|
||||||
|
title="<spring:message code="ACCOUNT_DETAIL"/>"><spring:message
|
||||||
|
code="ACCOUNT"/></a></span>
|
||||||
|
| <span><a href="${pageContext.request.contextPath}/c/logout"
|
||||||
|
title="<spring:message code="LOGOUT"/>"><spring:message code="LOGOUT"/></a></span>
|
||||||
</div>
|
</div>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${param.removeSignin!=true}">
|
<c:when test="${param.removeSignin!=true}">
|
||||||
@ -20,7 +36,7 @@
|
|||||||
<span><a href="${pageContext.request.contextPath}/c/login" title="<spring:message code="SIGN_IN"/>">
|
<span><a href="${pageContext.request.contextPath}/c/login" title="<spring:message code="SIGN_IN"/>">
|
||||||
<spring:message code="SIGN_IN"/>
|
<spring:message code="SIGN_IN"/>
|
||||||
</a></span>
|
</a></span>
|
||||||
</div>
|
</div>
|
||||||
</c:when>
|
</c:when>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
<div class="header_languages">
|
<div class="header_languages">
|
||||||
@ -38,13 +54,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<c:if test="${param.onlyActionHeader!=true}">
|
<c:if test="${param.onlyActionHeader!=true}">
|
||||||
<div id="headerContent">
|
<div id="headerContent">
|
||||||
<div id="headerButtons">
|
|
||||||
<%--<div id="blogLink">--%>
|
|
||||||
<%--<a href="${pageContext.request.contextPath}/c/blog" title="<spring:message code="BLOG_TITLE"/>">--%>
|
|
||||||
<%--<spring:message code="BLOG"/>--%>
|
|
||||||
<%--</a>--%>
|
|
||||||
<%--</div>--%>
|
|
||||||
</div>
|
|
||||||
<a href="${pageContext.request.contextPath}/c/home" title="Homepage">
|
<a href="${pageContext.request.contextPath}/c/home" title="Homepage">
|
||||||
<div id="headerLogo"> </div>
|
<div id="headerLogo"> </div>
|
||||||
</a>
|
</a>
|
||||||
@ -55,3 +64,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('#userSettingsBtn').click(
|
||||||
|
function(event) {
|
||||||
|
$('#settings-dialog-modal .modal-body').load("/c/account/settings"),function() {
|
||||||
|
$('#settings-dialog-modal .btn-accept').unbind('click').click(function() {
|
||||||
|
// hacer lago ...
|
||||||
|
});
|
||||||
|
};
|
||||||
|
$('#settings-dialog-modal').modal();
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,11 +49,11 @@
|
|||||||
|
|
||||||
<li><strong><spring:message code="URL"/>:</strong>
|
<li><strong><spring:message code="URL"/>:</strong>
|
||||||
<li><input name="url"
|
<li><input name="url"
|
||||||
value="http://www.wisemapping.com/c/publicView?mapId=${mindmap.id}"
|
value="${baseUrl}/c/maps/${mindmap.id}/public"
|
||||||
style="width:400px" readonly="readonly"/>
|
style="width:400px" readonly="readonly"/>
|
||||||
</li>
|
</li>
|
||||||
<li><strong><spring:message code="BLOG_SNIPPET"/></strong>
|
<li><strong><spring:message code="BLOG_SNIPPET"/></strong>
|
||||||
<pre><iframe style="border:0;width:600px;height:400px;border: 1px solid black" src="http://www.wisemapping.com/c/embeddedView?mapId=${mindmap.id}&amzoom=1"></iframe></pre>
|
<pre><iframe style="border:0;width:600px;height:400px;border: 1px solid black" src="${baseUrl}/c/maps/${mindmap.id}/embed?zoom=1"></iframe></pre>
|
||||||
</li>
|
</li>
|
||||||
<li><spring:message code="EMBEDDED_MAP_SIZE"/></li>
|
<li><spring:message code="EMBEDDED_MAP_SIZE"/></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -64,9 +64,9 @@
|
|||||||
|
|
||||||
<spring:message code="WELCOME"/>, ${principal.firstname}|<span><a
|
<spring:message code="WELCOME"/>, ${principal.firstname}|<span><a
|
||||||
href="c/maps/"><spring:message code="MY_WISEMAPS"/></a></span> |
|
href="c/maps/"><spring:message code="MY_WISEMAPS"/></a></span> |
|
||||||
<span><a id="settings" href="c/settings"
|
<%--<span><a id="settings" href="c/settings"--%>
|
||||||
title="<spring:message code="SETTINGS_DETAIL"/>"><spring:message code="SETTINGS"/></a></span>
|
<%--title="<spring:message code="ACCOUNT_DETAIL"/>"><spring:message code="ACCOUNT"/></a></span> |--%>
|
||||||
| <span><a href="c/logout" title="<spring:message code="LOGOUT"/>">
|
<span><a href="c/logout" title="<spring:message code="LOGOUT"/>">
|
||||||
<spring:message code="LOGOUT"/>
|
<spring:message code="LOGOUT"/>
|
||||||
</a></span>
|
</a></span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -115,7 +115,7 @@
|
|||||||
|
|
||||||
<div id="dialogsContainer">
|
<div id="dialogsContainer">
|
||||||
<!-- New map dialog -->
|
<!-- New map dialog -->
|
||||||
<div id="new-dialog-modal" title="Add new map" class="modal fade" style="display:none">
|
<div id="new-dialog-modal" title="Add new map" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>Create a new map</h3>
|
<h3>Create a new map</h3>
|
||||||
@ -144,7 +144,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Duplicate map dialog -->
|
<!-- Duplicate map dialog -->
|
||||||
<div id="duplicate-dialog-modal" class="modal fade" style="display: none">
|
<div id="duplicate-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3 id="dupDialogTitle"></h3>
|
<h3 id="dupDialogTitle"></h3>
|
||||||
@ -175,7 +175,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Rename map dialog -->
|
<!-- Rename map dialog -->
|
||||||
<div id="rename-dialog-modal" class="modal fade" style="display: none">
|
<div id="rename-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3 id="renameDialogTitle"></h3>
|
<h3 id="renameDialogTitle"></h3>
|
||||||
@ -204,7 +204,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Delete map dialog -->
|
<!-- Delete map dialog -->
|
||||||
<div id="delete-dialog-modal" class="modal fade" style="display: none">
|
<div id="delete-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>Delete MindMap</h3>
|
<h3>Delete MindMap</h3>
|
||||||
@ -222,7 +222,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Info map dialog -->
|
<!-- Info map dialog -->
|
||||||
<div id="info-dialog-modal" class="modal fade" style="display: none">
|
<div id="info-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>Info</h3>
|
<h3>Info</h3>
|
||||||
@ -236,7 +236,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Publish Dialog Config -->
|
<!-- Publish Dialog Config -->
|
||||||
<div id="publish-dialog-modal" class="modal fade" style="display: none">
|
<div id="publish-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>Publish</h3>
|
<h3>Publish</h3>
|
||||||
@ -251,7 +251,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Export Dialog Config -->
|
<!-- Export Dialog Config -->
|
||||||
<div id="export-dialog-modal" class="modal fade" style="display: none">
|
<div id="export-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>Export</h3>
|
<h3>Export</h3>
|
||||||
@ -266,7 +266,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Import Dialog Config -->
|
<!-- Import Dialog Config -->
|
||||||
<div id="import-dialog-modal" class="modal fade" style="display: none">
|
<div id="import-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>Import</h3>
|
<h3>Import</h3>
|
||||||
@ -281,7 +281,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Share Dialog Config -->
|
<!-- Share Dialog Config -->
|
||||||
<div id="share-dialog-modal" class="modal fade" style="display: none">
|
<div id="share-dialog-modal" class="modal fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>Share</h3>
|
<h3>Share</h3>
|
||||||
@ -296,7 +296,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- History Dialog Config -->
|
<!-- History Dialog Config -->
|
||||||
<div id="history-dialog-modal" class="modal fade" style="display: none">
|
<div id="history-dialog-modal" class="modal fade" >
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button class="close" data-dismiss="modal">x</button>
|
<button class="close" data-dismiss="modal">x</button>
|
||||||
<h3>History</h3>
|
<h3>History</h3>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<!DOCTYPE HTML>
|
<!DOCTYPE HTML>
|
||||||
|
|
||||||
<%@page pageEncoding="UTF-8" %>
|
<%@page pageEncoding="UTF-8" %>
|
||||||
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
|
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
|
||||||
<%@ include file="/jsp/init.jsp" %>
|
<%@ include file="/jsp/init.jsp" %>
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<label for="email"><spring:message code="EMAIL"/></label>
|
<label for="email"><spring:message code="EMAIL"/></label>
|
||||||
<input id="email" type="email" required="required" name="email"/>
|
<input id="email" type="email" required="required" name="email"/>
|
||||||
|
|
||||||
<input type="submit" value="<spring:message code="SUBMIT"/>" class="btn btn-primary" data-loading-text="Saving ..."/>
|
<input type="submit" value="<spring:message code="SUBMIT"/>" class="btn btn-primary" data-loading-text="Seding ..."/>
|
||||||
<input type="button" value="<spring:message code="CANCEL"/>" class="btn"
|
<input type="button" value="<spring:message code="CANCEL"/>" class="btn"
|
||||||
onclick="window.location='<c:url value="c/maps/"/>'"/>
|
onclick="window.location='<c:url value="c/maps/"/>'"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
<%@ include file="/jsp/init.jsp" %>
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li><a rel="moodalbox 400px 200px wizard"
|
|
||||||
href="<c:out value="${pageContext.request.contextPath}/c/changePassword"/>"
|
|
||||||
title="<spring:message code="CHANGE_PASSWORD"/>">
|
|
||||||
<spring:message code="CHANGE_PASSWORD"/>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li><a rel="moodalbox 400px 250px wizard"
|
|
||||||
href="<c:out value="${pageContext.request.contextPath}/c/editProfile"/>"
|
|
||||||
title="<spring:message code="EDIT_PROFILE"/>">
|
|
||||||
<spring:message code="EDIT_PROFILE"/>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
Loading…
Reference in New Issue
Block a user