shell bypass 403
<?
App::uses('AuthComponent', 'Controller/Component');
class Usuario extends AppModel {
public $validate = array(
'nombre' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Nombre requerido'
)
),
'email' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Email requerido'
),
'email' => array(
'rule' => 'email',
'message' => 'Formato de email incorrecto'
),
'unique' => array(
'rule' => 'isUnique',
'message' => 'El email que deseas guardar ya existe en la base de datos'
)
),
'email_rep' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Email repetido requerido'
),
'email' => array(
'rule' => 'email',
'message' => 'Formato de email repetido incorrecto'
),
'repetir_email' => array(
'on' => 'create',
'rule' => array('isRepeat'),
'message' => 'Los emails introducidos han de ser idénticos'
)
),
'clave' => array(
'required' => array(
'on' => 'create',
'rule' => 'notBlank',
'message' => 'Clave requerida'
),
'min_length' => array(
'rule' => array('minLength', '8'),
'message' => 'La clave ha de tener un mínimo 8 caracteres',
)
),
'clave_rep' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Clave repetido requerida'
),
'min_length' => array(
'rule' => array('minLength', '8'),
'message' => 'La clave repetida ha de tener un mínimo 8 caracteres',
),
'repetir_clave' => array(
'on' => 'create',
'rule' => array('isRepeat'),
'message' => 'Las claves introducidas han de ser idénticas'
)
),
);
public function isRepeat($check) {
$campo = array_keys($check);
$field = $campo[0];
return $this->data[$this->name][$field] === $this->data[$this->name][str_replace('_rep', null, $field)];
}
public function afterSave($created, $options = array()) {
parent::afterSave($created, $options);
//Generamos la clave del usuario
if ($created && !empty($this->data[$this->alias]['clave'])) {
$db = $this->getDataSource();
$this->updateAll(array('clave' => $db->value(AuthComponent::password($this->data[$this->alias]['clave']), 'string')), array($this->name . '.id' => $this->id));
}
}
}