Bug 4228: Refactoring to allow an implementation of user information for

unauthenticated users without popup in mobile
This commit is contained in:
Steffen Schaefer committed 2017-08-16 13:49:42 +02:00
1 parent 2fa05b1f34
commit f5f396d363
3 files changed
+17 -11

No files matched your search

@@ -39,6 +39,7 @@ import com.sap.sse.security.ui.authentication.AuthenticationManagerImpl;
import com.sap.sse.security.ui.authentication.AuthenticationPlaceManagementController;
import com.sap.sse.security.ui.authentication.WrappedPlaceManagementController;
import com.sap.sse.security.ui.authentication.info.LoggedInUserInfoPlace;
import com.sap.sse.security.ui.authentication.login.LoginPopup;
import com.sap.sse.security.ui.authentication.view.FlyoutAuthenticationPresenter;
import com.sap.sse.security.ui.client.UserStatusEventHandler;
import com.sap.sse.security.ui.client.i18n.StringMessages;
@@ -91,7 +92,12 @@ public class TabletAndDesktopApplicationClientFactory extends AbstractApplicatio
@Override
public void onUserStatusChange(UserDTO user) {
checkNewUserPopup(user, true, () -> placesNavigator.goToPlace(placesNavigator.getMoreLoginInfo()));
checkNewUserPopup(user, () -> new LoginPopup(true, () -> {
setUserLoginHintToStorage();
}, () -> {
setUserLoginHintToStorage();
placesNavigator.goToPlace(placesNavigator.getMoreLoginInfo());
}).show());
}
}, true);
}
@@ -32,6 +32,7 @@ import com.sap.sse.security.ui.authentication.AuthenticationManager;
import com.sap.sse.security.ui.authentication.AuthenticationManagerImpl;
import com.sap.sse.security.ui.authentication.WithAuthenticationManager;
import com.sap.sse.security.ui.authentication.WithUserService;
import com.sap.sse.security.ui.authentication.login.LoginPopup;
import com.sap.sse.security.ui.client.SecureClientFactoryImpl;
import com.sap.sse.security.ui.client.UserStatusEventHandler;
import com.sap.sse.security.ui.client.i18n.StringMessages;
@@ -83,7 +84,12 @@ public class MobileApplicationClientFactory extends
@Override
public void onUserStatusChange(UserDTO user) {
checkNewUserPopup(user, false, () -> navigator.goToPlace(navigator.getMoreLoginInfo()));
checkNewUserPopup(user, () -> new LoginPopup(false, () -> {
setUserLoginHintToStorage();
}, () -> {
setUserLoginHintToStorage();
navigator.goToPlace(navigator.getMoreLoginInfo());
}).show());
}
}, true);
}
@@ -11,7 +11,6 @@ import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import com.sap.sse.gwt.client.mvp.ClientFactoryImpl;
import com.sap.sse.gwt.client.mvp.TopLevelView;
import com.sap.sse.security.ui.authentication.login.LoginPopup;
import com.sap.sse.security.ui.shared.UserDTO;
/**
@@ -50,7 +49,7 @@ public abstract class SecureClientFactoryImpl<TLV extends TopLevelView> extends
return securityProvider.getUserService();
}
protected void checkNewUserPopup(UserDTO user, boolean desktop, Runnable gotoMoreInfo) {
protected void checkNewUserPopup(UserDTO user, Runnable newUserRunnable) {
final TimePoint currentTime = MillisecondsTimePoint.now();
if (user != null) {
setUserLoginHintToStorage();
@@ -58,12 +57,7 @@ public abstract class SecureClientFactoryImpl<TLV extends TopLevelView> extends
final TimePoint lastLoginOrSupression = parseLastNewUserSupression();
if (lastLoginOrSupression == null
|| lastLoginOrSupression.plus(SUPRESSION_DELAY).before(currentTime)) {
new LoginPopup(desktop, () -> {
setUserLoginHintToStorage();
}, () -> {
setUserLoginHintToStorage();
gotoMoreInfo.run();
}).show();
newUserRunnable.run();
} else {
log.fine("No logininfo required, user was logged in recently, or clicked dismiss "
+ lastLoginOrSupression + " cur " + currentTime);
@@ -88,7 +82,7 @@ public abstract class SecureClientFactoryImpl<TLV extends TopLevelView> extends
return lastLoginOrSupression;
}
private void setUserLoginHintToStorage() {
protected void setUserLoginHintToStorage() {
final Storage storage = Storage.getLocalStorageIfSupported();
if(storage != null) {
storage.setItem(STORAGE_KEY_FOR_USER_LOGIN_HINT, String.valueOf(MillisecondsTimePoint.now().asMillis()));