Ejemplo n.º 1
0
 /**
  * Get an entity's owner and type
  *
  * @param EnterpriseModel $entity
  *
  * @return array|bool Array of attributes ['owner_id' => int, 'owner_type_nbr' => int] or FALSE if no key required
  */
 protected static function _getOwnerType(EnterpriseModel $entity)
 {
     //  Don't bother with archive or assignment tables
     if (!in_array(substr($entity->getTable(), -7), ['_asgn_t', '_arch_t'])) {
         //  Try user/service_user first
         if ($entity instanceof User) {
             return [$entity->id, OwnerTypes::USER];
         }
         if ($entity instanceof ServiceUser) {
             return [$entity->id, OwnerTypes::SERVICE_USER];
         }
         //  Anything with owner and type get tagged
         if (isset($entity->owner_id, $entity->owner_type_nbr)) {
             //  No owner to speak of...
             if (empty($entity->owner_id) && empty($entity->owner_type_nbr)) {
                 return [null, null];
             }
             return [$entity->owner_id, $entity->owner_type_nbr];
         }
         //  A user_id only means a user owns the entity (can't be zero either...)
         if (isset($entity->user_id) && !empty($entity->user_id)) {
             return [$entity->user_id, OwnerTypes::USER];
         }
     }
     return [null, null];
 }