mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
Moved authentication related activities to sse.security.ui
This commit is contained in:
1 parent
9a924fcff0
commit
edb4728da6
6 files changed
+10
-16
No files matched your search
+25
@@ -0,0 +1,25 @@
|
||||
package com.sap.sse.security.ui.authentication.confirm;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
|
||||
public class ConfirmationInfoActivity extends AbstractActivity implements ConfirmationInfoView.Presenter {
|
||||
|
||||
private final ConfirmationInfoPlace place;
|
||||
private final ConfirmationInfoView view;
|
||||
private final StringMessages i18n_sec = StringMessages.INSTANCE;
|
||||
|
||||
public ConfirmationInfoActivity(ConfirmationInfoPlace place, ConfirmationInfoView view) {
|
||||
this.place = place;
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(AcceptsOneWidget panel, EventBus eventBus) {
|
||||
panel.setWidget(view);
|
||||
view.setMessage(place.getAction().getMessage(i18n_sec, place.getName()));
|
||||
}
|
||||
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
package com.sap.sse.security.ui.authentication.create;
|
||||
|
||||
import static com.sap.sse.security.shared.UserManagementException.USER_ALREADY_EXISTS;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sse.security.shared.UserManagementException;
|
||||
import com.sap.sse.security.ui.authentication.AsyncLoginCallback;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationCallback;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationClientFactory;
|
||||
import com.sap.sse.security.ui.authentication.confirm.ConfirmationInfoPlace;
|
||||
import com.sap.sse.security.ui.authentication.confirm.ConfirmationInfoPlace.Action;
|
||||
import com.sap.sse.security.ui.authentication.signin.SignInPlace;
|
||||
import com.sap.sse.security.ui.client.component.NewAccountValidator;
|
||||
import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
import com.sap.sse.security.ui.shared.UserDTO;
|
||||
|
||||
public class CreateAccountActivity extends AbstractActivity implements CreateAccountView.Presenter {
|
||||
|
||||
private final AuthenticationClientFactory clientFactory;
|
||||
private final PlaceController placeController;
|
||||
private final CreateAccountView view;
|
||||
|
||||
private final StringMessages i18n_sec = StringMessages.INSTANCE;
|
||||
private final CreateAccountFormValues values = new CreateAccountFormValues();
|
||||
private final AuthenticationCallback callback;
|
||||
|
||||
public CreateAccountActivity(CreateAccountView view, AuthenticationClientFactory clientFactory,
|
||||
AuthenticationCallback callback, PlaceController placeController) {
|
||||
this.view = view;
|
||||
this.clientFactory = clientFactory;
|
||||
this.callback = callback;
|
||||
this.placeController = placeController;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(AcceptsOneWidget panel, EventBus eventBus) {
|
||||
view.setPresenter(this);
|
||||
panel.setWidget(view);
|
||||
values.validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createAccount() {
|
||||
if (values.validate()) {
|
||||
clientFactory.getUserManagementService().createSimpleUser(values.username, values.email,
|
||||
values.password, values.fullName, values.company, callback.getCreateConfirmationUrl(),
|
||||
new AsyncCallback<UserDTO>() {
|
||||
@Override
|
||||
public void onSuccess(final UserDTO result) {
|
||||
clientFactory.getUserManagementService().login(result.getName(), values.password,
|
||||
new AsyncLoginCallback(clientFactory.getAuthenticationManager(), view, callback, false));
|
||||
placeController.goTo(new ConfirmationInfoPlace(Action.ACCOUNT_CREATED, result.getName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
if (caught instanceof UserManagementException) {
|
||||
if (USER_ALREADY_EXISTS.equals(((UserManagementException) caught).getMessage())) {
|
||||
Window.alert(i18n_sec.userAlreadyExists(values.username));
|
||||
}
|
||||
} else {
|
||||
Window.alert(i18n_sec.errorCreatingUser(values.username, caught.getMessage()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangeEmail(String newValue) {
|
||||
values.email = newValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangeUsername(String newValue) {
|
||||
values.username = newValue;
|
||||
values.validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangeFullName(String newValue) {
|
||||
values.fullName = newValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangeCompany(String newValue) {
|
||||
values.company = newValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangePassword(String newValue) {
|
||||
values.password = newValue;
|
||||
values.validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangePasswordConfirmation(String newValue) {
|
||||
values.passwordConfirmation = newValue;
|
||||
values.validate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void signIn() {
|
||||
placeController.goTo(new SignInPlace());
|
||||
}
|
||||
|
||||
private class CreateAccountFormValues {
|
||||
private final NewAccountValidator validator = new NewAccountValidator(i18n_sec);
|
||||
private String username, fullName, company, email, password, passwordConfirmation;
|
||||
|
||||
private boolean validate() {
|
||||
String errorMessage = validator.validateUsernameAndPassword(username, password, passwordConfirmation);
|
||||
boolean isValid = errorMessage == null || errorMessage.isEmpty();
|
||||
view.setErrorMessage(isValid ? null : errorMessage);
|
||||
view.getCreateAccountControl().setEnabled(isValid);
|
||||
return isValid;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
package com.sap.sse.security.ui.authentication.info;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationClientFactory;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationContextEvent;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationRequestEvent;
|
||||
import com.sap.sse.security.ui.authentication.signin.SignInPlace;
|
||||
import com.sap.sse.security.ui.shared.SuccessInfo;
|
||||
|
||||
public class LoggedInUserInfoActivity extends AbstractActivity implements LoggedInUserInfoView.Presenter {
|
||||
|
||||
private final AuthenticationClientFactory clientFactory;
|
||||
private final PlaceController placeController;
|
||||
private final LoggedInUserInfoView view;
|
||||
private final Callback callback;
|
||||
private EventBus eventBus;
|
||||
|
||||
public LoggedInUserInfoActivity(LoggedInUserInfoView view, AuthenticationClientFactory clientFactory,
|
||||
LoggedInUserInfoView.Presenter.Callback callback, PlaceController placeController) {
|
||||
this.view = view;
|
||||
this.clientFactory = clientFactory;
|
||||
this.placeController = placeController;
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(AcceptsOneWidget panel, EventBus eventBus) {
|
||||
this.eventBus = eventBus;
|
||||
view.setPresenter(this);
|
||||
panel.setWidget(view);
|
||||
view.setUserInfo(clientFactory.getAuthenticationManager().getAuthenticationContext());
|
||||
eventBus.addHandler(AuthenticationContextEvent.TYPE, new AuthenticationContextEvent.Handler() {
|
||||
@Override
|
||||
public void onUserChangeEvent(AuthenticationContextEvent event) {
|
||||
if (event.getCtx().isLoggedIn()) {
|
||||
view.setUserInfo(event.getCtx());
|
||||
} else {
|
||||
placeController.goTo(new SignInPlace());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gotoProfileUi() {
|
||||
eventBus.fireEvent(new AuthenticationRequestEvent());
|
||||
callback.handleUserProfileNavigation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void signOut() {
|
||||
clientFactory.getUserManagementService().logout(new AsyncCallback<SuccessInfo>() {
|
||||
@Override
|
||||
public void onSuccess(SuccessInfo result) {
|
||||
clientFactory.getAuthenticationManager().didLogout();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
clientFactory.getAuthenticationManager().didLogout();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.sap.sse.security.ui.authentication.recover;
|
||||
|
||||
import static com.sap.sse.security.shared.UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sse.security.shared.UserManagementException;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationClientFactory;
|
||||
import com.sap.sse.security.ui.authentication.confirm.ConfirmationInfoPlace;
|
||||
import com.sap.sse.security.ui.authentication.confirm.ConfirmationInfoPlace.Action;
|
||||
import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
|
||||
public class PasswordRecoveryActivity extends AbstractActivity implements PasswordRecoveryView.Presenter {
|
||||
|
||||
private final AuthenticationClientFactory clientFactory;
|
||||
private final PlaceController placeController;
|
||||
private final PasswordRecoveryView view;
|
||||
private final Callback callback;
|
||||
|
||||
public PasswordRecoveryActivity(PasswordRecoveryView view, AuthenticationClientFactory clientFactory,
|
||||
PasswordRecoveryView.Presenter.Callback callback, PlaceController placeController) {
|
||||
this.view = view;
|
||||
this.clientFactory = clientFactory;
|
||||
this.placeController = placeController;
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(AcceptsOneWidget panel, EventBus eventBus) {
|
||||
view.setPresenter(this);
|
||||
panel.setWidget(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetPassword(final String email, final String username) {
|
||||
clientFactory.getUserManagementService().resetPassword(username, email, callback.getPasswordResetUrl(),
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
String name = (username == null || username.isEmpty()) ? email : username;
|
||||
placeController.goTo(new ConfirmationInfoPlace(Action.RESET_REQUESTED, name));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
StringMessages i18n = StringMessages.INSTANCE;
|
||||
if (caught instanceof UserManagementException) {
|
||||
if (CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL.equals(caught.getMessage())) {
|
||||
view.setErrorMessage(i18n.cannotResetPasswordWithoutValidatedEmail(username));
|
||||
} else {
|
||||
view.setErrorMessage(i18n.errorResettingPassword(username, caught.getMessage()));
|
||||
}
|
||||
} else {
|
||||
view.setErrorMessage(i18n.errorDuringPasswordReset(caught.getMessage()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
package com.sap.sse.security.ui.authentication.signin;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sse.security.ui.authentication.AsyncLoginCallback;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationCallback;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationClientFactory;
|
||||
import com.sap.sse.security.ui.authentication.AuthenticationContextEvent;
|
||||
import com.sap.sse.security.ui.authentication.create.CreateAccountPlace;
|
||||
import com.sap.sse.security.ui.authentication.info.LoggedInUserInfoPlace;
|
||||
import com.sap.sse.security.ui.authentication.recover.PasswordRecoveryPlace;
|
||||
|
||||
public class SignInActivity extends AbstractActivity implements SignInView.Presenter {
|
||||
|
||||
private final AuthenticationClientFactory clientFactory;
|
||||
private final PlaceController placeController;
|
||||
private final SignInView view;
|
||||
private final AuthenticationCallback callback;
|
||||
|
||||
public SignInActivity(SignInView view, AuthenticationClientFactory clientFactory,
|
||||
AuthenticationCallback callback, PlaceController placeController) {
|
||||
this.clientFactory = clientFactory;
|
||||
this.placeController = placeController;
|
||||
this.view = view;
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(AcceptsOneWidget panel, EventBus eventBus) {
|
||||
view.setPresenter(this);
|
||||
panel.setWidget(view);
|
||||
eventBus.addHandler(AuthenticationContextEvent.TYPE, new AuthenticationContextEvent.Handler() {
|
||||
@Override
|
||||
public void onUserChangeEvent(AuthenticationContextEvent event) {
|
||||
if (event.getCtx().isLoggedIn()) {
|
||||
placeController.goTo(new LoggedInUserInfoPlace());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void login(String loginName, String password) {
|
||||
clientFactory.getUserManagementService().login(loginName, password,
|
||||
new AsyncLoginCallback(clientFactory.getAuthenticationManager(), view, callback, true));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createAccount() {
|
||||
placeController.goTo(new CreateAccountPlace());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forgotPassword() {
|
||||
placeController.goTo(new PasswordRecoveryPlace());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginWithFacebook() {
|
||||
// TODO not supported yet
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginWithGoogle() {
|
||||
// TODO not supported yet
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user