|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
Есть вот такая ситуация: заказчик захотел, чтобы доступ к справочнику клиентов разграничивался по вертикали. Тоесть пользователи подразделения А не видели и даже не догадывались о клиентах подразделения В. Складывается пренеприятнейшая ситуация с общими клиентами - когда пользователь создает клиента, а при вставке записи мы обнаруживаем, что такой клиент уже есть, но у этого пользователя к нему нет доступа.... Кроме варианта посоветовать пользователю обратиться в соседний отдел за правами доступа, в голову ничего не приходит, но тогда права доступа теряют всякий смысл - достаточно всего-лишь тупо пытаться добавить клиента и получать отказ в доступе, чтобы узнать, что такой клиент есть и он является клиентом соседнего подразделения... Заказчика убедить в комичности и нелогичности ситуации не получается. :-( Может кто подскажет дельную мысль? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 17:04 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
Пара вопросов: 1.Каким образом осуществляется разграничение прав доступа 2.Кто имеет право добавлять клиентов. Простой способ - выделить еще одну группу пользователей, которые имеют право добавлять контрагентов независимо от подразделение А и Б. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 17:12 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
Hibernateзаказчик захотел, чтобы доступ к справочнику клиентов разграничивался по вертикали. Тоесть пользователи подразделения А не видели и даже не догадывались о клиентах подразделения В. Хм. А это называется "по вертикали"? HibernateМожет кто подскажет дельную мысль? Я бы выяснил, как именно заказчик представляет себе работу с одним клиентом из нескольких подразделений. Я готов допустить (видел такое), что они реально работают с ними как с разными клиентами, абсолютно независимо, и соответственно надо заводить две записи. В общем же случае, полагаю, стоит чуть усложнить логическую модель, и сказать, что пользователь не "добавляет клиента", а "делает запрос на добавление клиента". Результатом этого запроса может быть в том числе и предоставление доступа к уже имеющейся записи. Физически при этом, возможно, следует заводить "временную запись" клиента (дабы пользователь сразу мог цеплять к нему дополнительную информацию), а по результатам запроса либо переводить запись в статус "постоянной", либо выполнять слияние информации с уже имеющейся записью о клиенте. Благо, операция слияния клиентов все равно потребуется, специально ее делать не придется. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 17:21 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
sergey888Пара вопросов: 1.Каким образом осуществляется разграничение прав доступа 2.Кто имеет право добавлять клиентов. Простой способ - выделить еще одну группу пользователей, которые имеют право добавлять контрагентов независимо от подразделение А и Б. 1.разграничение осуществляется просто - есть еще одна табличка: UserID int ClientID int IsView bit IsEdit bit IsClose bit соотетственно, при выводе списка клиентов идет джоин к этой таблице с выборкой по текущему пользователю и флагу, соответствующему данной операции. 2.Клиентов добавлять может любой менеджер. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 17:28 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
Значит менеджера надо обязать при добавлении нового клиента давать доступ к этому клиенту группа А или Б, т.е. заполнять таблицу прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 17:32 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
2 softwarer: спасибо за дельные мысли. в принципе, работа с клиентами ведется очень хитро - балансы подбиваются по подразделению, но клиент может прислать деньги на разные подразделения одним платежом - есть отдельный человек, который потом разносит эти деньги по подразделениям. Соответственно, запись должна быть одна... Хотя мне очень понравилась мысль с двумя разными записями....с небольшой добавкой - они должны иметь хотя-бы ссылку друг на друга, тогда в принципе если что, можно будет свести и общий баланс и сделат ьперезачет денег между подразделениями. Наверно етак и сделаем - спасибо за наводку! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 17:34 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
Hibernateно клиент может прислать деньги на разные подразделения одним платежом C разноской платежей в любом случае будет много веселья. Скажем, платеж может прийти вообще от третьей фирмы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 17:41 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
2 записи на одного контрагента - не советую. Лучше все-таки подумать об организации прав доступа. А если появится еще 2-3 группы пользователей, то в таблице будет 4-5 записей для одного конрагента? Бред. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 18:08 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
> тогда права доступа теряют всякий смысл Конечно, нет. > такой клиент есть и он является клиентом соседнего подразделения А зачем отдавать такие данные всем желающим? > Заказчика убедить в комичности и нелогичности ситуации не получается. Требование заказчика в данном случае - абсолютно уместно. Ничего комичного. > Может кто подскажет дельную мысль? Из Вашего описания - два источника проблем. Первая проблема: логическая модель доступа; попросите заказчика уточнить, на каком уровне детализации (контрагент, подразделение контрагента, персонал подразделения контрагента) какие ограничения доступа нужны. Вторая проблема: собственно модель бизнеса заказчика. Imho невероятная тупость - не координировать деятельность своих сотрудников. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 18:25 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
sergey8882 записи на одного контрагента - не советую. Лучше все-таки подумать об организации прав доступа. А если появится еще 2-3 группы пользователей, то в таблице будет 4-5 записей для одного конрагента? Бред. да, бред - мы тут внутри уже пришли к такому заключению. Бредовая постановка приводит к бреду в реализации... пока думаем в направлении поиска аргументов чтобы разубедить заказчика в таком подходе. Пока стоим на том, что разграничивать надо не справочники, а движения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 18:29 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
guest_20040621> тогда права доступа теряют всякий смысл Конечно, нет. > такой клиент есть и он является клиентом соседнего подразделения А зачем отдавать такие данные всем желающим? > Заказчика убедить в комичности и нелогичности ситуации не получается. Требование заказчика в данном случае - абсолютно уместно. Ничего комичного. > Может кто подскажет дельную мысль? Из Вашего описания - два источника проблем. Первая проблема: логическая модель доступа; попросите заказчика уточнить, на каком уровне детализации (контрагент, подразделение контрагента, персонал подразделения контрагента) какие ограничения доступа нужны. Вторая проблема: собственно модель бизнеса заказчика. Imho невероятная тупость - не координировать деятельность своих сотрудников. дело в том, что там подразделения - весьма далеки друг от друга, это холдинг, со всеми вытекающими. по поводу ценности инфы о клиенте - конечно она ценная, но мы разделили эту информацию - сделали название и некоторые реквизиты общими, а вот всякие там контакты, финансовая инфа - отдельно по подразделению, и по правам доступа. то, что общение с заказчиком предстоит длительное - в этом и не сомневался никто :-) просто аргументов и идей не хватало. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 18:36 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
> дело в том, что там подразделения - весьма далеки друг от друга, > это холдинг, со всеми вытекающими. Не принципиально для этой задачи. > а вот всякие там контакты, финансовая инфа - отдельно по подразделению, > и по правам доступа. Imho напрасно. > общение с заказчиком предстоит длительное Это обычная задача, ничего сложного. Важно задать заказчику правильные вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 18:50 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
2 Hibernate -- А что Вам мешает к клиенту привязать список подразделений(сотрудников), которым разрешен доступ. При создании новой записи в контрагентах ее автор прописывается автоматом, остальным разрешения раздаются путем добавления в список. Автора можно записывать непосредственно в запись клиента. Показываются записи автора + все у которых он есть в списке разрешений. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 18:52 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
iscrafm2 Hibernate -- А что Вам мешает к клиенту привязать список подразделений(сотрудников), которым разрешен доступ. При создании новой записи в контрагентах ее автор прописывается автоматом, остальным разрешения раздаются путем добавления в список. Автора можно записывать непосредственно в запись клиента. Показываются записи автора + все у которых он есть в списке разрешений. +1. При чем разрешения могут быть не простые, а с атрибутами баланса и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 19:12 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
> к клиенту привязать список подразделений(сотрудников) ACL - худшее из возможных решений данной задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 21:11 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
guest_20040621> к клиенту привязать список подразделений(сотрудников) ACL - худшее из возможных решений данной задачи. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 21:21 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
iscrafm2 Hibernate -- А что Вам мешает к клиенту привязать список подразделений(сотрудников), которым разрешен доступ. При создании новой записи в контрагентах ее автор прописывается автоматом, остальным разрешения раздаются путем добавления в список. Автора можно записывать непосредственно в запись клиента. Показываются записи автора + все у которых он есть в списке разрешений. дело в другом, задача тоньше - подразделение А никаким образом не должно узнать, что клиент является или являлся клиентом другого подразделения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 23:18 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
guest_20040621 > а вот всякие там контакты, финансовая инфа - отдельно по подразделению, > и по правам доступа. Imho напрасно. почему, если не секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 23:19 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
bas iscrafm2 Hibernate -- А что Вам мешает к клиенту привязать список подразделений(сотрудников), которым разрешен доступ. При создании новой записи в контрагентах ее автор прописывается автоматом, остальным разрешения раздаются путем добавления в список. Автора можно записывать непосредственно в запись клиента. Показываются записи автора + все у которых он есть в списке разрешений. +1. При чем разрешения могут быть не простые, а с атрибутами баланса и т.д. я о другом. вот сотруднику отдела А надо узнать, является ли "Рога и копыта" клиентом отдела В. По сути ему достаточно попытаться создать этого клиента в БД - по ее реакции можно получить ответ на поставленный вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 23:21 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
> iscrafm: Почему? Вкратце: ACL - как модель ограничения доступа - есть смысл использовать (применительно к реляционным структурам данных) только и исключительно для описания исключений ограничения доступа. > Hibernate: почему, если не секрет? Любые заранее определенные правила вне модели ограничения доступа есть плохо по определению. Вообще говоря, развитие CRM-подобного софта (его элементы мы и обсуждаем) рано или поздно будет связано с интеграцией данных из внешних источников, - на основании каких критериев Вы собираетесь раздавать к ним доступ? Модель бизнеса может измениться (т. е. заказчик может определить другие правила ограничения доступа). Это не должно сопровождаться переписыванием софта. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2006, 23:53 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
Hibernate я о другом. вот сотруднику отдела А надо узнать, является ли "Рога и копыта" клиентом отдела В. По сути ему достаточно попытаться создать этого клиента в БД - по ее реакции можно получить ответ на поставленный вопрос. Я на этот пост отвечу за два. Помимо записи клиента есть еще и записи по клиенту (платежи, отгрузки, договоры и т.п.). К записи клиента имеет доступ автор и те, кому дано разрешение. Разрешение выдается админ. способом (добавлением в список разрешений руками) или автоматом, если пользователь обращается к записи клиента. Однако это не означает, что он получает доступ к данным клиента. К данным клиента доступ имеет только автор. Никакая реакция не даст доступ. Реакция "засветит" наличие клиента, но не содержимое записей по нему. Гемморой с двумя (тремя и более записями), насильственное их объединение в дальнейшем не нужен. Введите простое правило "авторство и права доступа" и применяйте его на любом уровне. Правда если у Вас само наличие клиента А является секретной информацией, а не взаимодействие с ним, тогда да - только дублирование записей и объединение в отчетности. p.s. Хотелось бы все таки услышать аргументы guest_20040621 против ACL. плз. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2006, 00:01 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
guest_20040621, не заметил Ваш пост. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2006, 00:02 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
guest_20040621> iscrafm: Почему? Вкратце: ACL - как модель ограничения доступа - есть смысл использовать (применительно к реляционным структурам данных) только и исключительно для описания исключений ограничения доступа. имхо, нужно использовать принцип наименьшего ввода. В ситуации автора таковым является наоборот раздача прав. По умолчанию доступ имеет автор и только автор. Но в некоторых ситуациях еще и кто-то кроме автора. В общем-то это правило работает везде. Записи разрешений по умолчанию создавать не нужно. Исключением в данном случае является параллельный доступ. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2006, 00:06 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
> нужно использовать принцип наименьшего ввода Поделитесь источником этого глубокого умозаключения, pls. > По умолчанию доступ имеет автор и только автор. Это Вы так решили? > Но в некоторых ситуациях еще и кто-то кроме автора. В общем-то это > правило работает везде. Может, Вам есть смысл сначала что-нибудь прочесть по поводу моделей ограничения доступа? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2006, 00:50 |
|
Права доступа и повторяющиеся записи....
|
|||
---|---|---|---|
#18+
>> Поделитесь источником этого глубокого умозаключения, pls. << Я это только что придумал :) А если серьезно - это очевидно. >> Это Вы так решили? << презумпция авторства, однако. :) >>Может, Вам есть смысл сначала что-нибудь прочесть по поводу моделей ограничения доступа? << Обязательно почитаю авторитетов. Ссылки дайте плз. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2006, 00:58 |
|
|
start [/forum/topic.php?fid=33&fpage=59&tid=1549364]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 238ms |
total: | 384ms |
0 / 0 |