Workify logoЕдинственный бизнес-инструмент, который вам нуженWorkify
Меню

Разрешения и контроль доступа

Обзор

Workify реализует комплексную систему контроля доступа на основе ролей, которая обеспечивает, чтобы участники команды имели соответствующий доступ к проектам, доскам и задачам, одновременно поддерживая безопасность и изоляцию данных. Основываясь на анализе кода, система использует комбинацию ролей пользователей, проверки разрешений и изоляции на основе команд для контроля доступа к функциям управления проектами.

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


Доступ на основе ролей - различные роли пользователей и возможности

Система ролей пользователей

Доступные роли: Основываясь на анализе кода, система реализует 7 различных ролей пользователей:

1. СУПЕРАДМИНИСТРАТОР

  • Полный доступ к системе - Полный контроль над всеми организационными данными и настройками
  • isShowAllAndOwnProjectCRUD() - Может просматривать и управлять всеми проектами
  • isShowAllAndOwnTaskCRUD() - Может просматривать и управлять всеми задачами
  • Управление командой - Может управлять всеми участниками команды и ролями
  • Финансовый контроль - Доступ ко всем функциям инвойсинга и финансов

2. МЕНЕДЖЕР ОРГАНИЗАЦИИ

  • Лидерство команды - Управлять командами, проектами и настройками организации
  • isShowAllAndOwnProjectCRUD() - Может просматривать и управлять всеми командными проектами
  • isShowAllAndOwnTaskCRUD() - Может просматривать и управлять всеми командными задачами
  • Управление клиентами - Полный доступ к отношениям с клиентами и данным
  • Финансовый доступ - Может управлять инвойсингом и расходами

3. МЕНЕДЖЕР ПРОДАЖ

  • Операции продаж - Надзор за деятельностью продаж и управление командой продаж
  • isShowAllAndOwnTaskCRUD() - Может просматривать и управлять всеми задачами
  • isShowAllAndOwnContactCRUD() - Может управлять всеми контактами и лидами
  • isShowAllAndOwnDealCRUD() - Может управлять всеми сделками и возможностями
  • Создание проектов - Может создавать проекты для клиентов
  • Ограниченные финансы - Может создавать счета, но ограниченный финансовый доступ

4. ПРЕДСТАВИТЕЛЬ ПРОДАЖ

  • Целевой доступ к продажам - Доступ только к назначенным лидам и сделкам
  • isShowAllAndOwnDealCRUD() - Может управлять сделками и возможностями
  • Создание проектов - Может создавать проекты для своих клиентов
  • Ограниченная область - Не может получить доступ к данным других участников команды
  • Взаимодействие с клиентами - Может управлять назначенными отношениями с клиентами

5. МЕНЕДЖЕР ПРОЕКТА

  • Роль определена - Перечисление существует, но реализация не найдена в проанализированном коде
  • Ограниченное использование - Роль может не быть активно реализована в текущей системе

6. ПОЛЬЗОВАТЕЛЬ

  • Выполнение задач - Может работать над назначенными задачами и проектами
  • Требуется назначение проекта - Должен быть назначен на проекты для доступа
  • Доступ к сотрудничеству - Может комментировать, назначать пользователей и отслеживать время
  • Ограниченное администрирование - Не может создавать проекты или управлять настройками команды

7. ПРОСМОТРЩИК ПРОЕКТА

  • Роль доступа клиента - Разработана для доступа клиентского портала
  • Два подтипа - Варианты 'viewer' и 'manager'
  • Требуется назначение проекта - Должен быть назначен на конкретные проекты
  • Доступ чтения/записи - Может просматривать и взаимодействовать с назначенными проектами
  • Бесплатная роль - Добавление пользователей в этой роли бесплатно

Детали реализации ролей

Методы проверки ролей: Основываясь на анализе модели User:

  • hasRole(RoleName $role) - Проверить, есть ли у пользователя конкретная роль
  • Методы для конкретных ролей - isSuperAdmin(), isOrganizationManager() и т.д.
  • Проверка разрешений - hasPermission(string $permission)
  • Группы разрешений CRUD - isShowAllAndOwnProjectCRUD() и т.д.

Подтипы просмотрщика проекта:

  • isViewer() - Роль PROJECT_VIEWER со значением 'viewer' project_viewer
  • isViewerManager() - Роль PROJECT_VIEWER со значением 'manager' project_viewer
  • isProjectViewer() - Любая роль PROJECT_VIEWER независимо от подтипа

Разрешения на уровне проектов - кто может получить доступ к каким проектам

Контроль доступа к проектам

Реализация разрешений проекта: Основываясь на анализе ProjectPolicy:

Просмотр проектов (viewAny):

  • Проверка разрешений - Пользователи с разрешением 'project.viewAny'
  • Доступ просмотрщика - Просмотрщики проектов могут видеть назначенные проекты
  • Изоляция команды - Пользователи видят только проекты своей команды

Создание проектов (create):

  • Роли администратора - isShowAllAndOwnProjectCRUD() (Суперандмин, Менеджер организации)
  • Роли продаж - Менеджеры продаж и представители продаж могут создавать проекты
  • Ограничение пользователей - Обычные пользователи не могут создавать проекты

Редактирование проектов (edit/update):

  • На основе разрешений - Пользователи с разрешением 'project.update'
  • Исключение просмотрщика - Просмотрщики проектов могут редактировать, если назначены на проект
  • На основе владения - Пользователи продаж могут редактировать свои собственные проекты
  • Валидация команды - Все редактирования требуют членства в той же команде

Удаление/архивирование проектов:

  • Контроль администратора - В основном роли администратора и менеджера
  • Права владения - Пользователи продаж могут удалять свои собственные проекты
  • Изоляция команды - Может удалять только проекты в той же команде

Система назначения проектов

Связи пользователей проекта:

  • Система назначения пользователей - Явное назначение пользователей на проекты
  • belongsToProject() - Метод для проверки, принадлежит ли пользователь проекту
  • Валидация команды - Назначение проекта требует членства в той же команде
  • Каскад разрешений - Назначение проекта влияет на доступ к доскам и задачам

Преимущества назначения:Гранулярный контроль - Назначать конкретных пользователей на конкретные проекты ✅ Изоляция безопасности - Пользователи получают доступ только к назначенным проектам ✅ Гибкое управление - Легко добавлять/удалять пользователей из проектов ✅ Наследование разрешений - Назначение проекта включает доступ к доскам и задачам


Безопасность на уровне досок - контроль доступа для конкретных досок

Система разрешений досок

Контроль доступа к доскам: Основываясь на анализе ProjectBoardPolicy:

Просмотр досок:

  • Зависимость разрешений задач - Требует разрешения 'task.viewAny'
  • Назначение проекта - Должен быть назначен на проект, содержащий доску
  • Членство в команде - Должен быть участником той же команды, что и доска
  • Доступ на основе ролей - Различные уровни доступа на основе роли пользователя

Создание досок:

  • Роли администратора - Пользователи isShowAllAndOwnTaskCRUD() могут создавать доски
  • Обычные пользователи - Пользователи могут создавать доски на назначенных проектах
  • Менеджеры просмотрщиков - Могут создавать доски на назначенных проектах
  • Ограничение просмотрщиков - Обычные просмотрщики не могут создавать доски

Управление досками:

  • Разрешение обновления - Требует разрешения 'task.update'
  • На основе владения - Пользователи могут управлять досками, которыми они владеют
  • Переопределение администратора - Администраторы могут управлять всеми командными досками
  • Валидация команды - Все операции требуют членства в той же команде

Функции безопасности досок

Валидация доступа:

  • Многоуровневая проверка - Проверка разрешений, ролей, команды и назначения проекта
  • Соединение пользователей проекта - Сложный запрос, соединяющий таблицы проектов и project_users
  • Изоляция команды - Доступ к доскам строго ограничен участниками команды
  • Каскад разрешений - Доступ к доскам включает доступ к колонкам и задачам

Преимущества безопасности:Безопасность на основе проектов - Доступ к доскам привязан к назначению проекта ✅ Изоляция команды - Полное разделение между различными командами ✅ Уважение ролей - Различные возможности на основе ролей пользователей ✅ Признание владения - Владельцы досок имеют расширенные разрешения


Разрешения на уровне задач - детализированный доступ к задачам

Система разрешений задач

Контроль доступа к задачам: Основываясь на анализе TaskPolicy:

Просмотр задач:

  • Валидация команды - Должен быть участником той же команды, что и задача
  • Проверка команды колонки - Валидирует, что команда пользователя соответствует команде колонки задачи
  • Все роли разрешены - Все типы ролей могут просматривать задачи (с валидацией команды)
  • Универсальный доступ - viewAny() возвращает true (с другими валидациями)

Создание задач:

  • Широкий доступ - Большинство ролей могут создавать задачи (администратор, пользователь, просмотрщик, менеджер просмотрщика)
  • Назначение проекта - Должен иметь доступ к целевому проекту
  • Проверка разрешений - Некоторые роли требуют разрешения 'task.update'
  • Валидация команды - Создание задач ограничено участниками команды

Управление задачами:

  • Обновление задач - Аналогичные разрешения к созданию задач
  • Удаление задач - Требует соответствующую роль и членство в команде
  • Назначение пользователей - Может назначать пользователей на задачи с соответствующими разрешениями
  • Добавление комментариев - Широкий доступ для командного сотрудничества

Специальные разрешения задач:

  • moveToBoard - Может перемещать задачи между досками в той же команде
  • Отслеживание времени - Просмотрщики проектов с типом 'viewer' не могут отслеживать время
  • Доступ к файлам - Доступ к вложениям задач следует разрешениям задач

Реализация безопасности задач

Паттерн валидации разрешений: Все операции с задачами следуют аналогичному паттерну валидации:

  1. Валидация команды - Проверить, что команда пользователя соответствует команде колонки задачи
  2. Проверка роли - Проверить, что роль пользователя имеет соответствующие разрешения
  3. Назначение проекта - Убедиться, что пользователь назначен на проект (для просмотрщиков)
  4. Строка разрешений - Проверить конкретные строки разрешений, где требуется

Преимущества безопасности задач:Изоляция команды - Задачи полностью изолированы между командами ✅ Доступ на основе проектов - Доступ к задачам привязан к назначению проекта ✅ Разрешения, соответствующие ролям - Различные возможности на основе роли пользователя ✅ Детализированный контроль - Конкретные разрешения для различных операций с задачами


Доступ клиентского портала - что клиенты могут видеть и делать

Реализация клиентского портала

Система пользователей клиентов: Основываясь на анализе кода, доступ клиентского портала использует роль PROJECT_VIEWER:

Функции клиентского портала:

  • Вид DashboardClient - Специальная панель для пользователей клиентов
  • Обнаружение isViewer() - Система обнаруживает пользователей клиентов и направляет к клиентскому интерфейсу
  • Интеграция чата - Автоматическое создание чата для коммуникации с клиентами
  • Интеграция виджетов - Виджет клиентского портала для коммуникации

Разрешения доступа клиентов:

  • Требуется назначение проекта - Клиенты должны быть назначены на конкретные проекты
  • Валидация команды - Доступ клиентов ограничен их командным контекстом
  • Ограниченная область - Клиенты видят только назначенные проекты и связанные данные
  • Профессиональный интерфейс - Отдельный интерфейс, ориентированный на клиентов

Безопасность клиентского портала

Контроль доступа для клиентов:

  • Маршрутизация на основе ролей - Пользователи isViewer() автоматически направляются к клиентскому порталу
  • Изоляция проектов - Клиенты видят только проекты, на которые они назначены
  • Фильтрация данных - Все запросы отфильтрованы по назначению клиента и разрешениям
  • Граница команды - Доступ клиентов строго ограничен их командой

Преимущества клиентского портала:Безопасный доступ - Клиенты видят только релевантную информацию о проекте ✅ Профессиональный интерфейс - Чистый, подходящий для клиентов интерфейс ✅ Прозрачность проекта - Клиенты могут видеть прогресс и статус проекта ✅ Контролируемая коммуникация - Управляемые каналы коммуникации с командой


Архитектура системы разрешений

Техническая реализация

Хранение разрешений:

  • Система ролей - Хранит доступные роли пользователей и возможности
  • Назначение ролей пользователей - Связывает пользователей с ролями с командным контекстом
  • Индивидуальные разрешения - Конкретные разрешения в рамках каждой роли
  • Изоляция команды - Все разрешения ограничены уровнем команды

Проверка разрешений:

  • hasPermission() - Проверка разрешений на основе строк
  • Методы ролей - Конкретные методы проверки ролей
  • Классы политик - Выделенные классы политик для каждой модели
  • Регистрация ворот - Автоматическая регистрация ворот для всех разрешений

Уровни безопасности:

  1. Аутентификация - Пользователь должен быть авторизован
  2. Членство в команде - Пользователь должен быть участником релевантной команды
  3. Валидация роли - Пользователь должен иметь соответствующую роль
  4. Проверка разрешений - Пользователь должен иметь конкретное разрешение
  5. Назначение проекта - Пользователь должен быть назначен на проект (где применимо)

Преимущества разрешений

Многоуровневая безопасность - Множественные уровни валидации предотвращают несанкционированный доступ ✅ Изоляция команды - Полное разделение между различными командами ✅ Доступ, соответствующий ролям - Разрешения соответствуют ответственности пользователя ✅ Контроль для конкретных проектов - Детализированный контроль доступа к проектам ✅ Безопасность клиентов - Безопасный, контролируемый доступ для пользователей клиентов


Начало работы с управлением разрешениями

Руководство по быстрому старту

Шаг 1: Поймите вашу роль

  1. Проверьте вашу роль пользователя и разрешения
  2. Поймите, какие действия вы можете выполнять
  3. Знайте, к каким проектам и данным вы можете получить доступ
  4. Определите любые ограничения в вашем доступе

Шаг 2: Управляйте разрешениями команды

  1. Просмотрите роли участников команды и уровни доступа
  2. Назначьте пользователей на соответствующие проекты
  3. Проверьте, что участники команды имеют необходимые разрешения
  4. Настройте роли по мере необходимости для требований проекта

Шаг 3: Настройте доступ клиентов

  1. Настройте пользователей клиентов с ролью PROJECT_VIEWER
  2. Назначьте клиентов на конкретные проекты
  3. Настройте доступ клиентского портала соответствующим образом
  4. Протестируйте доступ клиентов, чтобы убедиться в правильной изоляции

Лучшие практики разрешений

Принцип наименьших привилегий - Давайте пользователям только доступ, который им нужен ✅ Регулярный обзор - Периодически аудитируйте роли и разрешения пользователей ✅ Четкое определение ролей - Обеспечьте, чтобы команда понимала свои уровни доступа ✅ Назначение проектов - Правильно назначайте пользователей на релевантные проекты ✅ Разделение клиентов - Держите доступ клиентов безопасным и соответствующим ✅ Изоляция команды - Поддерживайте четкие границы между командами


Устранение неполадок проблем разрешений

Общие проблемы

Не могу получить доступ к проектам:

  • Проверка роли - Проверьте, что у вас есть соответствующая роль для доступа к проектам
  • Назначение проекта - Убедитесь, что вы назначены на конкретный проект
  • Членство в команде - Подтвердите, что вы участник правильной команды
  • Строка разрешений - Проверьте, есть ли у вас требуемые строки разрешений

Не могу создавать/редактировать задачи:

  • Разрешение задач - Проверьте, что у вас есть разрешение 'task.update'
  • Назначение проекта - Убедитесь, что вы назначены на проект
  • Валидация команды - Подтвердите, что ваша команда соответствует команде задачи
  • Ограничения ролей - Некоторые роли имеют ограниченный доступ к задачам

Проблемы клиентского портала:

  • Конфигурация роли - Проверьте, что клиент имеет роль PROJECT_VIEWER
  • Назначение проекта - Убедитесь, что клиент назначен на конкретные проекты
  • Настройка портала - Проверьте конфигурацию виджета клиентского портала
  • Контекст команды - Проверьте, что клиент находится в правильном командном контексте

Отладка разрешений

Проверка ваших разрешений:

  1. Проверка роли - Подтвердите вашу назначенную роль
  2. Список разрешений - Просмотрите ваши конкретные разрешения
  3. Назначение проекта - Проверьте, на какие проекты вы назначены
  4. Контекст команды - Проверьте, что вы находитесь в правильной команде
  5. Валидация политики - Поймите, какие правила политики применяются к вашим действиям

Следующие шаги

Теперь, когда вы понимаете разрешения и контроль доступа, вы готовы изучить:

Помните: Система разрешений в Workify разработана для обеспечения безопасности, одновременно позволяя сотрудничество. Понимание вашей роли и разрешений поможет вам эффективно работать в системе, одновременно поддерживая соответствующий контроль доступа для вашей команды и клиентов.

Похожие статьи

Командное сотрудничество (контекст управления проектами)

Командное сотрудничество в системе управления проектами Workify фокусируется на конкретных инструментах и функциях, которые позволяют эффективную командную работу над проектами, досками и задачами. Эт...

Командное сотрудничество и коммуникация

Эффективное командное сотрудничество является основой успешной доставки проектов в Workify. Платформа предоставляет комплексные инструменты для командной коммуникации, координации и управления рабочим...

Интеграция с другими модулями

Система управления проектами Workify бесшовно интегрируется с другими модулями платформы для обеспечения единого опыта управления бизнесом. Основываясь на тщательном анализе кода, функции управления п...

Портал счетов

Workify предоставляет комплексный клиентский портал для управления счетами и платежами:

Импорт и экспорт контактов

Система обеспечивает комплексные возможности массового импорта контактов для эффективного управления контактами:

Отслеживание и аналитика Email

Workify предоставляет детальное логирование email для полной видимости email-коммуникаций: