/**
  * Custom instance loader that forces access policy checking.
  *
  * {@inheritdoc}
  */
 public static function load(xPDO &$xpdo, $className, $criteria, $cacheFlag = true)
 {
     $object = null;
     $object = xPDOObject::load($xpdo, $className, $criteria, $cacheFlag);
     if ($object && !$object->checkPolicy('load')) {
         $userid = $xpdo->getLoginUserID();
         if (!$userid) {
             $userid = '0';
         }
         $xpdo->log(xPDO::LOG_LEVEL_INFO, "Principal {$userid} does not have access to requested object of class {$object->_class} with primary key " . print_r($object->getPrimaryKey(false), true));
         $object = null;
     }
     return $object;
 }
예제 #2
0
 public static function load(xPDO &$xpdo, $className, $criteria, $cacheFlag = true)
 {
     $instance = parent::load($xpdo, 'up2Profile', $criteria, $cacheFlag);
     if (!is_object($instance) || !$instance instanceof $className) {
         if (is_numeric($criteria) || is_array($criteria) && !empty($criteria['id'])) {
             $id = is_numeric($criteria) ? $criteria : $criteria['id'];
             if ($xpdo->getCount('modUser', array('id' => $id))) {
                 $instance = $xpdo->newObject('up2Profile');
                 $instance->set('id', $id);
                 $instance->save();
             }
         }
     }
     return $instance;
 }
 public static function load(xPDO &$xpdo, $className, $criteria, $cacheFlag = true)
 {
     /* @var $instance msCustomerProfile */
     $instance = parent::load($xpdo, 'msCustomerProfile', $criteria, $cacheFlag);
     if (!is_object($instance) || !$instance instanceof $className) {
         if (is_numeric($criteria) || is_array($criteria) && !empty($criteria['id'])) {
             $id = is_numeric($criteria) ? $criteria : $criteria['id'];
             if ($xpdo->getCount('modUser', array('id' => $id))) {
                 $instance = $xpdo->newObject('msCustomerProfile');
                 $time = time();
                 $instance->set('id', $id);
                 $instance->fromArray(array('createdon' => $time, 'referrer_code' => md5($id . $time)));
                 $instance->save();
             }
         }
     }
     return $instance;
 }