Не согласен с подобной реализацией.
Где у вас здесь обработка ошибок?
Ведь если нет прав - вылетит ошибка, может лучше заключить это в отдельный обработчик, как считаете?