Перейти к содержимому
Калькуляторы

Разграничение доступа в программе

Пишу программу на С++, надо сделать подсистему управления доступом к модулям самой программы (4 типа доступа: просмотр, редактирование, удаление, создание данних), ломаю голову как правильно решить задачку с точки зрения ООП и масштабируемости. Прошу совета. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну во первых где то надобно это хранить, соответственно должен быть класс доступа,

имхо я бы сделал так

хранил бы наименование плагина (модуля как хотите так и назовите) и связанную таблу доступов на каждого пользователя ну или как там у вас, при чём добавил бы шаблоны согласно которым уже будут предустановленные права, тем самым вы сможете рулить предустановлеными + если нужно настраивать в отдельности тобешь если есть базза данных то связать таблы

юзер -> плагин -> права

соответственно выгребать данные при доступе к конкретной функции

 

в плагинах (классах) должны быть стандартизованые методы типа такого: просмотр редактирование удаление и прочие функции для работы с данными за которые отвечает плагин, соответственно во всех классах если не нужно например редактировать просто ставится функция заглушка (енто на всякий что бы не получить ошибку по доступу к несуществующей функции), просто разрабатывается рыба плагина и потом уже копипастом из этой рыбы делаются все классы для работы с данными

 

Ну как то так :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разделить на клиент-сервер.

На сервере контролировать доступ и фильтровать запросы клиентов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.