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

Доступ только пользователю

14.02.2019, 20:17. Показов 2036. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Имеется база регистрация заявок.
Нужно было закрыть доступ на редактирование после выставления статуса.
Реализовал в Queryopen
Visual Basic
1
if Not Source.Document.GetItemValue("status")(0) ="" Then
На данный момент есть потребность у пользователей все таки видеть содержание формы, но нужно сделать так, что бы они не могли редактировать содержимое и тем более сохранить.

Добавлено через 3 часа 47 минут
Перекинул код в Querymodechange
Все работает как надо.
Человек может редактировать до выставления статуса, но появилась другая задача.

Регистрируют заявки несколько пользователей и они могут редактировать заявки друг друга, а не должны.
Как сравнивается авторство документа?

т.е. просто If user = автор Then редактирование разрешено.

Добавлено через 33 минуты
Пробовал
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Mode=source.EditMode
        
        If Not source.IsNewDoc Then
            tmp=Evaluate(|@Contains(ShAuthor; @Name([CN];@UserName))|)
            If tmp(0)=0 Then
                
                source.EditMode=False
            Else
                source.EditMode=Mode
            End If
            
        End If
Но не заработало.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2019, 20:17
Ответы с готовыми решениями:

Права пользователю на доступ только к папке /root/de
Здравствуйте, у меня есть VDS. Я добавил пользователя "de" и мне нужно, чтобы он имел доступ только к папке /root/de. Как это...

Необходимо пользователю через RDP предоставить доступ только к 1С
Север win 2012r2 x64 на борту домен и АД. RDP настроен. В ад есть группу "бухгалтерия" и пользователь test, хочу сделать так:...

Дать доступ пользователю из вне только к одной программе?
Возник такой вопрос. Есть сеть из 3х компьютеров объеденные через Workgroup с выходом в Интернет. На одном из этих компьютером стоит...

3
528 / 91 / 43
Регистрация: 02.02.2013
Сообщений: 399
15.02.2019, 07:20
Здравствуйте

Для вопросов доступа к документу можно использовать уже встроенные средства Лотус, вместо того чтобы писать свою логику.

В lotus-е уже есть встроенная возможность разграничения доступа разным пользователям к одному и тому же документу.
Например, если вы с документе сделаете специальное служебное поле со списком Читателей - и будете сохранять в это поле имена читателей которые должны только просматривать документ - то они не смогут переключить документ в редактирование и вам ничего программировать практически не нужно для этого - за исключением того что просто создать поле с типом Readers и организовать добавление в это поле нужные имена пользователей. Само поле может называться как угодно.

Тоже самое качается пользователей на изменение нужно создать дополнительно поле с типом Authors
Есть так же поля которые задают видимость документа вообще в базе данных - это для особо сложныйх случаев.
В большинстве случаев хватает полей Для Редаторов и для читалаей (см срикриншот)

Например пользователь на уровне БД может иметь доступ как редактор, но при этом будет иметь возможность реально изменить только те документы в которых его имя содержится в поле со списком редакторов/авторов.

про поля более подробон тут можно найти https://www.ibm.com/developerw... index.html
Миниатюры
Доступ только пользователю  
1
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 26
15.02.2019, 08:12  [ТС]
Ну это нужно каждый раз забивать, а у меня же одни и те же люди и правила.

Сегодня ночью решил все же вопрос с доступом автора.
Создал поле uname_1 в которое при сохранении записывалось имя автора.
Затем в Queryopen написал условие.
Visual Basic
1
If Not Source.Document.ParentDatabase.Parent.UserName = Source.Document.GetItemValue("uname_1")(0)  Then
И пользователи теперь могут открыть только созданные ими доки и если в них не проставлен статус то и редактировать.

Но из-за этого теперь нужно добавить вручную бухгалтеров, которые проставляют статус.
Их не пускает т.к. они не авторы.

Видел вариант с обработкой ролей.
Visual Basic
1
2
3
4
5
6
7
If not source.IsNewDoc then
tmp=evaluate(|@IsMember("[Buh]";@UserRoles)|)
if not tmp(0)=0 then
Это значит, чтопользователь бухгалтер
source.editMode=Mode
end if
end if
Теперь разбираюсь с ним.

Добавлено через 28 минут
Хех.
Реализовал )))

В Queryopen для открытия документа
Visual Basic
1
2
3
4
tmp=Evaluate(|@IsMember("[BuH]";@UserRoles)|)
        If Not tmp(0)=0 Then
            ExistSign = False
        End If
и в Querymodechange
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
If Source.Document.GetItemValue("status")(0) ="" Then
Выясняем, что статус не проставлен
            If Source.Document.ParentDatabase.Parent.UserName = Source.Document.GetItemValue("uname_1")(0)  Then
Выясняем, что user является автором           
                ExistSign = False
            End If
            tmp=Evaluate(|@IsMember("[BuH]";@UserRoles)|)
            If Not tmp(0)=0 Then
Выясняем, что это бухгалтер.
                ExistSign = False
            End If
        End If
0
528 / 91 / 43
Регистрация: 02.02.2013
Сообщений: 399
15.02.2019, 18:39
Ваше решение конечно тоже имеет быть место - но, зная что в лотусе это все уже все есть - ваше решение похоже на изобретение велосипеда, к тому же оно защищает только как говорится "от дурака". Пользователь напишет агент всего из одной строчки в которой например удаляет поле с любым нужным ему названием например:

Visual Basic
1
 Field Status:=@Deletefield;
Выделит все документы в базе и запустит агент и защита через события QueryOpen и Querymodechange не сработает. Поле будет спокойно удалено. Документы и открывать не нужно.

Тот вариант, который я предложил вначале - он защищает даже от таких действий "от дурака" т.к. поля редакторов и читателей работают при любых действиях с документом и через интерфейс и через агентов и в backgraunde.

В принципе, если для вас это первый опыт, реализации подобных вещей - то сойдет тоже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2019, 18:39
Помогаю со студенческими работами здесь

Доступ к mySQL возможен только через Shell доступ. Что это значит ?
навеяло отсюда https://www.cyberforum.ru/php-beginners/thread462521.html не могу понять скрипт есть который по ssh по рса ключу...

Доступ к mySQL возможен только через Shell доступ. Что это значит ?
Доступ к mySQL возможен только через Shell доступ. Что это значит ? На меня завели БД mySQL и выслали следующую информацию: > Имя...

Как сделать на Squid запретить доступ только закачка avi,flv доступ просмотр фильм и музыка
У меня прокси сервер на Основе Squid Transparent os Suse у меня вот токое проблема я раньше такой правило пользовалься он работает но...

Доступ к пользователю
что за пользователь homeusers?

Данному пользователю запрещен доступ
access denied for user ' '@'localhost' to database 'mysql' - я вижу это сообщение об ошибке №1044 (42000) когда пытаюсь ввести команду -...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru