Мммм... я бы тут применил целую серию скриптов.
1. Установил composer.phar
2. Подключил бы автозагрузчик классов Symfony/Component/ClassLoader
3. Затем подключил бы компонент безопасности Symfony/Component/Security
4. Потом подключил бы компонент для чтения аннотаций
5. Подключил бы компонент управления пользователями FriendsOfSymfony/FOSUserBundle
6. Затем подключил бы SensioFrameworkExtraBundle
7. Админу дал бы права ROLE_ADMIN, а пользователь по умолчаниюю имеет ROLE_USER (спасибо FOSUserBundle).
8. Потом с помощью такой конструкции защитил бы функцию:
/**
* security("has_role('ROLE_ADMIN')")
*/
public function admin()
{
// somethink
}
/**
* security("has_role('ROLE_USER')")
*/
public function user()
{
// somethink
}
или целый класс
/**
* security("has_role('ROLE_ADMIN')")
*/
class Test
{
// somethink
}
Конечно для Вашего случая видимо это будет сложно и громоздко для одной операции. Но после Symfony, по другому я мыслить не могу. Мне кажется это вообще best practice какой только может быть.
Хотя в моём варианте, легче Symfony уже накатить, чем это всё делать.