Project Wonder 2.0

er.directtoweb
Class ERDDelayedExtraQualifierAssignment

java.lang.Object
  extended bycom.webobjects.directtoweb.Assignment
      extended byer.directtoweb.ERDDelayedAssignment
          extended byer.directtoweb.ERDDelayedExtraQualifierAssignment
All Implemented Interfaces:
EOKeyValueArchiving, Serializable

public class ERDDelayedExtraQualifierAssignment
extends ERDDelayedAssignment

Very useful when you want to restrict the things a user can see during searches or in list pages.
set it up via a rule like: entity.name = "Movie" and session.user.role <> "admin" => extraRestrictingQualifier = { "studio" = "session.user.studios"; } [er.directtoweb.ERDDelayedExtraQualifierAssignment] then in your query page use sth like: public EODataSource queryDataSource() { EODataSource ds = super.queryDataSource(); if (ds != null && (ds instanceof EODatabaseDataSource)) { EOFetchSpecification fs = ((EODatabaseDataSource)ds).fetchSpecification(); EOQualifier q = fs.qualifier(); EOQualifier extraQualifier = (EOQualifier)d2wContext().valueForKey("extraRestrictingQualifier"); if(q != null && extraQualifier != null) { q = new EOAndQualifier(new NSArray(new Object[] {q, extraQualifier})); } else if(extraQualifier != null) { q = extraQualifier; } fs.setQualifier(q); } return ds; } This should guarantee that the user can only see the Movies that are made by studios contained in his studio relationship.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class com.webobjects.eocontrol.EOKeyValueArchiving
EOKeyValueArchiving._NullValueSupport, EOKeyValueArchiving._NumberSupport, EOKeyValueArchiving._TimestampSupport, EOKeyValueArchiving.Awaking, EOKeyValueArchiving.FinishInitialization, EOKeyValueArchiving.Support
 
Field Summary
static ERXLogger log
          logging support
 
Fields inherited from class com.webobjects.directtoweb.Assignment
KeyPathKey, ValueKey
 
Fields inherited from interface com.webobjects.eocontrol.EOKeyValueArchiving
_CLASS
 
Constructor Summary
ERDDelayedExtraQualifierAssignment(EOKeyValueUnarchiver u)
          Public constructor
ERDDelayedExtraQualifierAssignment(String key, Object value)
          Public constructor
 
Method Summary
static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver eokeyvalueunarchiver)
          Static constructor required by the EOKeyValueUnarchiver interface.
protected  EOQualifier extraQualifier(D2WContext c, NSDictionary dict)
           
 Object fireNow(D2WContext c)
          Implemented by subclasses.
protected  EOQualifier qualifierForArray(String key, NSArray objects)
           
protected  EOQualifier qualifierForObject(String key, Object object)
           
 
Methods inherited from class er.directtoweb.ERDDelayedAssignment
fire
 
Methods inherited from class com.webobjects.directtoweb.Assignment
encodeWithKeyValueArchiver, keyPath, toString, value, value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

public static final ERXLogger log
logging support

Constructor Detail

ERDDelayedExtraQualifierAssignment

public ERDDelayedExtraQualifierAssignment(EOKeyValueUnarchiver u)
Public constructor

Parameters:
u - key-value unarchiver used when unarchiving from rule files.

ERDDelayedExtraQualifierAssignment

public ERDDelayedExtraQualifierAssignment(String key,
                                          Object value)
Public constructor

Parameters:
key - context key
value - of the assignment
Method Detail

decodeWithKeyValueUnarchiver

public static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver eokeyvalueunarchiver)
Static constructor required by the EOKeyValueUnarchiver interface. If this isn't implemented then the default behavior is to construct the first super class that does implement this method. Very lame.

Parameters:
eokeyvalueunarchiver - to be unarchived
Returns:
decoded assignment of this class

qualifierForArray

protected EOQualifier qualifierForArray(String key,
                                        NSArray objects)

qualifierForObject

protected EOQualifier qualifierForObject(String key,
                                         Object object)

extraQualifier

protected EOQualifier extraQualifier(D2WContext c,
                                     NSDictionary dict)

fireNow

public Object fireNow(D2WContext c)
Description copied from class: ERDDelayedAssignment
Implemented by subclasses.

Specified by:
fireNow in class ERDDelayedAssignment

Last updated: Do, Dez 9, 2004 • 12:46 PM CET

Copyright © 2002 – 2004 Project Wonder.