001    /*
002    @license.text@
003     */
004    package biz.hammurapi.authorization;
005    
006    import java.security.AccessControlException;
007    import java.util.Collection;
008    
009    import org.w3c.dom.Node;
010    
011    /**
012     * Interface for authorization checks.
013     * @author Pavel Vlasov
014     * @revision $Revision$
015     */
016    public interface AuthorizationProvider {
017    
018            /**
019             * @param clazz
020             * @param action
021             * @return
022             */
023            boolean hasClassPermission(Class clazz, String action);
024    
025            /**
026             * @param clazz
027             * @param action
028             */
029            void checkClassPermission(Class clazz, String action) throws AccessControlException;
030    
031            /**
032             * @param instance
033             * @param action
034             * @return
035             */
036            boolean hasInstancePermission(Object instance, String action);
037    
038            /**
039             * @param instance
040             * @param action
041             */
042            void checkInstancePermission(Object instance, String action) throws AccessControlException;
043    
044            /**
045             * @param className
046             * @param action
047             * @return
048             */
049            boolean hasClassPermission(String className, String action);
050                    
051            /**
052             * @param className
053             * @param action
054             * @return
055             */
056            boolean hasInstancePermission(Node objectNode, String className, String action);
057    
058            /**
059             * @param role
060             * @return
061             */
062            boolean isUserInRole(String role);
063    
064            /**
065             * @return
066             */
067            String getUserName();
068            
069            /**
070             * @return Collection of permissions
071             */
072            Collection getPermissions();
073    }