28-10-2005 12:56 [Journals.ru] Группы записей и контроль доступа
Тут было обсуждение про то, что хорошо бы иметь возможность задавать права на группы, которые будут накладываться на права, определённые на записях. Это всё хорошо. Но в случае, если будет реализована возможность включать запись в несколько групп, то в результате получится система прав, приближающаяся по сложности к системе управления доступом Windows NT.
Комментарии:
28-10-2005 12:58
Камрад с блокнотиком
0 пишет:
Centaur если тебе группы не нужны вообще, то не вмешивайся, пожалуйста, в дискуссию, это не "ЧтоГдеКогда".

Но в случае, если будет реализована возможность включать запись в несколько групп, то в результате получится система прав, приближающаяся по сложности к системе управления доступом Windows NT.
В каком таком случае?? Так сложно отстоять свою точку зрения, чтобы админы обдумали - а ты пришёл и всё испортил. Тут пытаешься кровью и потом одну фичу добиться, а ты там про какие то следующие случаи говоришь, пока дело до них дойдёт все записи давно уже будут не текстовыми, а видео, а джоурналс начнёт брать деньги не только за регистрацию новых пользователей, но и за постинг каждой записи (хотя во всём мире тенденция другая - наоборот чуть ли не дают тебе деньги за это). И какая сложная система прав получится по твоему? Объясни что сложного будет то? Все права накладываются друг на друга - в чём сложность тут? Вполне естественно всё.
28-10-2005 13:25
Камрад с блокнотиком
Я отстаиваю свою точку зрения. Мне нужны множественные группы больше, чем access control средствами групп. Я смотрю с точки зрения разработчика на то, как бы я реализовывал эти две фичи, и вижу проблемы.

Первая проблема состоит в том, как задавать права доступа к группе. Допустим, что мы решаем её копированием системы прав доступа к записи:
  • открыта для всех
  • открыта для избранных
  • открыта для избранных и дополнительного списка
  • открыта для дополнительного списка
  • открыта для автора
Плюс ещё у нас есть права на весь дневник:
  • открыт для всех
  • открыт для зарегистрированных
  • открыт для избранных
  • открыт для закладок и избранных
И ещё игнор-лист:
  • запрет просмотра

Вторая проблема связана с собственно вычислением множества пользователей, которым разрешено просматривать запись. Пусть есть:
  • дневник, открытый для всех;
  • группа «Про кошку», открытая для дополнительного списка (Вася, Петя);
  • группа «О жизни», открытая для дополнительного списка (Вася, Вова);
  • запись, открытая для всех, входящая в группы «Про кошку» и «О жизни».
Внимание, вопрос: кто должен видеть эту запись?
  • Если читать «открыта для» как разрешение — то все, потому что запись открыта для всех.
  • Если читать «запись открыта для всех» как «отсутствие условий; использовать другие критерии», а «открыта для дополнительного списка» как «разрешить перечисленным», то, вероятно, Вася, Петя и Вова — ибо они входят в дополнительные списки групп.
  • Если читать «открыт для дополнительного списка» как «запретить всем, кроме перечисленных», то только Вася, поскольку только он имеет доступ к обеим группам.

Разумеется, реализовать какую-нибудь одну схему комбинирования прав будет недостаточно, сразу найдётся кто-нибудь, кому нужна другая. Поэтому потребуется расширить возможности назначения фильтров. В простейшем случае — до двух списков «Разрешить» и «Запретить». И для определения того, имеет ли пользователь права доступа к записи, проверять, что он входит в объединение разрешающих списков за вычетом объединения запрещающих списков. Далее понадобится добавить сокращения «разрешить избранным», «разрешить закладкам», «разрешить зарегистрированным», «разрешить автору», «запретить незарегистрированным», «запретить игнор-листу».

С клубами будет ещё сложнее, так как добавляется ещё «разрешить членам клуба», «запретить не членам клуба», «разрешить хранителям клуба» и «запретить не хранителям клуба».

Кроме того, помимо прав на просмотр, ещё существуют права на редактирование (актуально для клубов) и на комментирование, что ещё усложняет систему.
Ар†ений
Во-первых повторяю, где ты увидел сейчас множественные группы, я попытался доказать необходимость прав доступа а ты влез со своими множественными и всю малину испортил.
Во-вторых, если они даже будут реализованы, то никаких проблем нет:
Если читать «открыт для дополнительного списка» как «запретить всем, кроме перечисленных», то только Вася, поскольку только он имеет доступ к обеим группам.
Разумеется этот ответ правильный, не понимаю какие тут могут быть варианты.
И не надо никакой схемы комбинирования приплетать сюда.

В итоге админы решили раз фича 1 конфликтует с фичей 2 - то мы не будем реализовывать ни ту ни другую.
28-10-2005 16:33
Камрад с блокнотиком
где ты увидел сейчас множественные группы, я попытался доказать необходимость прав доступа а ты влез со своими множественными и всю малину испортил
Как профессиональный программист, я вижу потенциальные проблемы, к которым может привести реализация той или иной фичи. И честно предупреждаю о них.

Разумеется этот ответ правильный, не понимаю какие тут могут быть варианты.
Варианты я перечислил выше. Один — что группы ограничивают доступ, второй — что группы разрешают доступ (например, если дневник в основном закрытый, но часть записей хочется открыть всем). Оба имеют свои области применения.

В итоге админы решили раз фича 1 конфликтует с фичей 2 - то мы не будем реализовывать ни ту ни другую.
Я не вижу в комментариях администрации явного отказа реализовывать множественные группы (которые, кстати, я предложил ещё 2004-01-14).

если вы воздержитесь именно поэтому, то получается вы собираете реализовать множественные группы?
Я думаю, прямого ответа на этот вопрос не будет.
Ар†ений
Варианты я перечислил выше. Один — что группы ограничивают доступ, второй — что группы разрешают доступ (например, если дневник в основном закрытый, но часть записей хочется открыть всем). Оба имеют свои области применения.
Сорри, я дальше не собираюсь с тобой спорить, я вижу ты не понимаешь простой логики, а ищешь какие-то непонятные варианты.
28-10-2005 16:51
Камрад с блокнотиком
OK, тема закрыта. Я действительно не понимаю простой логики, когда она не охватывает всех разумных вариантов использования.
Закрыть