com.arsdigita.toolbox.ui
Class SecurityContainer

java.lang.Object
  extended bycom.arsdigita.bebop.Completable
      extended bycom.arsdigita.bebop.SimpleComponent
          extended bycom.arsdigita.bebop.TextStylable
              extended bycom.arsdigita.bebop.BlockStylable
                  extended bycom.arsdigita.bebop.SimpleContainer
                      extended bycom.arsdigita.toolbox.ui.SecurityContainer
All Implemented Interfaces:
Cloneable, Component, Container, Lockable

public abstract class SecurityContainer
extends SimpleContainer

A SecurityContainer adds an access check to a Component. The child component is made invisible if the current user cannot access the it.

Warning: - A call to setVisible(state, true) does not necessarily mean that isVisible(state) will return true, since the isVisible also takes security checks into account.

General usage of the SecurityContainer is as follows:

 MyComponent c = new MyComponent();
 SecurityContainer sc = new SecurityContainer(c) {
   protected boolean canAccess(User user, PageState state) {
     return ( user != null );
   }
 };
 add(sc);
 

Version:
$Revision: #9 $ $DateTime: 2004/04/07 16:07:11 $
Author:
Michael Pih

Field Summary
static String versionId
           
 
Fields inherited from class com.arsdigita.bebop.BlockStylable
ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, FULL_WIDTH, INSERT, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP
 
Fields inherited from class com.arsdigita.bebop.SimpleComponent
m_attr
 
Fields inherited from interface com.arsdigita.bebop.Component
BEBOP_XML_NS, CLASS, ID, ON_CLICK, STYLE
 
Constructor Summary
SecurityContainer()
          This default constructor should be followed by calls to add.
SecurityContainer(Component c)
          Create a SecurityContainer around a child component.
 
Method Summary
protected abstract  boolean canAccess(Party party, PageState state)
          Returns true if the current user can access the child component.
 void generateXML(PageState state, Element parent)
          Generates the XML for the child component if this component is visible.
 boolean isVisible(PageState state)
          Is the component visible?
 
Methods inherited from class com.arsdigita.bebop.SimpleContainer
add, add, children, contains, generateChildrenXML, generateParent, get, getNamespace, getTag, indexOf, isEmpty, setNamespace, setTag, size
 
Methods inherited from class com.arsdigita.bebop.BlockStylable
setBorder, setBorder, setBorderColor, setHorizontalAlignment, setMargin, setMargin, setPadding, setPadding, setVerticalAlignment
 
Methods inherited from class com.arsdigita.bebop.TextStylable
setBackgroundColor, setColor
 
Methods inherited from class com.arsdigita.bebop.SimpleComponent
clone, exportAttributes, getAttribute, getClassAttr, getIdAttr, getKey, getMetaDataAttribute, getStyleAttr, hasAttributes, isLocked, lock, register, register, respond, setAttribute, setClassAttr, setIdAttr, setKey, setMetaDataAttribute, setStyleAttr, setVisible
 
Methods inherited from class com.arsdigita.bebop.Completable
addCompletionListener, fireCompletionEvent
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.arsdigita.bebop.Component
getClassAttr, getIdAttr, getKey, getStyleAttr, register, register, respond, setClassAttr, setIdAttr, setKey, setStyleAttr, setVisible
 
Methods inherited from interface com.arsdigita.util.Lockable
isLocked, lock
 

Field Detail

versionId

public static final String versionId
See Also:
Constant Field Values
Constructor Detail

SecurityContainer

public SecurityContainer()
This default constructor should be followed by calls to add.


SecurityContainer

public SecurityContainer(Component c)
Create a SecurityContainer around a child component.

Parameters:
c - The child component
Method Detail

isVisible

public boolean isVisible(PageState state)
Is the component visible?

Specified by:
isVisible in interface Component
Overrides:
isVisible in class SimpleComponent
Parameters:
state - The page state
Returns:
true if the component is visible, false otherwise

canAccess

protected abstract boolean canAccess(Party party,
                                     PageState state)
Returns true if the current user can access the child component.

Parameters:
party - The party
state - The page state
Returns:
true if the access checks pass, false otherwise

generateXML

public void generateXML(PageState state,
                        Element parent)
Generates the XML for the child component if this component is visible.

Specified by:
generateXML in interface Component
Overrides:
generateXML in class SimpleContainer
Parameters:
state - The page state
parent - The parent DOM element
See Also:
SimpleContainer.setTag(String), SimpleContainer.setNamespace(String)


Copyright (c) 2004 Red Hat, Inc. Corporation. All Rights Reserved. Generated at July 21 2004:2337 UTC