Если у вас есть четкий набор разрешений, например, «уровень пользователя» или «тип пользователя», вы можете просто передать значение в скрытое поле и получить доступ к значению через DOM. Вы могли бы сделать это, если бы ваши разрешения были более детализированными, но у вас либо было бы много скрытых полей, либо вам пришлось бы кодировать информацию в XML, JSON или какой-либо другой формат.
Вы можете установить их как битовые флаги, чтобы вы могли ИЛИ одно числовое значение с маской, чтобы увидеть, было ли у пользователя разрешение на конкретное действие. Это было бы очень гибко и до тех пор, пока у вас нет более 32 или около того определенных «прав», это позволило бы любую перестановку этих прав в очень маленьком пакете (в основном без знака int).
Например:
0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
.
.
.
0x80000000 //total control of the server and everyone logged in
Тогда пользователь с разрешением 0x000007
может редактировать, создавать и удалять, но больше ничего.
В любом случае, я думаю, что вы на правильном пути - сделайте запрос один раз за вызов страницы, сохраните разрешения в глобальной структуре данных JavaScript и переходите оттуда. AJAX хорош, но вы не хотите запрашивать у сервера каждое конкретное разрешение на всей вашей странице. Вы должны сделать это один раз при загрузке страницы, настроить представление своей страницы и сохранить значение в глобальной переменной, а затем обратиться к локальным разрешениям для функций событий.