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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2014, 22:51   #1
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию Как сделать, чтобы с программой могли работать разные пользователи?

Хочу сделать так. Перед входом в программу надо выбрать пользователя. У каждого пользователя разный уровень доступа: продавец не может редактировать список товаров, менеджер может и т.п.
Программа у меня уже есть ( на Delphi). Как в нее добавить эту функцию?
вася радугов вне форума Ответить с цитированием
Старый 17.03.2014, 22:55   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Добавляете модальную форму с компонентом для ввода паролей. Сами пароли храните в реестре зашифрованными по алгоритму MD5. Каждому паролю, соответствует определённый статус доступа. Вот, в принципе и всё.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 17.03.2014, 23:03   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

to Smitt&Wesson
Цитата:
Сами пароли храните в реестре зашифрованными по алгоритму MD5.
А, если у юзера заменили ПК? Например, списали как не пригодный для ремонта? Или это сетевое приложение с БД на сервере?
Всё зависит от особенностей работы конкретной программы.
to вася радугов
Цитата:
Программа у меня уже есть
Дайте, хотя бы, общую характеристику программы, чтобы можно было дать конкретный совет.
Streletz вне форума Ответить с цитированием
Старый 17.03.2014, 23:05   #4
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

Программа по продажам: сколько продано, сколько осталось и т.п.

А можно подробнее объяснить про зашифрованные пароли?
вася радугов вне форума Ответить с цитированием
Старый 17.03.2014, 23:06   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Вот, в принципе и всё.
к сожалению, это далеко не всё!
Это только минимально, что надо сделать.
А потом изменить ВСЕ формы, где можно просматривать и, особенно, где можно РЕДАКТИРОВАТЬ данные, проверяя роль пользователя, доступна ли ему данная форма(операция) или нет.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2014, 23:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вася радугов
Субд какая? Обычно это делается на уровне ролей базы (желательно с привязкой к Active Directory, если такая возможность есть). Тогда не придется и думать о том как хранить пароли - роли обо всем позаботятся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.03.2014, 23:13   #7
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

Добавлю я форму, помещу на нее компонент для ввода пароля ( это должен быть Edit?), а что дальше делать я не понимаю.
Мне бы способ попроще, а то мне кажется я не осилю слишком сложный.
вася радугов вне форума Ответить с цитированием
Старый 17.03.2014, 23:16   #8
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Программа по продажам: сколько продано, сколько осталось и т.п.
Я имел в виду общие технические сведения. Какая используется СУБД? СУБД файл-серверная или клиент-серверная? Клиент толстый (основная логика на клиенте) или тонкий (основная логика на сервере)?
Цитата:
Мне бы способ попроще, а то мне кажется я не осилю слишком сложный.
Изложите постановку задачи яснее. Хотя бы путём ответов на вопросы из предыдущего абзаца. Тогда, возможно, удастся найти подходящий способ. Только, не факт, что он будет простой.
Streletz вне форума Ответить с цитированием
Старый 17.03.2014, 23:20   #9
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

База данных Access. Сервера нет, просто БД, созданная на Access
вася радугов вне форума Ответить с цитированием
Старый 17.03.2014, 23:30   #10
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
База данных Access. Сервера нет, просто БД, созданная на Access
Уже гораздо лучше и, главное, понятнее.
Создаёте 2 таблицы в БД. "Пользователи"(Поля id, idРоли,Логин, Пароль) и "Роли"(поля id, роль, уровень_доступа). Названия полей пишу на русском, чтобы сразу была понятна суть.
При входе пользователя в систему, в соответствии с ролью, читаете из БД уровень доступа.
При вызове тех или иных функции программы проверяете уровень доступа на соответствие требуемому. Если равен или выше, то доступ разрешён, если нет запрещён. Вообще, было бы не плохо при входе сразу задавать параметры интерфейса в соответствии с уровнем доступа. Это поможет из бежать лишних проверок и, как следствие, тормозов.
Что касается простоты, всю логику придётся реализовывать в самой программе. Поэтому, к сожалению, работы Вам предстоит не мало.
Streletz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы разные таблицы имели одинаковую ширину столбцов? Natalie_M Microsoft Office Word 7 02.05.2018 10:49
Как работать с этой программой? sosed Софт 0 25.11.2013 15:59
Как сделать так, чтобы в Debug и Release использовались разные ддл'ки? TwiX Visual C++ 7 08.11.2011 10:51
Как сделать чтобы файлы определенного типа открывались программой? Вадим Буренков Общие вопросы Delphi 3 07.07.2009 13:47
DLL или как работать со стороней программой??? nimf Общие вопросы Delphi 2 15.04.2008 17:11