2. можно ли взглянуть на config.xml?
3. Тестируете из под админа или из под пользователя?
Это лишнее:
PHP
Tpl::instance()->assign('access_add', access("add"));
Так имеет смысл делать, когда условие получения прав какое-то сложное. В Вашем случае эту строчку можно убрать вовсе и писать прямо в шаблоне:
Smarty
{if access('add')}...