Expresso 5-6

com.jcorporate.expresso.ext.dbobj
Class RestrictedOverrides

java.lang.Object
  extended bycom.jcorporate.expresso.core.dataobjects.BaseDataObject
      extended bycom.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject
          extended bycom.jcorporate.expresso.core.dbobj.DBObject
              extended bycom.jcorporate.expresso.core.dbobj.SecuredDBObject
                  extended bycom.jcorporate.expresso.ext.dbobj.RestrictedOverrides
All Implemented Interfaces:
Cacheable, ContextNested, DataObject, LookupInterface, Securable, Serializable

public class RestrictedOverrides
extends SecuredDBObject

This class allows administrators to override selected registered users to grant or deny restricted download access.

This is needed since reverse lookups often fail. If you know the person isn't right, you can block them, and if you know they're ok, you can override to allow them.

Author:
Michael Rimov
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class com.jcorporate.expresso.core.dbobj.DBObject
DBObject.FieldError, DBObject.FieldUpdate
 
Field Summary
static String FLD_ALLOWED
           
static String FLD_EXPUID
           
static int OVERRIDE_ALLOWED
          Returned when an override record for a particular user indicates 'allowed'
static int OVERRIDE_DENIED
          Returned when override record for a particular user is 'denied'
static int OVERRIDE_NOT_FOUND
          Returned when no override record is found for a particular user.
 
Fields inherited from class com.jcorporate.expresso.core.dbobj.SecuredDBObject
ADD, ALL_FUNCTIONS, CACHE_NAME, CACHE_TTY, DELETE, SEARCH, SYSTEM_ACCOUNT, SYSTEM_ACCOUNT_NAME, UPDATE
 
Fields inherited from class com.jcorporate.expresso.core.dbobj.DBObject
ATTRIBUTE_ERROR, ATTRIBUTE_ERROR_MESSAGE, ATTRIBUTE_PAGE_LIMIT, BIG_DECIMAL_ZERO, EMAIL_MASK, EVENT_ADD, EVENT_DELETE, EVENT_UPDATE, FLOAT_MASK, INT_MASK, IS_CHECK_RELATIONAL_INTEGRITY, UPDATE_CHANGED_ONLY, WHERE_KEYWORD
 
Fields inherited from class com.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject
anyFieldsDistinct, anyFieldsToRetrieve, appendCustomWhere, caseSensitiveQuery, customWhereClause, dbKey, distinctFields, localConnection, LONGBINARY_READ_DEFAULT_SIZE, maxRecords, myClassName, myUpdates, offsetRecord, recordSet, retrieveFields, sMetadataMap, sortKeys
 
Fields inherited from class com.jcorporate.expresso.core.dataobjects.BaseDataObject
currentStatus, globalMask
 
Fields inherited from interface com.jcorporate.expresso.core.dataobjects.DataObject
STATUS_CURRENT, STATUS_DELETED, STATUS_NEW, STATUS_UPDATED
 
Constructor Summary
RestrictedOverrides()
          Constructor
RestrictedOverrides(DBConnection myConnection)
          Constructor
RestrictedOverrides(int uid)
          Use over (String) constructor.
RestrictedOverrides(RequestContext request)
          For using DBObjects within Controllers.
 
Method Summary
 DBObject getThisDBObj()
          This will return a new object of the type of the subclass.
 int isAllowed(User aUser)
          Returns whether or not the given user has any overrided values.
protected  void setupFields()
          Sets up the field definitions for the DBObjkec
 
Methods inherited from class com.jcorporate.expresso.core.dbobj.SecuredDBObject
add, canRequesterAdd, canRequesterDelete, canRequesterRead, canRequesterUpdate, checkAllowed, copyAttributes, count, createSecurityCache, delete, deleteAll, find, getRequestingUid, getString, getString, getString, getString, getString, getString, getSystemUid, instantiate, isAllowed, retrieve, search, searchAndRetrieveList, searchAndRetrieveList, setRequestingUid, update
 
Methods inherited from class com.jcorporate.expresso.core.dbobj.DBObject
addDetail, addField, addField, addFieldError, addFoundKeys, addIfNeeded, addIndex, addKey, addOrUpdate, addSortKey, addTransition, addVirtualField, addVirtualField, addVirtualField, addVirtualField, average, basicAdd, cacheIsChangedComparison, checkAllReferredToBy, checkAllRefs, checkAllRefsPublic, checkDeleteDetailPerm, checkField, checkRef, checkRef, clear, clearDistinctFields, clearError, clearFieldsToRetrieve, clearSortKeys, containsWildCards, delete, deleteAll, deleteDetails, denotesRange, equals, forKey, formatDateTime, get, getAllAttributes, getAttribute, getAttributesIterator, getBooleanFieldValue, getCacheSize, getCacheStatsMap, getCacheUtil, getCheckZeroUpdate, getCustomWhereClause, getDataContext, getDataField, getDataTransferObject, getDBName, getDetails, getDistinctFieldCount, getDistinctFields, getField, getFieldBigDecimal, getFieldBoolean, getFieldByte, getFieldByteArray, getFieldData, getFieldDate, getFieldDecimalFormatted, getFieldDouble, getFieldErrorMessage, getFieldFloat, getFieldInt, getFieldLong, getFieldMetaData, getFieldShort, getFieldsToRetrieveCount, getFilterClass, getFoundCount, getFoundKeysArray, getIndexArray, getISOValuesDefault, getISOValuesDefault, getISOValuesDefault, getKey, getKeyFieldListIterator, getLength, getLengthInt, getLocalConnection, getLocale, getLogger, getLookupObject, getMax, getMax, getMaxRecords, getMyKeys, getMyUpdatesArray, getOffsetRecord, getPatternMatcher, getPrecision, getSerializedForm, getStringFilter, getThisDBbj, getValidValueDescrip, getValidValues, getValidValuesList, getValues, getValuesDefault, getValuesDefault, getValuesDefault, hasError, hasErrors, haveAllKeys, initialize, isCached, isChanged, isDistinct, isEmpty, isFieldDistinct, isFieldNull, isFieldsToRetrieve, isFieldToRetrieve, isMultiValued, isReadOnly, isSecret, isVirtual, loadFromConnection, logChange, max, min, newInstance, noNewLine, noQuotes, notifyListeners, populateDefaultValues, referredToBy, removeAttribute, removeFromCache, retrieveFromCache, saveBinaryField, search, set, setAttribute, setCacheSize, setCharset, setCheckZeroUpdate, setConnection, setConnection, setCustomWhereClause, setCustomWhereClause, setDataContext, setDataField, setDataTransferObject, setDefaultValue, setDescription, setField, setField, setField, setField, setField, setField, setField, setField, setField, setField, setFieldData, setFieldData, setFieldDistinct, setFieldsToRetrieve, setFilterClass, setFilterClass, setKeys, setLocale, setLookupField, setLookupObject, setMask, setMaxRecords, setMultiValued, setName, setOffsetRecord, setReadOnly, setSchema, setSecret, setSortKey, setStringFilter, setStringFiltersOnAll, setTargetDbSchema, setTargetTable, sqlAggrFunction, sum, toDebugString, update, updateAll, updateAll, verify
 
