On 26 jun 2008, at 12:17, Thomas wrote:

Why not just put a conditional inside the wrapper around the component content? No code is required.

I want to allow subclasses, with the permissions working without requiring a conditional

Freddie Tilley

Regards
Thomas

On 26/06/2008, at 7:49 PM, Freddie Tilley wrote:

Hello, I'm trying to build a permission system that will disable the contents of the entire component. I guess normally I should override appendToResponse and disable the writing of the component contents there. But the problem is if I have a wrapper in the component I still want to show the wrapper contents

so the wrapper will show everything apart from the <wo:WOComponentContent />

The way I do it now is override the components template() method and disable the elements that should not be visible. My question is, is this the correct way of doing it, and if so, are there any hidden problems with doing it this way. The template override code is this:

        public WOElement template() {
                WOElement tmpl = super.template();
                
                if (!canViewComponent())
                {
NSMutableArray<WOElement> children = ((WODynamicGroup)tmpl).childrenElements(); NSMutableArray<WOElement> removeElements = new NSMutableArray<WOElement>();
                        
                        for (WOElement el : children) {
                                if (el instanceof WOComponentReference) {
WODynamicGroup dg = (WODynamicGroup) ((WOComponentReference)el)._contentElement;
                                        NSArray<WOElement> childrenElements = 
dg.childrenElements();

                                        if (childrenElements != null) {
                                                /* this element is the wrapper, 
only disable the
                                                 * content elements
                                                 */
                                                
((WOComponentReference)el)._contentElement = null;
                                        } else {
                                                removeElements.add(el);
                                        }
                                } else {
                                        removeElements.add(el);
                                }
                        }
                        
                        children.removeObjectsInArray(removeElements);          
                }
                
                return tmpl;
        }

Freddie Tilley
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40woomeranet.com.au

This email sent to [EMAIL PROTECTED]



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to