Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 18
1

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

14.02.2019, 20:17. Показов 1283. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2019, 20:17
Ответы с готовыми решениями:

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

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

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

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

3
286 / 72 / 36
Регистрация: 02.02.2013
Сообщений: 291
15.02.2019, 07:20 2
Здравствуйте

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

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

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

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

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

Сегодня ночью решил все же вопрос с доступом автора.
Создал поле 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
286 / 72 / 36
Регистрация: 02.02.2013
Сообщений: 291
15.02.2019, 18:39 4
Ваше решение конечно тоже имеет быть место - но, зная что в лотусе это все уже все есть - ваше решение похоже на изобретение велосипеда, к тому же оно защищает только как говорится "от дурака". Пользователь напишет агент всего из одной строчки в которой например удаляет поле с любым нужным ему названием например:

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

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

В принципе, если для вас это первый опыт, реализации подобных вещей - то сойдет тоже.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2019, 18:39

Доступ к mySQL возможен только через Shell доступ. Что это значит ?
Доступ к mySQL возможен только через Shell доступ. Что это значит ? На меня завели БД mySQL и...

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

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

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

Доступ только 2-х
Всем hello!!! Есть 30 ПК в сети, нужно создать общую папку между 2-х ПК, как это сделать???)))

Доступ только по ip
Мне нужно сделать так, чтобы например mod.html могли просматривать лишь те ip, которые я указал...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.