Size: a a a

2020 June 14

N

Nik in Delphi & Lazarus
Andy Korg
Пример решения, вот такую схему еще можно обсуждать. Пока же обсуждать нечего.
в этой схеме узких мест слишком много 🙈
источник

V

Vasiliy in Delphi & Lazarus
В ПО которое используем мне очень нравится система прав.
Пользователь имеет Должность. Должность определяется набором Шаблон доступа-Гриф доступа. Где шаблон доступа -то что он может делать, а гриф-то с чем может эту операцию совершить. Причем просмотр тоже входит туда
источник

V

Vasiliy in Delphi & Lazarus
Гриф доступа назначается каждой записи
источник

AK

Andy Korg in Delphi & Lazarus
Nik
в этой схеме узких мест слишком много 🙈
Может много, а может и нет, все определяется  поставленными задачами.
источник

N

Nik in Delphi & Lazarus
источник

N

Nik in Delphi & Lazarus
примерно такая схема у меня сейчас
источник

AS

Alexey Shumkin in Delphi & Lazarus
George Bakhtadze
что? разве бывают программы без БД? :)
Бывают :)
источник

V

Vasiliy in Delphi & Lazarus
По итогу, скажем, технолог ЦО имеет доступ на редактирование всего справочника, а местный только своей ветки, но и с исключениями, общей ветки справочника.
источник

N

Nik in Delphi & Lazarus
Vasiliy
В ПО которое используем мне очень нравится система прав.
Пользователь имеет Должность. Должность определяется набором Шаблон доступа-Гриф доступа. Где шаблон доступа -то что он может делать, а гриф-то с чем может эту операцию совершить. Причем просмотр тоже входит туда
ну, в моей схеме scope + scope items соответствует "шаблону доступа", а access type = "гриф доступа"
источник

N

Nik in Delphi & Lazarus
если я правильно понял
источник

AK

Andy Korg in Delphi & Lazarus
Ок, т.к. ТЗ нет, то придумываем ситуации на ходу: "Пользователь уволился" Как ложиться такая ситуация на модель БД?
источник

N

Nik in Delphi & Lazarus
Vasiliy
По итогу, скажем, технолог ЦО имеет доступ на редактирование всего справочника, а местный только своей ветки, но и с исключениями, общей ветки справочника.
понял, там ещё и детализация внутри таблицы идёт..
источник

N

Nik in Delphi & Lazarus
Andy Korg
Ок, т.к. ТЗ нет, то придумываем ситуации на ходу: "Пользователь уволился" Как ложиться такая ситуация на модель БД?
в uas_user_identityfield добавится поле соответствующее для этой ситуации, а в uas_user_identity значение этого поля для этого пользователя
источник

V

Vasiliy in Delphi & Lazarus
Nik
ну, в моей схеме scope + scope items соответствует "шаблону доступа", а access type = "гриф доступа"
Немного не так. Гриф выдается для каждой записи таблицы, условно скажем. Scope items идет как права на действия с этим итемом. А объединяет их scope-элемени+действие над ним
источник

AK

Andy Korg in Delphi & Lazarus
Nik
в uas_user_identityfield добавится поле соответствующее для этой ситуации, а в uas_user_identity значение этого поля для этого пользователя
В смысле "добавиться" ? Будем менять схему БД во время работы приложения?
источник

N

Nik in Delphi & Lazarus
Andy Korg
В смысле "добавиться" ? Будем менять схему БД во время работы приложения?
нет, просто добавится одна запись в таблицу uas_users_identityfield - этим включится возможность заполнения отметки об увольнении
источник

N

Nik in Delphi & Lazarus
и дальше для конкретного пользователя выставляем отметку, что он уволен
источник

N

Nik in Delphi & Lazarus
вот что надо добавить - это флаг обязательности заполнения поля )
источник

N

Nik in Delphi & Lazarus
Vasiliy
Немного не так. Гриф выдается для каждой записи таблицы, условно скажем. Scope items идет как права на действия с этим итемом. А объединяет их scope-элемени+действие над ним
В принципе такое можно реализовать тоже
источник

N

Nik in Delphi & Lazarus
Только там ещё потребуется определённый подход при проектировании рабочих таблиц для конкретного функционала в программе
источник