Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2009, 17:55
Новичок на форуме
Отправить личное сообщение для iDeadRat Посмотреть профиль Найти все сообщения от iDeadRat
 
Регистрация: 17.04.2009
Сообщений: 7

Генерация JavaScript в зависимости от прав пользователя
Доброго времени суток.
Возникла следующая задача. Допустим сервис обладает несколькими группами пользователей, обладающими различными уровнями привилегий, и при работе с одним и тем же интерфейсом, каждая из групп обладает своими дополнительными возможностями. Это могут быть как дополнительные вкладки, возможность редактирования полей формы, и просто видимость каких то дополнительных элементов интерфейса. Первое что приходит в голову - это отправлять каждой из групп свой javascript код, сгенерированный на сервере, в зависимости от прав.
Проблема здесь в том, что количество групп достаточно велико, чтобы для каждой из них хранить и поддерживать отдельную ветку кода.
Хотелось бы иметь возможность размечать js код, и на основе разметки генерировать специфичный для группы javascript. Например:

var html = "<div> Simple Div </div>";
// --priveleged {
html += "<div> Priveleged Div </div>";
// --}
Ext.DomQuery.select("div#target")[0].innerHTML = html;



в коде введён специальный формат комментариев, начинающихся с --.
На осове такой разметки на сервере может быть осуществлена компоновка кода в результате чего каждая из групп получит свой вариант функциональности
Возможно уже есть какие-то решения в этой области, хотелось бы услышать ваше мнение.
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2009, 20:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://seanalyzer.ru/projects/jsprocessor/

Щас конечно посвежее есть версия.
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2009, 11:45
Новичок на форуме
Отправить личное сообщение для iDeadRat Посмотреть профиль Найти все сообщения от iDeadRat
 
Регистрация: 17.04.2009
Сообщений: 7

Да, это очень похоже на то что нужно. К сожалению у нас используется java, поэтому продолжаю искать дальше ))
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2009, 21:10
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а как насчет передавать браузеру только информацию (не код), на основе которой сценарий будет разрешать/запрещать действия? А ненужные блоки просто не будут отображаться java'ой
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2009, 21:12
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от x-yuri
а как насчет передавать браузеру только информацию (не код), на основе которой сценарий будет разрешать/запрещать действия? А запрещенные блоки просто не будут отображаться java'ой
Вот и я все думаю: либо я что-то не до понял, либо они не видят очевидного.
Ответить с цитированием
  #6 (permalink)  
Старый 18.04.2009, 21:45
Новичок на форуме
Отправить личное сообщение для iDeadRat Посмотреть профиль Найти все сообщения от iDeadRat
 
Регистрация: 17.04.2009
Сообщений: 7

Да, такой подход я тоже обдумывал, но мне принципиально не хочеться грузить браузер пользователя теми скриптами, которые ему в принципе не должны быть доступны...как с точки зрения размера данных, так и с точки зрения безопасности(это спорно конечно, но всё-таки).
Ответить с цитированием
  #7 (permalink)  
Старый 18.04.2009, 21:53
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
но мне принципиально не хочеться грузить браузер пользователя теми скриптами, которые ему в принципе не должны быть доступны
а в чем проблема? Не подключай к странице, то, что ей не нужно. Или ты про скрипты которые непосредственно в странице находятся? Так вынеси их в отдельные файлы
Ответить с цитированием
  #8 (permalink)  
Старый 18.04.2009, 21:58
Новичок на форуме
Отправить личное сообщение для iDeadRat Посмотреть профиль Найти все сообщения от iDeadRat
 
Регистрация: 17.04.2009
Сообщений: 7

В-общем я примерно придумал подход. Возможно кто-то укажет на его недостатки. Если кто-то знаком с технологией jsp в java, то он ему покажеться схожим. Заключается он в том, чтобы в специальных коментариях писать java код, потом обрабатывать файл специальным препроцессором, который код js преобразует в java файл. Сейчас будет немного понятней. Скажем у нас есть следующий js код:

var html = "<div>Simple div</div>

// -- User u = request.getSession().getParameter("user");
// -- Boolean b = PermissionController.checkRights(u);
// -- if(b) {
html += "<div>Private div</div>
// -- }
Ext.DomQuery.select("div#target")[0].innerHTML = html;


Такой код на сервере преобразуется в следующий java файл:

response.write("var html = \"<div>Simple div</div>\"");
User u = request.getSession().getParameter("user");
Boolean b = PermissionController.checkRights(u);
if(b) {
response.write("html += \"<div>Private div</div>\"");
}
response.write("Ext.DomQuery.select(\"div#target\")[0].innerHTML = html");
...
Ответить с цитированием
  #9 (permalink)  
Старый 18.04.2009, 22:02
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от iDeadRat
В-общем я примерно придумал подход.
По ссылке из второго сообщения то же самое, только на PHP
Ответить с цитированием
  #10 (permalink)  
Старый 18.04.2009, 22:19
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

iDeadRat,
Не терпится вам все-таки велосипед изобрести. Хотя это дело полезное.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
генерация чисел и проверка на повтор Javascript jesuspunk Общие вопросы Javascript 7 25.03.2008 15:32