All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jpattern.gwt.client.navigationevent.ABaseNavigationEvent Maven / Gradle / Ivy

package com.jpattern.gwt.client.navigationevent;

import com.jpattern.gwt.client.ApplicationProxy;
import com.jpattern.gwt.client.IApplicationProvider;
import com.jpattern.gwt.client.logger.ILogger;
import com.jpattern.gwt.client.session.ISecurityContext;

/**
 * 
 * @author Francesco Cina'
 *
 * Nov 28, 2011
 */
public abstract class ABaseNavigationEvent implements IBaseNavigationEvent {

	private final String name;
	private final String[] allowedRoles;
	private final boolean requireAuthentication;
	private IApplicationProvider provider;
	private final ILogger logger;

	public ABaseNavigationEvent(String name, boolean requireAuthentication, String[] allowedRoles, IApplicationProvider provider) {
		this.name = name;
		this.requireAuthentication = requireAuthentication;
		this.allowedRoles = allowedRoles;
		this.provider = provider;
		logger = provider.getLoggerService().getLogger(getClass());
	}
	
	@Override
	public final String getName() {
		return name;
	}
	
	@Override
	public final boolean isUserAuthorized() {
		ISecurityContext securityContext = getProvider().getSession().getSecurityContext();
		logger.debug("isUserAuthorized", "Check authorisation of user " + securityContext.getUserData().getUsername());
		if (isRequireAuthentication() && !securityContext.isUserValid()) {
			logger.debug("isUserAuthorized", "User is not valid, a valid user is required");
			return false;
		}
		boolean allowed = securityContext.isUserInRole(allowedRoles);
		
		logger.debug("isUserAuthorized", "Is user allowed? " + allowed + " (Required roles: " + allowedRoles + ")" );
		return allowed;
	}
	
	@Override
	public final String[] getAllowedRole() {
		return allowedRoles;
	}
	
	@Override
	public final IApplicationProvider getProvider() {
		if (provider == null) {
			provider = ApplicationProxy.getInstance().getApplicationProvider();
		}
		return provider;
	}

	@Override
	public boolean isRequireAuthentication() {
		return requireAuthentication;
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy