ERXUnsafeRestEntityDelegate Class Reference

Inherits er::rest::entityDelegates::ERXStandardRestEntityDelegate.

Collaboration diagram for ERXUnsafeRestEntityDelegate:

Collaboration graph
[legend]

List of all members.

Public Member Functions

boolean canDeleteObject (EOEntity entity, EOEnterpriseObject eo, ERXRestContext context)
boolean canInsertObject (EOEntity parentEntity, Object parentObject, String parentKey, EOEntity entity, ERXRestContext context)
boolean canInsertObject (EOEntity entity, ERXRestContext context)
boolean canInsertProperty (EOEntity entity, EOEnterpriseObject eo, String propertyName, ERXRestContext context)
boolean canUpdateObject (EOEntity entity, EOEnterpriseObject eo, ERXRestContext context)
boolean canUpdateProperty (EOEntity entity, EOEnterpriseObject eo, String propertyName, ERXRestContext context)
boolean canViewObject (EOEntity entity, EOEnterpriseObject eo, ERXRestContext context)
boolean canViewProperty (EOEntity entity, Object obj, String propertyName, ERXRestContext context)
 ERXUnsafeRestEntityDelegate (boolean allowProductionUse)
 ERXUnsafeRestEntityDelegate ()
void initializeEntityNamed (String entityName)
NSArray objectsForEntity (EOEntity entity, ERXRestContext context)
NSArray visibleObjects (EOEntity parentEntity, Object parent, String key, EOEntity entity, NSArray objects, ERXRestContext context)

Static Public Member Functions

static NSArray< StringallPropertyNames (EOEntity entity, boolean includeToMany)

Private Attributes

NSMutableSet< String_initializedEntityNames


Detailed Description

ERXUnsafeRestEntityDelegate should NEVER be used in production. This is an entity delegate implementation designed to allow you to explore the features of ERRest without having to actually write custom delegates. This implementation allows full access to read, insert, update, and delegate any object in any model in your system that it is assigned as a delegate for. It will throw an exception on creation if ERXApplication.erxApplication().isDevelopmentMode() is false.

Author:
mschrag

Constructor & Destructor Documentation

ERXUnsafeRestEntityDelegate ( boolean  allowProductionUse  ) 

Constructs an ERXUnsafeRestEntityDelegate.

Parameters:
allowProductionUse if true, this can be used in production without throwing an exception. BE VERY CAREFUL.


Member Function Documentation

static NSArray<String> allPropertyNames ( EOEntity  entity,
boolean  includeToMany 
) [static]

boolean canDeleteObject ( EOEntity  entity,
EOEnterpriseObject  eo,
ERXRestContext  context 
) [virtual]

Returns whether or not the given object can be deleted. This is called prior to calling canDeleteProperty on any properties and acts as a first line of defenese to completely cut-off access to an object for delete. Note that the actual meaning of "delete" can be defined in your delete method, so returning true for this does not *necessarily* mean the object will be deleted. Instead it just means you will allow access to the delete method.

Parameters:
entity the entity of the object
eo the object to check
context the rest context
Returns:
whether or not the given object can be deleted

Implements IERXRestSecurityDelegate.

boolean canInsertObject ( EOEntity  parentEntity,
Object  parentObject,
String  parentKey,
EOEntity  entity,
ERXRestContext  context 
) [virtual]

Returns whether or not a new object can be inserted into the specified relationship of an existing object.

Parameters:
parentEntity the entity of the parent
parentObject the parent
parentKey the name of the relationship on the parent
entity the entity of the object to insert
context the rest context
Returns:
whether or not a new object can be inserted

Implements IERXRestSecurityDelegate.

boolean canInsertObject ( EOEntity  entity,
ERXRestContext  context 
) [virtual]

Returns whether or not the caller is allowed to insert a new object of the given entity. This variant is called if the caller tries to insert an object without traversing a keypath -- that is, a top level insert. You can return false from this without implying that canInsertObject(..., parentObject, parentKey ..) returns false -- the two are mutually exclusive.

Parameters:
entity the entity of the object to insert
context the rest context
Returns:
whether or not a new object can be inserted

Implements IERXRestSecurityDelegate.

boolean canInsertProperty ( EOEntity  entity,
EOEnterpriseObject  eo,
String  propertyName,
ERXRestContext  context 
) [virtual]

Returns true if propertyName is declared as an insert property.

Parameters:
entity the entity
eo the object to check
propertyName the property name to check
context the rest context
Returns:
true if propertyName is declared as an insert property

Reimplemented from ERXStandardRestEntityDelegate.

boolean canUpdateObject ( EOEntity  entity,
EOEnterpriseObject  eo,
ERXRestContext  context 
) [virtual]

Returns whether or not the given object can be updated. This is called prior to calling canUpdateProperty on any properties and acts as a first line of defenese to completely cut-off access to an object for update

Parameters:
entity the entity of the object
eo the object to check
context the rest context
Returns:
whether or not the given object can be updated

Implements IERXRestSecurityDelegate.

boolean canUpdateProperty ( EOEntity  entity,
EOEnterpriseObject  eo,
String  propertyName,
ERXRestContext  context 
) [virtual]

Returns true if propertyName is declared as an update property.

Parameters:
entity the entity
eo the object to check
propertyName the property name to check
context the rest context
Returns:
true if propertyName is declared as an update property

Reimplemented from ERXStandardRestEntityDelegate.

boolean canViewObject ( EOEntity  entity,
EOEnterpriseObject  eo,
ERXRestContext  context 
) [virtual]

Returns whether or not the given object can be seen. This is called prior to calling canViewProperty on any properties and acts as a first line of defenese to completely cut-off access to an object.

Parameters:
entity the entity of the object
eo the object to check
context the rest context
Returns:
whether or not the given object can be seen

Implements IERXRestSecurityDelegate.

boolean canViewProperty ( EOEntity  entity,
Object  obj,
String  propertyName,
ERXRestContext  context 
) [virtual]

Returns true if propertyName is declared as a view property.

Parameters:
entity the entity
obj the object to check
propertyName the property name to check
context the rest context
Returns:
true if propertyName is declared as a view property

Reimplemented from ERXStandardRestEntityDelegate.

void initializeEntityNamed ( String  entityName  ) 

Do nothing by default

Reimplemented from ERXAbstractRestEntityDelegate.

NSArray objectsForEntity ( EOEntity  entity,
ERXRestContext  context 
)

Returns an array of all of the EOs visible to the user for the given entity.

Parameters:
entity the entity to fetch
context the rest context
Returns:
the array of EOs
Exceptions:
ERXRestException if there is a general failure
ERXRestSecurityException if the user requests objects that he/she is not permitted to see

Implements IERXRestEntityDelegate.

NSArray visibleObjects ( EOEntity  parentEntity,
Object  parentObject,
String  parentKey,
EOEntity  entity,
NSArray  objects,
ERXRestContext  context 
)

Given an array, this method filters the array based on the callers permission level. This method should never return null. To cut off access to the array entirely, return NSArray.EmptyArray. This method is only called after having verified access to the specified key on the parent object.

Parameters:
parentEntity the entity of the parent
parentObject the parent object
parentKey the key in the parent that references this array
entity the entity of the objects in the array
objects the actual array of objects to filter
context the rest context
Returns:
a filtered array
Exceptions:
ERXRestException if a general failure occurs
ERXRestSecurityException if a security violation occurs (note that filtering results should not constitute a security violation)
ERXRestNotFoundException if an object cannot be found

Implements IERXRestEntityDelegate.


Member Data Documentation


The documentation for this class was generated from the following file:

Generated on Sat May 26 06:43:28 2012 for Project Wonder by  doxygen 1.5.8