# Комбинация прав

## Общий принцип комбинации прав

В основе объединения правил лежит принцип приоритета [привилегий](priviliges).

### Приоритет привилегий

`Видеть < Изменять < ... < Администрировать`

Привилегии в списке выстроены по приоритетам. Каждая последующая включает возможности всех предыдущих. Например, привилегия «Удалять записи» разрешает видеть, изменять и удалять все записи, а также создавать новые.

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LACZmmM2xUWbZxyRr4s%2F-LACZnWTX_UP3XcilXPc%2F-LACZwdUG3h5UjRhPXZ6%2Fprivilegies.jpg?generation=1523867440590245\&alt=media)

**Вывод:** _если для сотрудника есть правило «видеть все записи» и одновременно действует другое правило «изменять все записи», то сотрудник сможет изменять записи._

### Приоритет иерархии

`Отдел < Каталог < Вид < Запись`

Правила могут быть назначены на отдел, каталог, вид или отдельные записи. Правила _для одного и того же субъекта_ (сотрудник или правовая группа) объединяются по приоритету вложенности. То есть правило на запись перезатирает правила на виды. Правила на виды перезатирают правило на каталог. Правило на каталог затирают правило на отдел.

Если для сотрудника походят правила нескольких субъектов (например, нескольких правовых групп), то их правила не перезатирают друг друга. Такие правила объединяются по приоритету привилегий — сотрудник получит максимальную из привилегий для подходящих субъектов.

**Вывод:** _если для сотрудника на отдел назначена привилегия «Изменять все записи», а на каталог — «Видеть все записи», то сотрудник сможет только видеть записи._&#x20;

### Приоритет правовых групп

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

**Вывод:** _если для правовой группы «Все сотрудники» назначено правило «Изменять все записи», а для сотрудника только «Видеть все записи», сотрудник сможет изменять записи._

### Приоритет очередности правил

Правила в окне назначения доступа приведены списком. Приоритет правил не зависит от очерёдности правил. Приоритет определяется привилегиями и иерархией вложенности.

### Приоритет прав на поля

Право редактировать поле старше запрета редактировать поле. Право редактировать всю запись без исключения по полям старше права с исключениями. Подробнее в статье «[Права на поля](fields)».

Однако, действует приоритет иерархии. Это значит, что если для одного субъекта есть разные права на редактирование поля на каталоге и на виде, то право на редактирование конкурентного поля будет применено от правила вида.

**Вывод:** _если права на каталог запрещают редактировать поле, а на вид разрешает, то сотрудник сможет менять значение поля._

## Право на все записи каталога

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

### Когда есть правила на каталог или отдел

Если для сотрудника есть подходящее правило на каталог или отдел с привилегией «Видеть все записи» или выше, то он получит доступ на все записи каталога. Исключение составляют записи с привилегией «Нет доступа» или попадающие под условия запрещающих правовых видов с привилегией «Нет доступа».

```
Результат = Все записи каталога - Запрещенные правовые виды - Запрещенные записи
```

### Когда есть правила на вид, но нет на каталог и отдел

Если для сотрудника нет подходящих правил ни на каталог, ни на отдел, то он увидит лишь записи попадающие под разрешающие правовые виды или с индивидуальными разрешающими правами на записи. При этом будут также скрыты записи с привилегией «Нет доступа» или попадающие под условия запрещающих правовых видов с привилегией «Нет доступа».

```
Результат = Разрешенные виды + Разрешенные записи - Запрещенные виды - Запрещенные записи
```

### Когда есть правила на вид и отдел, но нет на каталог

_Сложный кейс._ Если для сотрудника нет подходящих правил на каталог, но есть на отдел и вид, то правила на вид перезатрут правила каталога (правила наследуемые с отдела) на те записи , которые попадают в этот вид. А для остальных записей каталога будут применены правила каталога, которые наследуются с отдела. Сотрудник увидит все записи каталога, а на записи попадающие в вид получит расширенные (или наоборот ограниченные) правила вида. При этом будут также скрыты записи с привилегией «Нет доступа» или попадающие под условия запрещающих правовых видов с привилегией «Нет доступа».

