title: Paginator->sort() using joined model does not work
body: <p>My models association chain:</p>
  
  <pre><code>ArchitectPurchase belongsTo ArchitectProfile belongsTo User
  </code></pre>
  
  <p>My action:</p>
  
  <pre><code>    $this-&gt;ArchitectPurchase-&gt;recursive = -1;
      $this-&gt;ArchitectPurchase-&gt;Behaviors-&gt;attach('Containable');
  
      $this-&gt;paginate['joins'] = array(
          array(
              'table' =&gt; 'architect_profiles',
              'alias' =&gt; 'ArchitectProfileJoin',
              'type' =&gt; 'inner',
              'conditions' =&gt; array(
                  'ArchitectProfileJoin.id = ArchitectPurchase.architect_profile_id'
              )
          ),
          array(
              'table' =&gt; 'users',
              'alias' =&gt; 'User',
              'type' =&gt; 'inner',
              'conditions' =&gt; array(
                  'User.id = ArchitectProfileJoin.user_id'
              )
          )           
      );
  
      $this-&gt;paginate['order'] = 'User.name DESC';
  
      $this-&gt;paginate['contain'] = array(
          'ArchitectProfile' =&gt; array(
              'fields' =&gt; array('ArchitectProfile.id'),
              'User' =&gt; array(
                  'fields' =&gt; array('User.name')
              )
          )
      );
  
      $this-&gt;set('architectPurchases', $this-&gt;paginate());
  </code></pre>
  
  <p>This action works fine, ordering the results by User.name DESC. But when I use the link created with</p>
  
  <pre><code>echo $this-&gt;Paginator-&gt;sort('User.name')
  </code></pre>
  
  <p>in my view, it does not work!</p>
  
  <p>Looking at the core files, I found that the validateSort method of the PaginatorComponent was the problem:</p>
  
  <pre><code>            if ($object-&gt;hasField($field)) {
                  $order[$alias . '.' . $field] = $value;
              } elseif ($object-&gt;hasField($key, true)) {
                  $order[$field] = $value;
              } elseif (isset($object-&gt;{$alias}) &amp;&amp; $object-&gt;{$alias}-&gt;hasField($field, true)) {
                  $order[$alias . '.' . $field] = $value;
              }
  </code></pre>
  
  <p>As the User model is not directly associated with the ArchitectPurchase model, I get</p>
  
  <pre><code>$order = array()
  </code></pre>
  
  <p>instead of </p>
  
  <pre><code>$order = array('User.name' =&gt; 'asc')
  </code></pre>
  
  <p>I tried to use the $whitelist parameter, but still not working...</p>
  
  <p>So I had to hack the core (noooo!!!), commenting from line 345 to 363 to make it work.</p>
  
  <p>Am I doing something wrong or is this a 2.2.1 issue?</p>