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

com.jpattern.gwt.client.security.SecurityContext Maven / Gradle / Ivy

package com.jpattern.gwt.client.security;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author cinafr
 *
 */
public class SecurityContext extends ASecurityContext {

	private IUserSession userSession = new UserSession("", false);
	private List observers = new ArrayList();

	@Override
	public boolean isUserInRole(String roleName) {
		if (roleName==null) {
			return false;
		}
		return getUserSession().getRoles().contains(roleName);
	}
	
	@Override
	public boolean isUserInRole(List roles) {
		if (roles==null) {
			return false;
		}
		return isUserInRole(roles.toArray(new String[roles.size()]));
	}
	
	@Override
	public boolean isUserInRole(String[] roles) {
		if (roles==null) {
			return false;
		}
		boolean userAllowed = true;
		IUserSession userSession = getUserSession();
		if ( roles.length>0 ) {
			userAllowed = false;
			for ( String roleAllowed : roles) {
				if (userSession.getRoles().contains(roleAllowed)) {
					userAllowed = true;
					break;
				}
			}
		}
		return userAllowed;
	}

	@Override
	public boolean isUserValid() {
		return getUserSession().isValid();
	}

	@Override
	public IUserSession getUserSession() {
		return userSession;
	}

	@Override
	public void setUserSession(IUserSession userSession) {
		if (userSession!=null) {
			this.userSession = userSession;
			notifyObservers();
		}
	}

	@Override
	public void addObserver(ISecurityContextObserver observer) {
		observers.add(observer);
		
	}

	@Override
	public void removeObserver(ISecurityContextObserver observer) {
		observers.remove(observer);
	}
	
	private void notifyObservers() {
		for (ISecurityContextObserver observer : observers) {
			observer.ondUserSessionChange();
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy