Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2018, 23:46   #1
al.tarin
 
Регистрация: 28.03.2017
Сообщений: 7
По умолчанию Разграниченный доступ к приложению

По этой теме было много вопросов, но решение я так и не нашла
Нужно разграничить права пользователей через авторизацию. В инете есть только одно видео на эту тему, но оно мне не подходит
В общем, нужно, чтобы у пользователя, после ввода логина и пароля, выводилась только та информация, которая ему будет доступна. Чтобы один, например мог только просматривать, без изменения информации, а другой имел полный доступ.
Не нужно вводить шифрование, тут сказали можно не заморачиваться.
al.tarin вне форума Ответить с цитированием
Старый 15.06.2018, 00:03   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

И какие именно трудности?

Вариант 1.
Двухуровневая ролевая модель - таблица пользователей и таблица их прав. При авторизации проверяете права пользователей и включаете/выключаете нужные компоненты на формах. При выполнении каких-либо действий (например, кнопка Insert в гриде) также проверяете права пользователя.

Вариант 2. Трёхуровневая модель.
Таблицы пользователей, ролей и прав. Полный набор прав - один и тот же (по сути - некоторое множество прав). Каждой роли соответствует определённое подмножество этого множества (права, доступные именно для этой роли). Каждый пользователь обладает некоторой ролью. Соответственно, обработка в коде аналогична первому варианту, но проверка прав осуществляется не напрямую, а через роль пользователя: определяете роль и после этого проверяете, доступно ли этой роли то или иное действие.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 15.06.2018, 09:33   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от al.tarin Посмотреть сообщение
В инете есть только одно видео на эту тему, но оно мне не подходит
совсем ничего не нашли, да?

вот только темы с нашего форума, найденные за пять минут:

http://www.programmersforum.ru/showthread.php?t=256913

http://www.programmersforum.ru/showthread.php?t=67993

http://programmersforum.ru/showthread.php?t=183985

http://programmersforum.ru/showthread.php?t=199993
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.06.2018, 11:46   #4
al.tarin
 
Регистрация: 28.03.2017
Сообщений: 7
По умолчанию

Значит все таки плохо искала
Спасибо вам
Но немного не поняла, как в зависимости от статуса(права) пользователя выключать необходимые элементы
al.tarin вне форума Ответить с цитированием
Старый 15.06.2018, 11:54   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Условным оператором, например. Если есть права на запись, то ..., иначе...
p51x вне форума Ответить с цитированием
Старый 15.06.2018, 12:11   #6
al.tarin
 
Регистрация: 28.03.2017
Сообщений: 7
По умолчанию

Не совсем тогда понимаю, для чего присваивать уровень пользователя. Нельзя просто если ввел такой-то логин, то показывается одна информация, а если другой, то вся?
al.tarin вне форума Ответить с цитированием
Старый 15.06.2018, 12:15   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

И для того, чтобы получить все права достаточно в текстовом редакторе открыть вашу программу... а если пользователей будет дофига? а если надо сделать разные вьюшки? а если ...?
p51x вне форума Ответить с цитированием
Старый 22.06.2018, 08:30   #8
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Цитата:
Сообщение от al.tarin Посмотреть сообщение
Не совсем тогда понимаю, для чего присваивать уровень пользователя. Нельзя просто если ввел такой-то логин, то показывается одна информация, а если другой, то вся?
Практика показывает, что пользователю иногда требуется что-то дать или забрать, а так же сегодня 1 пользователь, завтра другой. Чтобы не городить в коде по каждому пользователю условия If then, для этого Вам и предлагают модели. Саму модель выносят за пределы ПО(в INI, в БД, в XML). А код программы только включает/выключает элементы интерфейса согласно содержанию модели. Таким образом, при добавлении или изменении пользователя достаточно назначить ему права/уровни. Код самой ПО переписывать не потребуется.
P/S/ С таким подходом, вы решите вопрос доступов раз и навсегда и больше без явной необходимости не полезете в код
Пишу много и развернуто

Последний раз редактировалось Heneken87; 22.06.2018 в 08:35.
Heneken87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кэш к приложению SviteR Java Мобильная разработка (Android) 1 25.02.2014 12:47
Post запрос к приложению VK TSu Работа с сетью в Delphi 0 17.07.2013 22:09
Вопрос по mfc приложению volk-z Visual C++ 2 10.01.2013 21:07
Подключение класса к приложению Kukkk Общие вопросы C/C++ 3 17.02.2010 00:51
послать текст приложению FloopyMan Общие вопросы Delphi 10 17.03.2009 10:27