
Public Member Functions | |
| ERDDelayedExtraQualifierAssignment (String key, Object value) | |
| ERDDelayedExtraQualifierAssignment (EOKeyValueUnarchiver u) | |
| Object | fireNow (D2WContext c) |
Static Public Member Functions | |
| static Object | decodeWithKeyValueUnarchiver (EOKeyValueUnarchiver eokeyvalueunarchiver) |
Static Public Attributes | |
| static final Logger | log = Logger.getLogger(ERDDelayedExtraQualifierAssignment.class) |
Protected Member Functions | |
| EOQualifier | extraQualifier (D2WContext c, NSDictionary dict) |
| EOQualifier | qualifierForArray (String key, NSArray objects) |
| EOQualifier | qualifierForObject (String key, Object object) |
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. If the value is null, then this qualifier will not be added. To search for NULL, return NSKeyValueCoding.NullValue.
| ERDDelayedExtraQualifierAssignment | ( | EOKeyValueUnarchiver | u | ) |
Public constructor
| u | key-value unarchiver used when unarchiving from rule files. |
| ERDDelayedExtraQualifierAssignment | ( | String | key, | |
| Object | value | |||
| ) |
Public constructor
| key | context key | |
| value | of the assignment |
| static Object decodeWithKeyValueUnarchiver | ( | EOKeyValueUnarchiver | eokeyvalueunarchiver | ) | [static] |
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.
| eokeyvalueunarchiver | to be unarchived |
| EOQualifier extraQualifier | ( | D2WContext | c, | |
| NSDictionary | dict | |||
| ) | [protected] |
| Object fireNow | ( | D2WContext | c | ) | [virtual] |
Implemented by subclasses.
Implements ERDDelayedAssignment.
| EOQualifier qualifierForArray | ( | String | key, | |
| NSArray | objects | |||
| ) | [protected] |
| EOQualifier qualifierForObject | ( | String | key, | |
| Object | object | |||
| ) | [protected] |
final Logger log = Logger.getLogger(ERDDelayedExtraQualifierAssignment.class) [static] |
logging support
1.5.8