Methods inherited from class com.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject
addInParam, addOutParam, buildWhereClause, buildWhereClauseBuffer, checkZeroUpdate, constructNewMetaData, createAndExecuteSearch, createAndRunStoreProcedure, getConnectionPool, getCustomStringFieldValue, getDef, getDistinctFieldArrayList, getExecutor, getFieldsToRetrieveIterator, getJDBCMetaData, getJDBCUtil, getMappedDataContext, getMetaData, getQueryInterface, getSerialForm, loadFromConnection, makeLimitationStub, quoteIfNeeded, runStoredProcedure, runStoredProcedureAndRetrieveList, selectFieldString, setCaseSensitiveQuery, setDBConnectionPool, setDBName, setMappedDataContext, setOriginalDBName, setTargetStoreProcedure
 
Methods inherited from class com.jcorporate.expresso.core.dataobjects.BaseDataObject
getGlobalMask, getStatus, isGlobalMasked, setFieldsWithDefaults, setGlobalMask, setStatus
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FLD_EXPUID

public static final String FLD_EXPUID
See Also:
Constant Field Values

FLD_ALLOWED

public static final String FLD_ALLOWED
See Also:
Constant Field Values

OVERRIDE_ALLOWED

public static final int OVERRIDE_ALLOWED
Returned when an override record for a particular user indicates 'allowed'

See Also:
isAllowed(com.jcorporate.expresso.core.security.User), Constant Field Values

OVERRIDE_DENIED

public static final int OVERRIDE_DENIED
Returned when override record for a particular user is 'denied'

See Also:
isAllowed(com.jcorporate.expresso.core.security.User), Constant Field Values

OVERRIDE_NOT_FOUND

public static final int OVERRIDE_NOT_FOUND
Returned when no override record is found for a particular user.

See Also:
isAllowed(com.jcorporate.expresso.core.security.User), Constant Field Values
Constructor Detail

RestrictedOverrides

public RestrictedOverrides()
                    throws DBException
Constructor

Throws:
DBException - if there's an initialization problem

RestrictedOverrides

public RestrictedOverrides(DBConnection myConnection)
                    throws DBException
Constructor

Parameters:
myConnection - The database connection
Throws:
DBException - if there's an initialization problem

RestrictedOverrides

public RestrictedOverrides(int uid)
                    throws DBException
Use over (String) constructor. Initializes the object in the context of the user who's uid belongs to the parameter.

Parameters:
uid - the Uid of the user context
Throws:
DBException - if there's an initialization problem

RestrictedOverrides

public RestrictedOverrides(RequestContext request)
                    throws DBException
For using DBObjects within Controllers. Initializes based upon the current user and the requested db. [Of course this can be modified later]

Parameters:
request - - The controller request handed to you by the framework.
Throws:
DBException - if there's an initialization problem
Method Detail

getThisDBObj

public DBObject getThisDBObj()
                      throws DBException
Description copied from class: DBObject
This will return a new object of the type of the subclass.

OVERRIDE this method with implentation like

return new MyObject()

if you want greatest efficiency. For example: A DBObject called "Customer" should return a new "Customer" object.

the implementation in DBObject uses getClass().newInstance(), which seems to be about 50% slower than "new MyObject()" calls on JDK 1.4

Note that this method should never be called directly. It should only be called by newInstance()

Overrides:
getThisDBObj in class DBObject
Returns:
new RestrictedOverrides
Throws:
DBException - if there's an initialization problem
See Also:
DBObject.getThisDBObj()

isAllowed

public int isAllowed(User aUser)
              throws DBException
Returns whether or not the given user has any overrided values.

Parameters:
aUser - a user's record to get the expUID from.
Returns:
either OVERRIDE_ALLOWED, OVERRIDE_DENIED, or OVERRIDE_NOT_FOUND
Throws:
DBException - if there's an initialization problem

setupFields

protected void setupFields()
                    throws DBException
Sets up the field definitions for the DBObjkec

Overrides:
setupFields in class DBObject
Throws:
DBException - If there is an error setting up the fields as requested. For example, if a field allowing null is requested as part of the key

Expresso 5-6

Please see www.jcorporate.com for information about new Expresso releases.