Если у вас это уже есть в сеансе, я бы не стал тратить лишний код / время на добавление его в скрытое поле.Я бы обновил метод, добавив переменную сеанса к данным $ this->, чтобы он добавлялся при сохранении записи.Таким образом, метод в контроллере будет выглядеть примерно так:
function add() {
if($this->data) {
$this->data['Article']['author'] = $this->Session->read('User.name');
$this->Article->create();
if ($this->Article->save($this->data)) {
...
}
Таким образом, вы не справляетесь со всей дополнительной работой и все же можете достичь желаемых результатов.