diff --git a/pkg/collections/collection.go b/pkg/collections/collection.go
index 6c87ec232003b71a3873888a9f00e8513959fed4..a24e7e12b46b896734e96548d415e338f85f75bb 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,
+	}
+}