CakePHP auth does not allow Timthumb to work

0

I have a gallery that worked correctly, but after making the restrictions for users with Auth , the thumbnails stopped displaying the image, but when I delete function beforFilter() , public function isAuthorized($user) and component Auth AppController , it works. How do I resolve this?

I'm using CakePHP 2.4.4, timthumb 2 and fancybox 2.

AppController

class AppController extends Controller {
public $components = array('DebugKit.Toolbar',
                            'Session','Auth' => array(
                                                'loginRedirect' => array('controller' => 'admins', 'action' => 'admin_index'),
                                                'logoutRedirect' => array('controller' => 'home', 'action' => 'index'),
                                                'authorize' => array('Controller')
                                                )
                        );

public function isAuthorized($user){
    if(isset($user['role']) && $user['role']==='admin'){
        return true; //admin pode acedeer a  todas as actions
    }
    return false; // os outros utilizadores não podem
}
function beforeFilter(){
    $this->Auth->allow('index','ShowImages','ShowShowbill','ShowVideos','login');

}
public $helpers = array('Html' ,
                        'Form' ,
                        'Timthumb.Timthumb',
                        'Paginator', 
                        'Session',
                        'Js',
                        'Fancybox.Fancybox');   


}

GalleriesController

    public function ShowImages(){
        $this->layout = 'default';
        $this->loadModel('GalleryImage');
        $gallery_images = $this->GalleryImage->find('all');
        $this->set('gallery_images', $gallery_images);
    //$image_display = $gallery_image['path']
    }

View

<h2>Galeria</h2>
<br>
<table width="100%">
<tr>
    <?php
        $i=0;
        foreach( $gallery_images as $gallery_image ):?>
    <td align="center" class="thumbnail" style="display:inline-block;">
    <?php
        $src3 =$this->webroot. 'img/gallery/' .$gallery_image['GalleryImage']['path'];
        //$src3 = 'img/gallery/' .$gallery_image['GalleryImage']['path'];
        $this->Fancybox->setProperties( array( 
            'class' => 'fancybox3',
            'className' => 'fancybox.image',
            'title'=>'Single Image',
            'rel' => 'gallery1'
            )
        );
        $this->Fancybox->setPreviewContent($this->Timthumb->image('/img/gallery/' . $gallery_image['GalleryImage']['path'] , array('width' => 267, 'height' => 189)));

        $this->Fancybox->setMainContent($src3);
        echo $this->Fancybox->output();
    ?>
    </td>
    <?php $i++;
        if($i==4){
            echo "</tr><tr>";
            $i=0;   
        }
    ?>
<?php endforeach ?>
</tr>

    
asked by anonymous 01.04.2014 / 12:07

1 answer

0

The problem was caused by the CakePHP Timthubmb plugin, having already been fixed . Also the files have had some modifications however, being allow('image') in AppController , and the inclusion of more relevant scripts in this case.

AppController

class AppController extends Controller {
public $components = array('DebugKit.Toolbar',
                            'Session','Auth' => array(
                                                'loginRedirect' => array('controller' => 'admins', 'action' => 'admin_index'),
                                                'logoutRedirect' => array('controller' => 'home', 'action' => 'index'),
                                                'authorize' => array('Controller')
                                                )
                        );

public function isAuthorized($user){
    if(isset($user['role']) && $user['role']==='admin'){
        return true; //admin pode acedeer a  todas as actions
    }
    return false; // os outros utilizadores não podem
}
function beforeFilter(){
    $this->Auth->allow('index','ShowImages','ShowShowbill','ShowVideos','login','ShowContactUs','timthumb');
    $this->Auth->allow('image');
}
public $helpers = array('Html' ,
                        'Form' ,
                        'Timthumb.Timthumb',
                        'Paginator', 
                        'Session',
                        'Js',
                        'Fancybox.Fancybox');   


}

View

<h2>Galeria</h2>
<br>
<table width="100%">
<tr>
    <?php
        $i=0;
        foreach( $gallery_images as $gallery_image ):?>
    <td align="center" class="thumbnail" style="display:inline-block;">
    <?php
        $src3 =$this->webroot. 'img/gallery/' .$gallery_image['GalleryImage']['path'];
        //$src3 = 'img/gallery/' .$gallery_image['GalleryImage']['path'];
        $this->Fancybox->setProperties( array( 
            'class' => 'fancybox3',
            'className' => 'fancybox.image',
            'title'=>'Single Image',
            'rel' => 'gallery1'
            )
        );
        $this->Fancybox->setPreviewContent($this->Timthumb->image('/img/gallery/' . $gallery_image['GalleryImage']['path'] , array('width' => 267, 'height' => 189)));

        $this->Fancybox->setMainContent($src3);
        echo $this->Fancybox->output();
    ?>
    </td>
    <?php $i++;
        if($i==4){
            echo "</tr><tr>";
            $i=0;   
        }
    ?>
<?php endforeach ?>
</tr>

</table>

GalleriesController

    public function ShowImages(){
        $this->layout = 'default';
        $this->loadModel('GalleryImage');
        $gallery_images = $this->GalleryImage->find('all');
        $this->set('gallery_images', $gallery_images);

    //$image_display = $gallery_image['path']
    }
    
03.04.2014 / 11:45