shell bypass 403
<?
App::uses('Inmueble', 'Model');
App::uses('InmuebleListado', 'Model');
class InmuebleInmuebleListado extends AppModel {
public $useTable = 'inmuebles_inmuebles_listados';
public $belongsTo = array(
'Inmueble' => array(
'className' => 'Inmueble',
'foreignKey' => 'inmueble_id',
'conditions' => '',
'fields' => 'id, seo, id_gestion, nombre_tipo_inmueble, descripcion, referencia, habitaciones, banos, precio, precio_anterior, id_provincia, id_localidad, superficie, titulo_corto, publicado'
)
);
public $virtualFields = array(
'referencia' => 'SELECT referencia FROM inmuebles WHERE id = InmuebleInmuebleListado.inmueble_id',
'publicado' => 'SELECT publicado FROM inmuebles WHERE id = InmuebleInmuebleListado.inmueble_id',
'imagen_dn' => 'SELECT imagen_dn FROM inmuebles WHERE id = InmuebleInmuebleListado.inmueble_id',
);
public $validate = array(
'inmueble_id' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Inmueble requerido'
),
'exist' => array(
'rule' => 'checkExist',
'message' => 'Debes seleccionar un inmueble existente'
),
'exist' => array(
'rule' => 'checkExist',
'message' => 'Debes seleccionar un inmueble existente'
)
),
'inmueble_listado_id' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Listado requerido'
),
'unique' => array(
'rule' => array('checkUnique', array('inmueble_id', 'inmueble_listado_id')),
'message' => 'El inmueble que deseas guardar ya está dado de alta en el listado'
)
),
);
public function checkExist($check) {
$elemento = null;
$campo = key($check);
switch ($campo) {
case 'inmueble_id':
$elementos = new Inmueble();
$elemento = $elementos->findById($this->data[$this->name][$campo]);
break;
case 'inmueble_listado_id':
$elementos = new InmuebleListado();
$elemento = $elementos->findById($this->data[$this->name][$campo]);
break;
}
if (empty($elemento)) {
return false; //error
}
return true; //ok
}
}