Вопрос

И снова о правах на записи.

Ситуация:

1. Есть группа, напрмер, менеджеры.
У этой группы розданы права по умолчанию на записи.
2. И вот работали эти менеджеры, работали. Создали массу записей о
контактах и контрагентах.
3. В правах по умолчанию для данной группы были произведены изменения.

Вопрос:
Что будет с правами на уже созданных записях?

В слуае, если ответ будет "Остануться как есть",
как поступить в этом случае.

А если компания ведет бизнесс гибко и изменения приходится вносить как можно чаще?

Нравится

6 комментариев

1. Ответ - остануться как есть.
2. Если я правильно понял Ваш вопрос - он звучит так: "Как применить новые права по умолчанию на уже существующие записи".
Если вопрос такой, ответ - универсального решения не существует. В одном случае, Вам нужно удалить все старые права, в другом - просто добавить новые, и в самом распространенном, третьем, Вам нужно сделать комбинацию первых двух но для определенных записей и определенной роли.

Достаточно легко написать скрипт, который будет эти права раздавать - с этим вопросом обратитесь в службу поддержки они Вам помогут.
Если У Вас такая задача возникает достаточно часто и она однотипна, есть смысл встроить вызов этого скрипта, например по кнопке, в разделе Администриррование.

"Попов Александр" написал:В одном случае, Вам нужно удалить все старые права, в другом - просто добавить новые, и в самом распространенном, третьем, Вам нужно сделать комбинацию первых двух но для определенных записей и определенной роли.

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

Так вот и сделать бы 2 возможности:
Т.е. по-умолчанию запись указывает на права по умолчанию для группы, а если поменять - создается локальная копия прав группы и в ней производятся изменения, т.е .права для записи становяться локальными. Ну и естественно при раздаче прав по умолчанию указывать какие это права групповые или индивидуальные.

Удалять права и заменять их по умолчанию - категорически нельзя!
Т.к. при работе, например, с проектами, пользователи могли раздать дополнительные права на конкретные проекты, участникам проекта, а работая, например, с задачами, права участвующим в задаче. При этом эти права не должны совпадать с правами по умолчанию

А дальше я потерялся:
1. Что такое локальная копия прав? Как они потом работают?
2. При раздаче прав всегда можно было указывать права для групп и конкретных пользователей.

Механизм который я описал еще не реализован, это пожелания.

В моем понимании 'локальная копия прав' - та котроая существует сейчас.
Т.е. в таблице прав лежат конкретные записи определяющие права для конкретной записи для котрой эти права розданы. При этом, на мой взгляд,
если права раздаются только через группы и по нашей бизнес логистике пользователями поправлены быть не могут то иметь для каждой записи контрагента (которых к примеру 130 тысяц) по 3-4 записи для прав получается
довольно "кучеряво".

Предложение состоит в том, чтобы для каждой записи в контрагентах было бы
по одной записи в таблице прав с признаком 'групповые права' и все они указывают на некую группу прав в которй находятся те самые 3-4 строки,
это как раз могут быть строки определяющие права по умолчанию для данной
группы. Таким образом мы будем иметь кол-во строк в таблице прав почти таким же как и кол-во полезных записей.

И еще, если пользователь все же начал править права на какой то записи,
то, 3-4 записи из прав по умолчанию для группы в которой были права копируются непосредственно в таблицу прав, но уже с признаком 'локальная копия прав'. Т.е. для конкретной записи, права котрой стали отличаться от
групповых права будут представлены несколькими строками, как сейчас.
Также после правки прав нужно проверить, если права полностью соответствуют перечню прав какой-либо из существующих групп,
то заменять их на одну строку со ссылкой на эту группу и признаком
'групповые права'.

Данное предложение может решить целый ряд проблем, в частности той,
о которой шла речь в начале этой темы.

Если суть предложения по прежнему не ясна, я готов пояснить на примерах ;-)

Предложение состоит в том, чтобы для каждой записи в контрагентах было бы
по одной записи в таблице прав с признаком 'групповые права' и все они указывают на некую группу прав в которй находятся те самые 3-4 строки,
это как раз могут быть строки определяющие права по умолчанию для данной
группы. Таким образом мы будем иметь кол-во строк в таблице прав почти таким же как и кол-во полезных записей.

А что Вам мешает сейчас добавить эти 3-4 группы в одну какую-то группу и права по умолчанию раздавать на неё?

По оптимизации записей в таблице прав - согласен, можно написать алгоритм, который этим права будет оптимизировать.
Но есть, как вседа :), один ньюанс - это можно сделать на сейчас, в случае если вы раздаете права с учетом будущих добавлений пользователей в группы - может случиться казус.
Еще пример: Есть группа А, в ней Вася и Петя. На запись есть доступ у Васи и Пети. "Умная" система оптимизации уберет права уВаси и Пети, а даст одно право - всей группе. Мы добавляем в группу Машу, и она автоматом получает права, хотя изначально права должны быть у Маши и Пети.
Таких примеров можно придумать массу. Тут нужно быть очень осторожным, но я соглашусь, чтоможно бы добавить в систему приятных возможностей по массовому изменению прав.

Показать все комментарии