From 043260462494272c0cb1950b05ac985275307a3f Mon Sep 17 00:00:00 2001 From: Semyon Krestyaninov <krestyaninov@perx.ru> Date: Wed, 9 Apr 2025 09:14:54 +0000 Subject: [PATCH] =?UTF-8?q?feat(core):=20=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B=20=D0=B2=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D0=BC=D0=BE=D0=B3=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D1=80=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83?= =?UTF-8?q?=D1=80=20=D0=BC=D0=B5=D0=B6=D0=B4=D1=83=20=D1=82=D0=B8=D0=BF?= =?UTF-8?q?=D0=B0=D0=BC=D0=B8=20`collections.Access`=20=D0=B8=20`permissio?= =?UTF-8?q?n.Rule`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue: #3161 --- pkg/collections/collection.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/pkg/collections/collection.go b/pkg/collections/collection.go index 6c87ec23..a24e7e12 100644 --- a/pkg/collections/collection.go +++ b/pkg/collections/collection.go @@ -23,6 +23,8 @@ type Access struct { HiddenFields []string // Поля не отображаемые в интерфейсе и не возвращаемые API DenyReadFields []string // Поля недоступные для редактирования и не обновляемые через API DenyWriteFields []string // Поля отображаемые в интерфейсе, но не возвращаемые в API + ReadFilter string // Дополнительный фильтр на чтение + WriteFilter string // Дополнительный фильтр на запись Hidden bool // Скрыть коллекцию в интерфейсе от пользователя } @@ -249,3 +251,35 @@ func GetCollectionsIDs(collections []*Collection) []string { } return res } + +func AccessFromRule(rule *permission.Rule) *Access { + if rule == nil { + return nil + } + + return &Access{ + Actions: rule.Actions, + HiddenFields: rule.HiddenFields, + DenyReadFields: rule.DenyReadFields, + DenyWriteFields: rule.DenyWriteFields, + ReadFilter: rule.ReadFilter, + WriteFilter: rule.WriteFilter, + Hidden: rule.Hidden, + } +} + +func RuleFromAccess(access *Access) *permission.Rule { + if access == nil { + return nil + } + + return &permission.Rule{ + Actions: access.Actions, + HiddenFields: access.HiddenFields, + DenyReadFields: access.DenyReadFields, + DenyWriteFields: access.DenyWriteFields, + ReadFilter: access.ReadFilter, + WriteFilter: access.WriteFilter, + Hidden: access.Hidden, + } +} -- GitLab