====== Организация документооборота на основе Limb ====== ==== Статус объекта ==== Каждый объект сайта в Limb имеет свой статус. По сути это просто битовая маска. На данный момент мы используем статус для того, чтобы знать опубликован объект или нет (документ, статья, опрос и т. д.), однако мы можем добавить еще некоторые биты в будущем. Статус и гибкая политика доступа позволяют легко создавать сложную систему документооборота в Limb. ==== Публикация и отмена публикации ==== Давайте немного поиграем с документооборотом в Limb. Обычно Limb реализует достаточно прямолинейный документооборот с действиями публикации и отмены публикации. Объект, который поддерживает операции по публикации и отмене публикаций имеет 2 видимых для администратора состояния: {{limb2:en::yes.gif}} и {{limb2:en::no.gif}}. Кликая на кнопку публикации {{limb2:en::publish.gif}} или отмены публикации {{limb2:en::unpublish.gif}} вы изменяете состояние и доступность объекта. Мы считаем, что обычно нет необходимости усложнять простые вещи. Для понимания принципов документооборота Limb Вы должны понимать политику доступа Limb и особенно шаблоны доступа для действий. В терминах Limb, документооборот - это просто смена статуса и применения шаблонов доступа. Поэтому публикация конкретной статьи - это просто установка бита статуса опубликованности и запись новых прав доступа для объекта. На пример, администратор сайта может установить следущий шаблон прав доступа для действий публикации и отмены публикации. * доступ разрешен для посетителей и администраторов когда объект опубликован. * доступ запрещен для посетителей (объект становится невидимым и недоступным) и разрешен для администраторов, когда объект не опубликован. ==== Пользовательский документооборот ==== Эта простая схема позволяет реализовать сложную цепочку ответственности для некоторых типов объектов. На пример, журналист создает статью и кликает действие "проверить редактором". Статья становится доступной администраторам для редактирования и получает некоторый воображаемый статус НЕОБХОДИМО_ОДОБРЕНИЕ_РЕДАКТОРОМ. В действительности он будет добавлен к текущему статусу с помощью логического ИЛИ. После этого любой редактор может проверить статью и выполнить действие "проверить руководителем". Статья становится доступной руководителям для изменения и более недоступна журналистам (получает статус НЕОБХОДИМО_ОДОБРЕНИЕ_РУКОВОДИТЕЛЕМ) еще одно битовое поле. Теперь руководитель может опубликовать статью. Только руководитель имеет полный доступ к статье. Статья в итоге получает статус ОБЪЕКТ_САЙТА_ОПУБЛИКОВАН. Для реализации такой схемы вам необходимо создать специальные классы статьи, контроллера, действий по изменению статуса To implement such scheme you need to create special article class + controller + actions to change status + и шаблонов для отображения статей для различных действий.. ==== Небольшой комментарий ==== В Limb 2.3+ политика прав доступа упрощена и по-этому мы не знаем способен ли Limb поддерживать сложный документооборот или нет. Дело в том, что мы не всречали ни одного случая, когда было необходимо реализовывать сложную систему документооборота.