С Новым годом! Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/182: Рейтинг темы: голосов - 182, средняя оценка - 4.86

Чтобы только автор документа мог редактировать его

01.02.2007, 12:08. Показов 33105. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу скрыть кнопку "Изменить документ" от всех пользователей, которые не являются авторами этого документа,
Подскажите пожалуйста как это сделать?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2007, 12:08
Ответы с готовыми решениями:

Как сделать так, чтобы юзер мог свободно редактировать меню и тулбар, и их состояние сохранялось на диск?
Такая возможность есть в Visual Studio и в Microsoft Office до внедрения ленты. Есть ли готовые решения, библиотеки для WPF?

как сделать чтобы один юзер мог нажать только допустим только 2 раза
Можно так сделать? Если так то как.

Как сделать так, чтобы вводя в Edit1 Код клиента, он его оставлял в таблице одного и мог его распечатать?
как сделать так чтобы вводя в Edit1 Код клиента, он его оставлял в таблице одного и мог его распечатать

19
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
01.02.2007, 12:11
Для: Светлана1342
сделать поле в доке, куда складывать авторов, а на Hide when кнопки @IsMember от @UserName
0
01.02.2007, 12:24
Цитата Сообщение от oshmianski
Для: Светлана1342
сделать поле в доке, куда складывать авторов, а на Hide when кнопки @IsMember от @UserName


Спасибо получилось, вот так написала в скрвать , если верна формула:

@IsDocBeingEdited | @If(!@IsMember(@UserName;From))
Заблокирован
01.02.2007, 12:24
Для: Светлана1342
для для кнопки в hide action написать условие по которому вернет значение true и усе
0
01.02.2007, 12:29
А вот еще вопрос а как сделать, чтобы пользователь по двойному нажатию в документе не смог его редактировать... ? В событии наверное нужно каком-нибудь Query....() прописать,
Подскажите кто знает....
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
01.02.2007, 12:34
Для: Светлана1342
есть бантик: у формы есть метод QueryModeChange, туда можно написать условие

if Условие then Continue = true else Continue = flase

но это обходится Ctrl + E из представления
0
01.02.2007, 12:37
Понятненько, плохо конечно что обходится Ctrl+E,

а у меня вот и бантика то нет...
0 / 0 / 0
Регистрация: 21.08.2006
Сообщений: 119
01.02.2007, 12:43
<!--QuoteBegin-Светлана1342+2:02:2007, 13:24 -->
<span class="vbquote">(Светлана1342 @ 2:02:2007, 13:24 )</span><!--QuoteEBegin-->а у меня вот и бантика то нет...
[snapback]54820" rel="nofollow" target="_blank[/snapback]?[/quote]
я полагаю, что это бантики :D :D

PS не смог из буфера что-то вставить
Посмотреть вложение Image1.bmp
0
01.02.2007, 12:54
ааа, /Умирая со смеху.../
ок, понятно....
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
01.02.2007, 13:09
<!--QuoteBegin-Светлана1342+2:02:2007, 13:16 -->
<span class="vbquote">(Светлана1342 @ 2:02:2007, 13:16 )</span><!--QuoteEBegin-->А вот еще вопрос а как сделать, чтобы пользователь по двойному нажатию в документе не смог его редактировать... ? В событии наверное нужно каком-нибудь Query....() прописать,
[snapback]54817" rel="nofollow" target="_blank[/snapback]?[/quote]
А зачем? Есть же поле типа Автор. Если не автор, но ни двойное нажатие не поможет, ни ctrl-e и т.п.
0
RoJ
01.02.2007, 14:16
Есть функция @Author, которая возвращает список авторов, просматривая соответствующие поля(более подробно в хелпе).
Для Hide формулы:
!@Contains(@Author;@UserName)

Как было указано в предыдущих ответах, от редактирования документа другим пользователем с правами "Редактор" это не спасёт и надо писать ограничение в QueryModeChange. Я предлагаю следующий код:


Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Dim result As Variant

result = Evaluate("@Contains(@Author;@UserName)")

Continue = (result(0)!=0)

End Sub
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
01.02.2007, 14:20
<!--QuoteBegin-RAJ+2:02:2007, 15:03 -->
<span class="vbquote">(RAJ @ 2:02:2007, 15:03 )</span><!--QuoteEBegin-->Есть функция @Author, которая возвращает список авторов, просматривая соответствующие поля(более подробно в хелпе).
[snapback]54845" rel="nofollow" target="_blank[/snapback]?[/quote]
Не пойдет. Она возвращает содержимое только первого поля типа Authors. Если таких нет, то начинает возвращать содержимое других полей вплоть до $UpdatedBy.
0
RoJ
01.02.2007, 14:34
Цитата Сообщение от Medevic
Не пойдет. Она возвращает содержимое только первого поля типа Authors. Если таких нет, то начинает возвращать содержимое других полей вплоть до $UpdatedBy.
Если документ, будет создан изначально с вышеприведенными ограничениями для НЕ АВТОРОВ документа, то содержимое полей вплоть до $UpdatedBy, будет содержать нашего автора.

