Правильный способ разработки системы инвентаризации - PullRequest
3 голосов
/ 12 мая 2011

Я довольно хороший программист, но я не очень хорош в разработке системных архитектур. У меня довольно простая система инвентаризации, которую я делаю, однако я хотел бы знать, как ее структурировать.

У меня есть около 20 единиц оборудования, которые могут использовать пользователи [Просмотреть все | Обновление | Удалить | Добавить] каждый из них. Однако у меня разные уровни доступа к разному оборудованию (которое должно быть динамическим, изменить, кто может просматривать или что удалять).

Например, один элемент оборудования будет иметь?

addPart1.php
removePart1.php
updatePart1.php
index.php (view all parts)

addPart2.php
removePart2.php
updatePart2.php
index.php (view all parts)

Для всех частей? Я запутался в попытке создать хорошую, масштабируемую и эффективную структуру.

Ответы [ 2 ]

6 голосов
/ 12 мая 2011

Список контроля доступа (ACL) - это список разрешений, прикрепленных к объекту. ACL указывает, каким пользователям или системным процессам предоставляется доступ к объектам, а также какие операции разрешено выполнять с данными объектами. В типичном ACL каждая запись в списке указывает тему и операцию (например, запись (Алиса, удаление) в ACL для файла WXY дает Алисе разрешение на доступ к файлу WXY).

Источник: WIKI

Пожалуйста, посмотрите на:

http://dev.juokaz.com/php/acl-made-easy-part-1 (учебник по ACL)

http://sourceforge.net/projects/tackle/

1 голос
/ 12 мая 2011

Вы можете классифицировать таблицу продуктов, чтобы у каждого вида оборудования была своя «категория» или «группа».Вы можете сделать это, назначив «group_id» для каждого продукта (в новом столбце таблицы).Если у вас есть 300 продуктов, некоторые из них будут в группе 1, другие в группе 2 и т. Д.

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

$permissions = '1,2,5,9';

Каждый раз, когда пользователь получает доступ к одному из ваших PHP-файлов, вы получаете его разрешения и выполняете простую проверку, например:

SELECT * FROM products WHERE group_id IN($permissions)

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

...