package de.flower.rmt.ui.app;
import de.flower.rmt.security.ISecurityService;
import org.apache.commons.lang3.EnumUtils;
import org.apache.wicket.request.cycle.RequestCycle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author flowerrrr
*/
@Component
public class ViewResolver implements IViewResolver {
@Autowired
private ISecurityService securityService;
@Override
public View getView() {
// RMT-693
// nav bar depends on view-page-parameter, then session-stored value, then user role
// but: currently view-parameter is not used, only session-value.
// by default view is set to player. will be overridden on demand.
View view = View.PLAYER;
if (securityService.getUser().isManager()) {
String param = RequestCycle.get().getRequest().getRequestParameters().getParameterValue(View.PARAM_VIEW).toString();
View v = EnumUtils.getEnum(View.class, param);
if (v != null) {
// store in session
RMTSession.get().setView(v);
view = v;
} else {
view = RMTSession.get().getView();
if (view != null) {
return view;
} else {
view = View.MANAGER;
}
}
}
return view;
}
}