• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Проблемы С Inputenable

  • Автор темы Автор темы Shandrik
  • Дата начала Дата начала
S

Shandrik

Решил поэкспериментировать с опцией поля Input Enable - создал настроечный документ, где выбираю юзеров, которым дается право редактировать определенное поле в документе.
В поле в документе в Input Enable делаю @DBLookup к этой настройке. При открытии документа курсор начинает дергаться, в левой части статусбара мигает молния. Через какое-то время лотус молча падает.
Поставил в Queryrecalc и Postrecalc: Print Getthreadinfo(1) & " " & Now, но в статусбар ничего не выводится.
Кто использовал Input Enable? Что за грабли?
 
Проще (да даже правильнее) сделать группу таких пользователей и проверять состоит ли пользователь в этой группе.
Или не только сделать группу, а еще и роль отдельную и проверять эту роль у данного сотрудника.
Кто использовал Input Enable? Что за грабли?
Никаких граблей, просто там должна быть наиболее простая логическая функция.
Если 1 - редактируем, если 0 - нельзя.
Так же стоит добавить в эту функцию @IsDocBeingEdited, чтобы редактировать только в режиме редактирования.
Если сделать 1, то в открытии "на четние" поле будет выглядеть как "редактируемое"
 
Проще (да даже правильнее) сделать группу таких пользователей и проверять состоит ли пользователь в этой группе.
Или не только сделать группу, а еще и роль отдельную и проверять эту роль у данного сотрудника.
Я отдаю базу в отдел и хочу, чтобы они сами её настраивали. Манагерский доступ им давать не хочу и уж тем более не хочу изменять состав группы всякий раз, как им захочется добавить ещё одного сотрудника.
Вот изменять поле в настроечном документе - ради богу.



Никаких граблей, просто там должна быть наиболее простая логическая функция.
Куда уж проще-то:

@If(@IsMember("[Supervisor]";@UserRoles);@Return(@True);"");
ReviewersListEditors:=@DbLookup("":"NoCache";""; "(SettingsAndClassif)";"privilegium";"ReviewersListEditors");
ReviewersListEditors:=@If(@IsError(ReviewersListEditors);"";ReviewersListEditors);
@IsMember(@Name([Canonicalize];@UserName);@Name([Canonicalize];ReviewersListEdit
ors))

Тут именно какая особенность InputEnable.
Сейчас попробую вычислить редакторов dblookup-ом в cfd-поле и уже с ним работать.
 
проще создать форму с сабформами и на основании доступа подгружать редактируемую или нет
 
Так же стоит добавить в эту функцию @IsDocBeingEdited, чтобы редактировать только в режиме редактирования.
Если сделать 1, то в открытии "на четние" поле будет выглядеть как "редактируемое"
Нет, в режиме чтения просто текст - без ковычек и выбора из АB

Добавлено: Вынес DBLookup в CFD-поле и уже с ним сравниваю юзера. Всё работает без глюков!
Вобщем, будьте осторожны с InputEnable!

Добавлено:
проще создать форму с сабформами и на основании доступа подгружать редактируемую или нет
Да, тоже решение, хотя и не уверен, то более простое.
 
Тут и особенность @DbLookup.
Для вычисления постоянно лезет к представлению, причем не кэшируя записи.
Возможно стоит сделать кэширование, не думаю, что список будет меняться каждый час.
Еще стоит добавить в DbLookup слово: [FAILSILENT]
Вернет пустую строку, если ничего не найдет.
 
дблукап неправильный - отсюда и проблема
 
Что с ним не так? Будучи вынесенным в отдельное поле исправно работает.

Добавлено:
Тут и особенность @DbLookup.
Для вычисления постоянно лезет к представлению, причем не кэшируя записи.
Возможно стоит сделать кэширование, не думаю, что список будет меняться каждый час.
На этапе разработки без этого никак - постоянно настройки правлю.
А если и забуду перед релизом убрать - так там вьюшка мизерная.
 
Что с ним не так? Будучи вынесенным в отдельное поле исправно работает.

Добавлено:
На этапе разработки без этого никак - постоянно настройки правлю.
А если и забуду перед релизом убрать - так там вьюшка мизерная.
параметр сервер:файл должен быть 2х значным а не ""
если в поле работает поставь это поле перед тем а в нипутенеблед ссылайся на 1е поле
 
параметр сервер:файл должен быть 2х значным а не ""
To perform the lookup on the current database (the same database in which the formula is being evaluated), specify "" as the entire argument to the function.


если в поле работает поставь это поле перед тем а в нипутенеблед ссылайся на 1е поле
Ну я так и сделал - см. выше.


Долго думал - причем тут путен? :D
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab