mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-15 11:07:57 +01:00
forgot password and oauth
This commit is contained in:
parent
82c8df2d7e
commit
b9918a0614
@ -19,7 +19,6 @@
|
|||||||
package com.wisemapping.rest;
|
package com.wisemapping.rest;
|
||||||
|
|
||||||
import com.wisemapping.exceptions.WiseMappingException;
|
import com.wisemapping.exceptions.WiseMappingException;
|
||||||
import com.wisemapping.mail.NotificationService;
|
|
||||||
import com.wisemapping.model.Collaboration;
|
import com.wisemapping.model.Collaboration;
|
||||||
import com.wisemapping.model.Label;
|
import com.wisemapping.model.Label;
|
||||||
import com.wisemapping.model.Mindmap;
|
import com.wisemapping.model.Mindmap;
|
||||||
@ -54,10 +53,6 @@ public class AccountController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private LabelService labelService;
|
private LabelService labelService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private NotificationService notificationService;
|
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.PUT, value = "account/password", consumes = {"text/plain"})
|
@RequestMapping(method = RequestMethod.PUT, value = "account/password", consumes = {"text/plain"})
|
||||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
public void changePassword(@RequestBody String password) {
|
public void changePassword(@RequestBody String password) {
|
||||||
|
@ -23,6 +23,7 @@ import com.wisemapping.exceptions.WiseMappingException;
|
|||||||
import com.wisemapping.model.AuthenticationType;
|
import com.wisemapping.model.AuthenticationType;
|
||||||
import com.wisemapping.model.User;
|
import com.wisemapping.model.User;
|
||||||
import com.wisemapping.rest.model.RestOath2CallbackResponse;
|
import com.wisemapping.rest.model.RestOath2CallbackResponse;
|
||||||
|
import com.wisemapping.rest.model.RestResetPasswordResponse;
|
||||||
import com.wisemapping.rest.model.RestUserRegistration;
|
import com.wisemapping.rest.model.RestUserRegistration;
|
||||||
import com.wisemapping.service.*;
|
import com.wisemapping.service.*;
|
||||||
import com.wisemapping.validator.Messages;
|
import com.wisemapping.validator.Messages;
|
||||||
@ -129,9 +130,9 @@ public class UserController extends BaseController {
|
|||||||
|
|
||||||
@RequestMapping(method = RequestMethod.PUT, value = "/users/resetPassword", produces = { "application/json" })
|
@RequestMapping(method = RequestMethod.PUT, value = "/users/resetPassword", produces = { "application/json" })
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
public void resetPassword(@RequestParam String email) throws InvalidAuthSchemaException, EmailNotExistsException {
|
public RestResetPasswordResponse resetPassword(@RequestParam String email) throws InvalidAuthSchemaException, EmailNotExistsException {
|
||||||
try {
|
try {
|
||||||
userService.resetPassword(email);
|
return userService.resetPassword(email);
|
||||||
} catch (InvalidUserEmailException e) {
|
} catch (InvalidUserEmailException e) {
|
||||||
throw new EmailNotExistsException(e);
|
throw new EmailNotExistsException(e);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.wisemapping.rest.model;
|
||||||
|
|
||||||
|
public enum RestResetPasswordAction {
|
||||||
|
|
||||||
|
EMAIL_SENT, OAUTH2_USER
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.wisemapping.rest.model;
|
||||||
|
|
||||||
|
public class RestResetPasswordResponse {
|
||||||
|
|
||||||
|
RestResetPasswordAction action;
|
||||||
|
|
||||||
|
public RestResetPasswordAction getAction() {
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAction(RestResetPasswordAction action) {
|
||||||
|
this.action = action;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import com.wisemapping.model.AuthenticationType;
|
||||||
import com.wisemapping.model.User;
|
import com.wisemapping.model.User;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@ -102,6 +103,10 @@ public class RestUser {
|
|||||||
return this.user;
|
return this.user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AuthenticationType getAuthenticationType() {
|
||||||
|
return user.getAuthenticationType();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (!(o instanceof RestUser)) {
|
if (!(o instanceof RestUser)) {
|
||||||
|
@ -20,6 +20,8 @@ package com.wisemapping.service;
|
|||||||
|
|
||||||
import com.wisemapping.exceptions.WiseMappingException;
|
import com.wisemapping.exceptions.WiseMappingException;
|
||||||
import com.wisemapping.model.User;
|
import com.wisemapping.model.User;
|
||||||
|
import com.wisemapping.rest.model.RestResetPasswordResponse;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public interface UserService {
|
public interface UserService {
|
||||||
@ -40,7 +42,7 @@ public interface UserService {
|
|||||||
|
|
||||||
void updateUser(User user);
|
void updateUser(User user);
|
||||||
|
|
||||||
void resetPassword(@NotNull String email) throws InvalidUserEmailException, InvalidAuthSchemaException;
|
RestResetPasswordResponse resetPassword(@NotNull String email) throws InvalidUserEmailException, InvalidAuthSchemaException;
|
||||||
|
|
||||||
void removeUser(@NotNull User user);
|
void removeUser(@NotNull User user);
|
||||||
|
|
||||||
|
@ -23,6 +23,8 @@ import com.wisemapping.exceptions.InvalidMindmapException;
|
|||||||
import com.wisemapping.exceptions.WiseMappingException;
|
import com.wisemapping.exceptions.WiseMappingException;
|
||||||
import com.wisemapping.mail.NotificationService;
|
import com.wisemapping.mail.NotificationService;
|
||||||
import com.wisemapping.model.*;
|
import com.wisemapping.model.*;
|
||||||
|
import com.wisemapping.rest.model.RestResetPasswordAction;
|
||||||
|
import com.wisemapping.rest.model.RestResetPasswordResponse;
|
||||||
import com.wisemapping.service.google.GoogleAccountBasicData;
|
import com.wisemapping.service.google.GoogleAccountBasicData;
|
||||||
import com.wisemapping.service.google.GoogleService;
|
import com.wisemapping.service.google.GoogleService;
|
||||||
import com.wisemapping.util.VelocityEngineUtils;
|
import com.wisemapping.util.VelocityEngineUtils;
|
||||||
@ -58,10 +60,15 @@ public class UserServiceImpl
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resetPassword(@NotNull String email)
|
public RestResetPasswordResponse resetPassword(@NotNull String email)
|
||||||
throws InvalidUserEmailException, InvalidAuthSchemaException {
|
throws InvalidUserEmailException, InvalidAuthSchemaException {
|
||||||
final User user = userManager.getUserBy(email);
|
final User user = userManager.getUserBy(email);
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
|
RestResetPasswordResponse response = new RestResetPasswordResponse();
|
||||||
|
if (user.getAuthenticationType().equals(AuthenticationType.GOOGLE_OAUTH2)) {
|
||||||
|
response.setAction(RestResetPasswordAction.OAUTH2_USER);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
if (user.getAuthenticationType() != AuthenticationType.DATABASE) {
|
if (user.getAuthenticationType() != AuthenticationType.DATABASE) {
|
||||||
throw new InvalidAuthSchemaException("Could not change password for " + user.getAuthenticationType().getCode());
|
throw new InvalidAuthSchemaException("Could not change password for " + user.getAuthenticationType().getCode());
|
||||||
@ -74,6 +81,9 @@ public class UserServiceImpl
|
|||||||
|
|
||||||
// Send an email with the new temporal password ...
|
// Send an email with the new temporal password ...
|
||||||
notificationService.resetPassword(user, password);
|
notificationService.resetPassword(user, password);
|
||||||
|
|
||||||
|
response.setAction(RestResetPasswordAction.EMAIL_SENT);
|
||||||
|
return response;
|
||||||
} else {
|
} else {
|
||||||
throw new InvalidUserEmailException("The email '" + email + "' does not exists.");
|
throw new InvalidUserEmailException("The email '" + email + "' does not exists.");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user