![](https://habrastorage.org/webt/o1/yl/u1/o1ylu1clgcknm7ap6duaynxbdbs.jpeg)
Совместная работа и архитектура прав доступа одна из ключевых задач разработки облачных cервисов. Как мы реализовали их в сервисе автоматизации стоматологии DentalTap — не совсем стандартный подход.
Ограничения
Коллаборация DentalTap в нашем понимании — это возможность работы над выполнением задач в окружении сервиса совместно со штатными или внешними коллегами с разными ролями. Мы реализовали роли по функциональным обязанностям сотрудников клиники — администратор клиники, врач, руководитель. Приоритетным для нас была простота настроек прав доступа.
На текущую реализацию совместной работы повлияли особенности рынка и первые версии продукта, которые были ориентированы на solo практики (кабинетов у дома) и постепенно развивались в решение для клиник.
Как обычно
- В совместной работе используют роли штатных, внештатных сотрудников или сотрудников контрагента.
- Реализуют права работы через сущности архитектуры сервиса и операций над ними -просмотр, редактирование, удаление и т.д.
![](https://habrastorage.org/webt/t9/vi/4k/t9vi4khi-awwjtacyeyfkkefios.png)
У AmoCRM акцент на сущности и настройки работы с ними
Наша реализация
Владелец приглашает коллег в свою подписку через инвайты, а приглашенный сотрудник получает возможность работать в гостевом аккаунте и становиться владельцем собственной подписки. При входе в сервис приглашенный врач может выбирать с какой подпиской работать.
Далее владелец подписки может назначать роли приглашенных сотрудников или настроить права доступа вручную. Разрешения операций удаления, редактирования, создания мы реализовали только для карты пациента, в которой собран основной функционал сервиса. Другими словами,. через доступ к карте пациента мы администрируем и доступ к основному функционалу карты пациента — лечению, счетам, файлам и документам.
![](https://habrastorage.org/webt/lx/ds/f9/lxdsf95k5_ws4lhorm0bw7suu2s.png)
Разрешаем доступ сотруднику к пациенту
Настройки остальных прав в DentalTap сводится только к разрешению работы и касается только функционала, вынесенному за карту пациента — работа с календарем, задачами, прайс-листом, шаблонами SMS.
![](https://habrastorage.org/webt/gv/p9/ko/gvp9koopvnp7_kbzffv_pjwbqzq.png)
Настраиваем права работы с картой пациента
Важно, что совместная работа реализована нами на двух уровнях — через общие настройки прав доступа и через разрешение доступа к пациенту со стороны владельца подписки. В результате приглашенный сотрудник:
- Видит или нет пациента в списке.
- Могут просматривать или редактировать его карту.
Результаты
- Разграниченная между специалистами база пациентов
- Организация совместной работы сотрудниками клиниками и практикующими врачами.
- Ограничение к основному функционалу сервиса через доступ к карте пациента.
- Реализацию виральности через автоматическое создание дополнительной подписки.
- Универсальность продукта для частных врачей и клиник.
- Упрощение процесса и логики настройки прав доступа.
Основной вывод — мы показали, как можно делать важный функционал нестандартными способами и это сильно упростит жизнь пользователям ваших решений. Мы подошли к администрированию прав работы для сущностей, расположенных в карте пациента, через разрешение операций над ними и разрешение работы с картой. Такой подход упрощает настройки прав, если для нескольких сущностей надо назначать одинаковые права доступа. Получилось, пользуйтесь.
→ Серия «Hi, SaaS»