Любой объект в системе идентифицируется на основе даты создания и имени.
Объект может быть модифицирован любым пользователем имеющим на это разрешения. Не может меняться название объекта, его дата и автор.
CesarObject хранит основные данные объекта:
- Автор, текущий собственник - ссылка на объекты типа User
- Дата создания объекта
- Название объекта
- Текущее состояние объекта (создан/неутвержден, свободный, редактируется, удален/в работе не учавствует*)
- Объект родитель - ссылка
- Массив ссылок на дочерних объектов
- Список разрешенные действия над объектом для каждого из пользователей (примечание: в списке храняться пары ссылок пользователь - битовый массив разрешений по мере добавления новых пользователей, которым разрешены действия над данным объектом. Ссылки на пользователей, которым полностью закрыт доступ не храняться в данном массиве).
*Предпологается, что объекты не удаляются, выставляется лишь статус объекта.

Комментариев нет:
Отправить комментарий