PermissionBeanLocal.java 1.72 KB
/*
 * Copyright Codecrew Ry
 * 
 * All rights reserved.
 * 
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software. 
 * 
 * Any distribution and use in source and binary forms, with or without 
 * modification is not permitted without explicit written permission from the 
 * copyright owner. 
 * 
 * A non-exclusive royalty-free right is granted to the copyright owner of the 
 * Software to use, modify and distribute all modifications to the Software in 
 * future versions of the Software. 
 * 
 */
package fi.codecrew.moya.beans;

import javax.ejb.Local;
import javax.resource.spi.IllegalStateException;

import fi.codecrew.moya.enums.apps.IAppPermission;
import fi.codecrew.moya.enums.apps.SpecialPermission;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.User;

@Local
public interface PermissionBeanLocal {

	boolean hasPermission(IAppPermission perm);

	EventUser getCurrentUser();

	boolean isLoggedIn();

	// boolean fatalPermission(IAppPermission perm, Object... failmessage);

	// throws PermissionDeniedException;

	// void fatalNotLoggedIn();
	/**
	 * Get common name of the logged in cert like "customer-01"
	 * 
	 * @return CN of the certificate
	 * @throws IllegalStateException
	 *             Principal has no CN
	 */
	String getCommonName() throws IllegalStateException;

	EventUser getAnonEventUser();

	boolean isCurrentUser(User user);

	boolean isCurrentUser(EventUser user);

	boolean hasPermission(SpecialPermission superadmin);

	boolean isCurrentUser(String login);

	String getPrincipalName();

	// boolean hasPermission(String perm);

}