```
Результат = Все записи каталога ± Разрешенные виды ± Разрешенные записи - Запрещенные виды - Запрещенные записи
```

## Право на записи вида

Алгоритм построения списка записей правового вида не зависит от прав на каталог и отдел.

Если для сотрудника есть подходящее правило на правовой вид, то записи этого вида будут доступны сотруднику. При этом из списка будут также записи с привилегией «Нет доступа» или попадающие под условия других запрещающих правовых видов с привилегией «Нет доступа».

```
Результат = Записи выбранного вида - Запрещенные правовые виды - Запрещенные записи
```

## Право на запись

### Доступ разрешен

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

### Доступ запрещен

Запись не будет доступна сотруднику, если нет ни одного подходящего разрешающего правила.

## Примеры

### Полный доступ ко всем записям

Сотрудник видит и может изменять все записи в каталоге. Может создавать новые записи, удалять и назначать права.

**Пример использования:**&#x20;

* В небольших компаниях или отделах, где все сотрудники видят всё
* Руководитель отдела

**Как настроить:**

```
На каталоге (или на отдел): изменять все записи или выше
```



### Изменять имеющиеся без права создавать новые

Сотрудник видит и может изменять уже созданные записи, но не может создавать новые.

**Пример использования:**&#x20;

* В каталогах, куда данные попадают автоматически. Например, заявки с сайта.
* В отделах, где регистрирует данные выделенный сотрудник

**Как настроить:**

```
На каталоге (или на отдел): изменять все записи
```



### Видеть только те, где я ответственный

Сотрудник видит записи, где он назначен как ответственный. Для этого создан правовой вид с фильтром по полю типа сотрудник и значением \[Я / Смотрящий].

**Пример использования:**&#x20;

* История своих звонков, когда данные о звонках вносятся автоматически
* Список персональных распоряжений и указов

**Как настроить:**

```
На отдел: не должно быть правил
На каталоге: не должно быть правил
На правовом виде: видеть все записи
```



### Видеть и изменять только те, где я ответственный

Сотрудник видит и может изменять записи, где он назначен как ответственный. Для этого создан правовой вид с фильтром по полю типа сотрудник и значением \[Я / Смотрящий].

**Пример использования:**&#x20;

* Отдел продаж, где сотрудники работают независимо по назначенной им базе
* Отдел поддержки, где заявки распределяются между сотрудниками
* Список делегированных задач

**Как настроить:**

```
На отдел: не должно быть правил
На каталоге: не должно быть правил
На правовом виде: изменять все записи
```



### Видеть все, а изменять только те, где я ответственный

Сотрудник видит все записи каталога, а те, где он назначен как ответственный — может изменять. Для этого создан правовой вид с фильтром по полю типа сотрудник и значением \[Я / Смотрящий].

**Пример использования:**&#x20;

* Отдел продаж, где все видят общую базу, но работают по распределенным на них заказам

**Как настроить:**

```
На каталоге: видеть все записи
На правовом виде: изменять все записи
```



### Видеть и изменять только те, где я ответственный + создавать новые

Сотрудник видит и может изменять записи, где он назначен как ответственный. Для этого создан правовой вид с фильтром по полю типа сотрудник и значением \[Я / Смотрящий].

**Пример использования:**&#x20;

* Отдел продаж, где каждый работает со своим списком клиентов, которых вносит сам
* Распределение базы клиентов по городам или филиалам

**Как настроить:**

```
На отдел: не должно быть правил
На каталоге: не должно быть правил
На правовом виде: создавать записи
```



### Полный доступ к каталогу

Сотрудник может изменять структуру каталога, раздавать права, создавать правовые виды.

**Пример использования:**&#x20;

* Администратор компании
* Руководитель отдела

**Как настроить:**

```
На каталоге (или на отдел): администрировать
```



### Скрытие каталога в меню

Скрытие каталога от сотрудника без потери доступа к данным при условии, что права описаны ниже по иерархии. Каталог визуально скрывается, но сотрудник может использовать данные в каталоге. Возможно скрыть только связанные между собой каталоги.&#x20;

**Пример использования:**&#x20;

* Отдел продаж, где каждый работает с разными списками данных

**Как настроить:**

```
На каталоге (или на отдел): доступ к разрешенным
```
