Регулирование прав доступа к публикации

Код прав доступа представляет собой пятизначное число, задаваемое в секции .d публикации или в разделе $.d массива данных расширения. Каждая цифра в определённой позиции характеризует права группы пользователей с определённым статусом. При перечислении слева направо:
1. Роботы
2. Посетители
3. Читатели
4. Писатели
5. Эксперты
В каждой позиции цифра может принимать следующие значения:
0
Пользователь не увидит сведений о публикации ни в каких книгах и списках.
1
Пользователь увидит сведения о публикации в книгах и списках, но не сможет её открыть.
2
Пользователь увидит сведения о публикации и может её открыть.
3
Пользователь увидит сведения о публикации, может её открыть, для статьи - посмотреть её код, а для книги - включать в неё другие публикации.
4
Пользователь имеет право читать и произвольно изменять публикацию.

Например, если задан код 01233, то это означает, что Роботы не увидят никаких сведений о публикации. Неавторизованные Посетители, просматривая книги и списки публикаций могут узнать, что публикация существует, увидят её название и аннотацию, но открыть не смогут. Читатели могут смотреть публикацию, но не могут открыть её код (посмотреть как написана статья/включить свои публикации в книгу). Писатели и эксперты имеют полный доступ к публикации - то есть могут её читать, смотреть код (для статьи) или включить свои публикации в книгу.
Писатели и эксперты не могут сами себе запретить доступ к их собственной публикации. Например, пользователь со статусом Писатель установил для своей публикации код доступа 22200, то есть не разрешил другим писателям и экспертам даже знать, что его публикация существует. Однако, несмотря на то, что он сам Писатель он будет иметь права доступа к своей публикации уровня 4, то есть может её читать и произвольно изменять.
Если длина кода состоит более, чем из пяти знаков, то код обрезается до пяти знаков. Если код короче пяти знаков, то недостающие значения слева направо устанавливаются равными 3. Если в какой-то позиции указан символ не из допустимого множества значений, то устанавливаются права уровня 3.
Секция .p задаёт индивидуальные права для отдельных пользователей. Для этого после кода доступа можно через пробел перечислить конструкции вида: логин:права. Например, пользователи ivan и olga имеют статус Читатель. Составитель публикации не хочет показывать её код никому, но разрешает пользователю ivan смотреть её код, а пользователю olga даже доверяет её править. Для этого исключения для указанных пользователей следует задать в виде:
.d 12222
.p ivan:3 olga:4
Приведённый пример определений указывает на то, что всем категориям пользователей закрыт доступ к просмотру кода статьи, но сделаны два исключения: пользователь с идентификатором ivan имеет право на просмотр кода, а пользователь olga может даже изменять файл данной публикации.
Оцените публикацию по предложенной шкале
-5  -4  -3  -2  -1  0  +1  +2  +3  +4  +5

Статистика Код