http://dev.jast.ru 

3. Внутренняя организация (описание для администратора)

JEDOMS

Данное описание отвечает на вопросы какие объекты есть в Системе и как эти объекты связаны друг с другом.

3.1. Правила, на которых построена внутренняя организация системы

  1. Физические лица представлены в системе объектом Пользователь
  2. Юридические лица представлены в системе объектом Фирма
  3. Для каждой фирмы задается несколько групп пользователей
  4. Отношение пользователя к фирме задается включением его в пользовательские группы этой фирмы
  5. Вся полезная информация в Системе представлена в виде иерархии Документов
  6. Документ могжет быть простым или состоять из набора документов разных типов или списка из нескольких документов одного типа
  7. Любой документ принадлежит какому-то конкретному и только одному типу документа, шаблону документа, документу-предку.
  8. Любой документ имеет конкретного автора

3.2. Объекты внутренней организации Системы

3.2.1. Пользователи

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

Для того, чтобы физическому лицу был поставлен в соответствие некоторый пользователь, оно должно выполнить Авторизацию (ввод имени и пароля). До успешной авторизации физическому лицу соответствует пользователь Гость (является единственным членом системной группы Гости) и доступные только разрешенные группе Гости методы и данные

Авторизация возможна в ЛЮБОМ POST запросе к ЛЮБОМУ объекту ЛЮБОГО сервера. Для этого в запросе, отправляемом на сервер методом POST, должны быть указаны поля uin и psw. В этом случае перед выполнением запроса будет произведена попытка авторизации. При неуспехе пользователь станет "Неавторизованным" (guest) независимо от того, был ли он успешно авторизован ранее (в предыдущих запросах)

Информация о пользователе хранится в [users] и [userdefs]

Пользователь идентифицируется кодом [users].uid

Учетные записи пользователей общие для всех серверов одного хоста.

Данные пользователя недоступны никому другому и права пользователя (в т.ч. администраторские) назначенные в одной системе (для одного сайта) никак не связаны с другими сайтами.

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

Примеры пользователей

3.2.2. Группы пользователей

Каждая фирма имеет свои собственные группы пользователей. Группы пользователей организованы иерархически. Некоторая часть этой иерархии задается разработчиком, некоторая - администратором при создании фирмы, остальные - администратором в процессе эксплуатации. Права на изменения групп в процессе эксплуатации могут быть делегированы другим пользователям

Использование Групп пользователей имеет целью реализацию в Системе следующих правил:

  1. Любой пользователь может быть клиентом и(или) сотрудником фирмы
  2. Права пользователя на доступ к документам, создание документов и выполнение связанных с документами операций определяются на основе групп, в которые входит данный пользователь
  3. Иерархия групп пользователей позволяет описать все необходимые для работы с документами (и получения статистических отчетов) свойства любого пользователя

? Отношение к группе - это привилегия, назначенная кем-то когда-то и которая может иметь срок действия.

    2.2. Системные группы
    Существуют системные группы, членом которых пользователь
    может являться для любого объекта. Принадлежность пользователя к
    таким группам не администрируется, а определяется программно помещением
    в [usergroups] строки
	0  

    Системные группы:
	0	Все пользователи
	1	Анонимные пользователи
	2	Авторизованные пользователи

    В группу 1 входит только пользователь guest (любой неавторизованный)
    Включение пользователя в группы 0 и 2 производится автоматически при
    его создании. В группу 0 также входит guest

    Анонимные пользователи входят в гр 0 и 1
    Авторизованные - в 0,1,2
    члены пользовательских групп (дополнительно к своим группам) в 0,1,2

    2.3. Пользовательские группы
    Группы, привязанные к объекту. Принадлежность пользователя к таким
    группам задается вручную администратором объекта

3.2.3. Сайты

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

3.2.4. Документы

Базовой единицей информации в Системе является Документ.

Документы создаются пользователями на основе Шаблонов документов путем заполнения необходимых атрибутов (или выбора значения атрибута из списка допустимых для шаблона) Например: Пользователь из группы "Клиенты/Физ.лица" может создать документ на основе шаблона "заказ по розничному прайсу". Шаблоны документов создаются администратором для заданных Типов документов в процессе настройки и эксплуатации системы.

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

Тип документа имеет обязательный атрибут Структура. Возможные структуры документов - атом (текст, рисунок, файл, ссылка), набор (комбинация текста и рисунков, страница сайта), список (список тем, новостей, ссылок, методов) и Есписок (прайс, опросы).

В случае набора описание типа содержит список допустимых типов документов-потомков, описание шаблона - список подключаемых к документу данного шаблона типов документов.

В случае списка описание типа содержит тип документов-потомков (элементов списка).

Есписок отличается от списка только тем, что имеет атрибут "Текущий элемент списка" и он выводится в методе index. Для вывода элементов списка используется метод list

Системные документы создаются в процессе первоначальной настройки администратором или автоматически (Сервер, Сайт, Группа пользователей, Контент фирмы)

Пользовательские документы создаются пользователями в процессе эксплуатации Системы (Тема форума, Сообщение, Заказ, Прайс).

Шаблоны документов создаются администраторами на основе Типов документов путем указания ролей групп пользователей. Также шаблоны содержат информацию об иерархии документов в системе. Т.е. для шаблона документа указывается список шаблонов документов-потомков.

?Для любого заданного документа D1 (шаблон S1), право пользователя создать подчиненный документ D2 (шаблон S2) определяется существованием тройки (S1,S2,A,G), где A - уровень доступа "Создание" и G - одна из групп пользователя. Например, для шаблона "розничный прайс-лист" могут быть заданы S2="заказ по розничному прайсу" и G="физ. лица"

Описание шаблона содержит код шаблона-предка и таблицу пар "Роль - Группа пользователей".

Реестр документов содержит для каждого документа информацию:

3.2.5. Разграничение доступа

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

  1. выполнении заданного метода документа
  2. получении списка документов, подчиненных заданному, для которых пользователю разрешено выполнение заданного метода
  3. получении списка доступных методов для заданного документа

  4. И для администрирования при
  5. получении списка ролей, которые можно назначить (назначены) для документа заданной группе пользователей
  6. получении списков пользователей и групп, которым назначены роли для заданного документа

При показе страницы документа структуры набор или список вызываются методы link или channel для подчиненных документов. Если у пользователя нет прав на такой метод для какого-либо из подчиненных документов, метод вернет пустую строку и этот документ не будет показан.

3.3. Документная модель

Документ - конкретный набор данных, методов и прав доступа, созданный на основе типа по некоторому шаблону

3.3.2. Состояния документов

В процессе существования документы принимают различные состояния (Черновик, Опубликован, К исполнению, В архиве, Удален). Допустимые состояния документа определяются его типом. Изменение состояния происходит при выполнении методов. Каждый тип документа связан с определенным набором состояний.

3.3.3. Роли

Действия, которые могут выполняться над документами (методы) соответствуют некоторым ролям пользователей по отношению к документу (Автор, Посетитель, Адресат сообщения). Для каждого типа документа в Системе задается список возможных по отношению к документу ролей. Для каждой роли указывается тип роли - роль пользователя или роль группы пользователей.

3.3.4. Классы документооборота

Совокупность состояний и ролей описывает общие характеристики документооборота для документов различных типов. Эти характеристики описаны в Системе в виде классов документов.Типы документов относятся к одному классу, если они имеют одинаковые списки состояний и ролей

3.3.4.1. Система

Состояния

	Код	Состояние
	~~~	~~~~~~~~~
	1	READY	Опубликован

Роли

	Код	Роль
	~~~	~~~~~~~~~~~~~~~
	1	USR	Посетитель
	2	ADM	Администратор

3.3.4.2. Конейнер

Состояния

	Код	Состояние
	~~~	~~~~~~~~~
	1	NONE 	Не существует
	2	DRAFT	Черновик
	3	READY	Опубликован

Роли

	Код	Роль
	~~~	~~~~~~~~~~~~~~~
	1	CRE 	Может создать
	2	OWN 	Владелец
	3	USR	Посетитель
	4	ADM	Администратор

3.3.4.3. Публикация

Состояния

	Код	Состояние
	~~~	~~~~~~~~~
	1	NONE 	Не существует
	2	DRAFT	Черновик
	3	READY	Опубликован

Роли

	Код	Роль
	~~~	~~~~~~~~~~~~~~~
	1	CRE 	Может создать
	2	OWN 	Владелец
	3	USR	Посетитель
	4	ADM	Администратор
	5	BOS	Наблюдатель
	6	SSR	Подписчик

3.3.4.4. Запрос

Состояния

	Код	Состояние
	~~~	~~~~~~~~~
	1	NONE 	Не существует
	2	DRAFT	Черновик
	3	WFK	Ожидает координатора
	4	WFR	Ожидает ответа адресата
	5	WFA	Ожидает дополнения автора
	6	WFS	Ожидает завершения
	7	READY	Завершен

Роли

	Код	Роль
	~~~	~~~~~~~~~~~~~~~
	1	CRE 	Может создать
	2	OWN 	Владелец
	3	RTR	Координатор
	4	RPC	Исполнитель
	5	ADM	Администратор
	6	BOS	Наблюдатель

3.3.5. Права на работу с документом

Для каждой пары Состояние-Роль при описании типа документов задан список доступных методов. Для каждого метода указывается состояние документа после успешного выполнения метода и флаг обязательности выполнения данного метода (при его наличии документ попадает в список "К исполнению" соответствующего пользователя

3.3.6 Общие методы

Следующие методы реализованы для всех типов документов:

index - изображение документа как главного содержимого страницы. Этот метод вызывается, если запрос к документу не содержит обращения к его методам.

index для списка документов имеет аргументы, позволяющие указать порядок сортировки списка, размер страницы и номер текущей страницы.

Во всех случаях index может иметь свои собственные аргументы.

список аргументов метода index для набора может содержать агрументы методов включенных в набор документов

channel - изображение документа в составе набора или списка. Содержит аннотацию, статистику или основную часть документа. Например, для списка тем форума этот метод позволяет показать статистику форума (кол-во тем, сообщений, дату обновления и т п)

link - вывод ссылки на документ (адреса и названия документа)

menu - список методов документа, доступных данному пользователю. Содержит список ссылок на методы документа. Внешний вид меню задается подсистемой визуализации на основе стиля. Доступ к данному методу поддерживается программно, он не включается в права ролей.

setup - вывод страницы настройки реквизитов документа (редактирование текста и т п)

access - вывод страницы настройки прав доступа к документу

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

3.3.7 Описание типа документа

Описание типа содержит:

  1. Список методов документов данного типа (Метод|Агрументы)

  2. Код класса документа (по которому определяются списки состояний и ролей)
  3. Список доступных методов для каждой пары Состояние-Роль

Некоторые документы могут принимать одно состояние (например, "К исполнению") несколько раз. Эти состояния могут быть связаны с разными пользователями.

3.4. Иерархия документов

1 Сервер (www.pharma.ru)
  +---- 2 /style - Настройка стиля сервера пользователем
  +---- 3 /register, /login, /logout - Команды сеанса пользователя
  +---- 4 Сайт (документ "по умолчанию")
  	  +----- 4.1 /sitestyle - Настройка деталей стиля сайта админом
  	  +----- 4.2 /groups - Группы пользователей (Управление)
  	  +----- 4.3 /forum - Форумы
	  |	     +----- 4.3.1 /23 - форум N 23	
	  |	     +----- 4.3.2 /index - команда по умолчанию
  	  +----- 4.4 /news - Новости
  	  +----- 4.5 /poll - Опросы
          +----- 4.6 Контент (Фирма | Персона | Том | Раздел) - (документ "по умолчанию")
	  		+----- 4.6.1 /price - Прайс
 		 	+----- 4.6.2 /home - Стартовая страница авторизованного клиента
  	  		+----- 4.6.3 /work - Стартовая страница авторизованного сотрудника
			+----- 4.6.4 /index - команда по умолчанию

Обработка запроса пользователя заключается в определении его принадлежности к

  1. списку методов документа (3)
  2. списку псевдонимов типов подчиненных документов, если текущий документ - набор (2, 4.1-4.5)
  3. списку псевдонимов подчиненных документов, если текущий документ - список (4.3.1)
  4. подчиненному документу "по умолчанию" (4, 4.6)
  5. методу "по умолчанию" (4.3.2, 4.6.4)

December 12, 2000

 $Name: v1-07 $   (c) 2002-2006, Алексей А. Коврижкин
jean@jast.ru