В крайнем случае создаём "Вычислимое при создании" поле с формулой @UserName и дальше его проверяем вместо функции @Author
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
01.02.2007, 14:45
<!--QuoteBegin-RAJ+2:02:2007, 15:21 -->
<span class="vbquote">(RAJ @ 2:02:2007, 15:21 )</span><!--QuoteEBegin-->Если документ, будет создан изначально с вышеприведенными ограничениями для НЕ АВТОРОВ документа, то содержимое полей вплоть до $UpdatedBy, будет содержать нашего автора.

В крайнем случае создаём "Вычислимое при создании" поле с формулой @UserName и дальше его проверяем вместо функции @Author
[snapback]54852" rel="nofollow" target="_blank[/snapback]?[/quote]
Что-то я не понимаю. Если я создам поле типа Authors со значением [Admin] и помещу его первым на форме, то наша функция @Author пойдет лесом.
0
RoJ
01.02.2007, 14:51
Цитата Сообщение от oshmianski
есть бантик: у формы есть метод QueryModeChange, туда можно написать условие

if Условие then Continue = true else Continue = flase

но это обходится Ctrl + E из представления
Ну и это можно заблокировать в QuerySave тоже можем проверить на автора и запретить сохранение.

result = Evaluate("@Contains(@Author;@UserName)")
Continue = (result(0)!=0)

Пусть "злодей" меняет документ, но сохранить несможет :D

P.S.: @Author, конечно можем и заменить на поле с именем автора



Цитата Сообщение от Medevic
Что-то я не понимаю. Если я создам поле типа Authors со значением [Admin] и помещу его первым на форме, то наша функция @Author пойдет лесом.
Согласен с вами :(
Тут уже пошли детали: роли и т.п. Чтобы дать рецепт для данной базы информации не достаточно(лично для меня).
Решение надо принимать для каждой базы в отдельности взависисмости от её организации.
RoJ
01.02.2007, 15:35
P.S. Функция @Author не пойдёт лесом, а проверит другие поля "Авторов", включая $UpdatedBy
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
01.02.2007, 16:13
<!--QuoteBegin-RAJ+2:02:2007, 16:22 -->
<span class="vbquote">(RAJ @ 2:02:2007, 16:22 )</span><!--QuoteEBegin-->P.S. Функция @Author не пойдёт лесом, а проверит другие поля "Авторов", включая $UpdatedBy
[snapback]54865" rel="nofollow" target="_blank[/snapback]?[/quote]
Хелп говорит обратное, и практика подтверждает это.


@Author uses the following instructions (in the sequence outlined below) to find document author(s) and return the appropriate text list:
1. Search the document for a field of type Authors. If there is one, return the name(s) stored there. (If there are multiple Authors fields, returns the contents of the first Authors field found in the document.)
2. If there is no Authors field, look for a field called From. If there is a From field, look for the field FromDomain.
If both fields are found, combine the two fields, separating them by an @ sign (as in, Mary Tsen@AcmeWest).
Otherwise, return the contents of the From field only.
3. If there is no From field, look for a field named $UpdatedBy. If there is one, return the contents of the field.
4. If there is no $UpdatedBy field and thys is a new document (not yet saved), return the current users name.
5. If none of the above can be found, return the null string ("").
0
RoJ
01.02.2007, 16:20
Цитата Сообщение от Medevic
Хелп говорит обратное, и практика подтверждает это.
Принято.
04.02.2007, 08:05
ну а как же быть раз "лесом" @Author работь не хочет...
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
04.02.2007, 08:36
<!--QuoteBegin-Светлана1342+5:02:2007, 08:52 -->
<span class="vbquote">(Светлана1342 @ 5:02:2007, 08:52 )</span><!--QuoteEBegin-->ну а как же быть раз "лесом" @Author работь не хочет...
[snapback]54993" rel="nofollow" target="_blank[/snapback]?[/quote]
Имхо, не заморачиваться.
В поле Автор могут быть также внесены группы и роли. Т.е. придется и группы разбирать, и роли проверять. Также проверять доступ (если Editor и выше, то кнопка доступна).

Можно сделать кнопку редактирования с таким кодом:

Code
1
2
3
4
5
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
uidoc.EditMode = True
If Not uidoc.EditMode Then Msgbox "Вам нельзя редактировать этот документ"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.02.2007, 08:36
Помогаю со студенческими работами здесь

Как сделать чтобы пользователь мог вводить только цифры?
Как сделать чтобы пользователь мог вводить только цифры или точку? А именно символы, которые указание в регулярном выражении. И самое...

Поправить макрос, чтобы он мог работать не только с одним, но и с несколькими столбцами
Sub EditColumn() .Replace &quot;ср!$EW$13&quot;, &quot;ср!$EW$14&quot; End Sub Данный макрос заменяет нужное мне значение в столбце, что где нужно...

Как сделать так, чтобы код мог принимать только определенные числа?
Дело в том, что если вводить числа с 5-ти до 8-ми, то ответы в коде сходятся, а если ввести числа меньше или больше, то ответы не сходятся....

Голосование. Нужно чтобы пользователь мог ответить только один раз на вопрос.
Подскажите, как грамотно сделать голосование. Нужно чтобы пользователь мог ответить только один раз на вопрос, и затем уже при заходе на...

Хак чтобы определенный пользователь мог добавить новость только в одну категорию новостей
Есть ли готовое решение для этого? или можно ли это сделать средствами самого движка? если нарушил правила создав эту тему, я прошу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru