InfoGrab DocsInfoGrab Docs

고급 권한: 백엔드 인프라

요약

이 문서는 Mattermost의 권한을 위한 백엔드 서버 인프라를 설명하며, 설치를 수정하려는 기술적인 관리자나 개발자에게만 권장됩니다. 권한은 객체에 대해 수행될 수 있는 허용된 작업을 설명합니다. 역할은 권한이 부여되는 대상으로, 컨텍스트에서 사용자에게 할당되어 해당 컨텍스트에서 할당된 권한을 부여합니다.

사용 가능 플랜: Entry, Professional, Enterprise, Enterprise Advanced

이 문서는 Mattermost의 권한을 위한 백엔드 서버 인프라를 설명하며, 설치를 수정하려는 기술적인 관리자나 개발자에게만 권장됩니다.

엔티티 정의#

권한#

권한은 객체에 대해 수행될 수 있는 허용된 작업을 설명합니다. 이는 역할이 부여된 컨텍스트에서 권한을 부여하는 역할이 할당된 사용자가 수행할 수 있는 작업을 설명합니다.

역할#

역할은 권한이 부여되는 대상으로, 컨텍스트에서 사용자에게 할당되어 해당 컨텍스트에서 할당된 권한을 부여합니다. 한 사용자는 서로 다른 컨텍스트에서 서로 다른 역할이 부여한 서로 다른 권한 집합을 가질 수 있습니다.

범위#

권한은 주어진 범위 내에 있습니다. Mattermost 시스템에는 시스템, 팀, 채널의 세 가지 범위가 있습니다. 권한은 적용되는 컨텍스트로부터 범위를 따라 계단식으로 내려갑니다. 예를 들어, “채널” 범위 권한이 “팀” 컨텍스트에 적용되면, 해당 권한은 해당 팀 내의 모든 채널에 적용됩니다. 권한은 다음과 같이 고려됩니다.

  • 시스템 레벨에서만 의미가 있는 경우 시스템 범위. 예: manage_oauth.
  • 팀 레벨과 시스템 레벨에서 의미가 있는 경우 팀 범위. 예: create_public_channel.
  • 채널, 팀, 시스템 레벨에서 의미가 있는 경우 채널 범위. 예: manage_public_channel_properties.

컨텍스트#

컨텍스트는 범위의 인스턴스입니다. 예를 들어 "Developers Hangout"이라는 채널은 채널 범위의 인스턴스입니다. 컨텍스트는 범위의 계층적 순서를 반영하는 계층적 관계를 가집니다. 각 컨텍스트는 하나의 부모를 가지며, 여러 하위를 가질 수 있으며, 궁극적인 부모 컨텍스트는 시스템 컨텍스트입니다.

  • 채널 컨텍스트는 부모 팀 컨텍스트를 가지며, 그 부모는 시스템 컨텍스트입니다. 예를 들어 "Developers Hangout" 채널은 채널 컨텍스트이며, 부모 팀 컨텍스트는 "Contributors Team", 부모는 시스템 컨텍스트입니다.
  • 팀 컨텍스트는 부모 시스템 컨텍스트와 하위 채널 컨텍스트를 가집니다. 예를 들어 "Contributors Team"은 팀 컨텍스트이며, 부모는 시스템 컨텍스트이고, 하위 채널 컨텍스트는 "Developers Hangout", "Reception", "Marketing" 등이 있습니다.

특정 컨텍스트에서 사용자가 특정 작업을 수행할 수 있는지 여부를 결정할 때, 현재 컨텍스트와 그 부모 컨텍스트에서 해당 사용자에게 할당된 모든 역할의 권한의 합집합이 계산됩니다. 이를 통해 권한이 범위 계층 구조를 따라 계단식으로 내려갈 수 있습니다. 예를 들어, 사용자가 시스템 컨텍스트의 역할에서 manage_public_channel_properties 권한을 부여받으면, 사용자는 자신이 멤버인 모든 팀의 모든 채널에서 공개 채널 속성을 관리할 수 있는 권한을 가집니다.

스키마#

스키마는 컨텍스트 및 모든 하위 컨텍스트에서 사용자에게 적용되는 기본 역할을 설명합니다. 스키마는 특정 컨텍스트에 대해 특별히 정의되거나, 지정되지 않은 경우 부모 컨텍스트 스키마의 관련 부분이 적용되며, 궁극적으로는 계층 구조를 올라가 시스템 전체 기본값을 제공하는 시스템 스킴에 도달합니다. 예를 들어, Team A에 팀 범위 스키마가 정의되어 있지 않으면 시스템 스킴가 Team A의 모든 컨텍스트에 대한 기본값을 제공합니다.

또한 최하위 범위 스키마는 항상 컨텍스트에서 우선합니다. 예를 들어, Team B에 팀 범위 스키마가 있으면 해당 스키마는 Team B의 모든 컨텍스트에서 시스템 스킴 기본값보다 우선합니다.

데이터 구조#

권한#

Mattermost의 권한은 서버 코드베이스의 속성으로, 동적으로 생성되거나 수정되지 않습니다. 현재 권한 집합은 아래 표에 설명되어 있습니다.

Mattermost 권한

이름 (i18n) 범위 설명
invite_user team 이메일 초대 보내기 또는 팀 초대 링크 받기를 사용하여 팀에 사용자를 초대합니다.
add_user_to_team team 기존 서버 사용자를 현재 팀에 추가합니다.
manage_slash_commands system 자신의 슬래시 명령어를 만들고, 편집하고, 삭제합니다.
manage_others_slash_commands system 다른 사용자의 슬래시 명령어를 편집하거나 삭제합니다.
create_public_channel team 공개 채널을 만듭니다.
create_private_channel team 비공개 채널을 만듭니다.
manage_public_channel_members channel 공개 채널 멤버를 관리합니다.
manage_private_channel_members channel 비공개 채널 멤버를 관리합니다.
assign_system_admin_role system 다른 사용자에게 시스템 관리자 역할을 부여합니다.
manage_roles system 다른 사용자의 시스템 전체 역할을 관리합니다.
manage_team_roles team 팀 멤버를 추가하고 제거합니다.
manage_channel_roles channel 채널 멤버를 추가하고 제거합니다.
manage_system system System Console에 액세스합니다.
sysconsole_read_usermanagement_system_roles system 시스템 역할을 봅니다.
sysconsole_write_usermanagement_system_roles system 시스템 역할을 추가, 제거, 할당합니다.
create_direct_channel system 다이렉트 메시지 채널을 엽니다.
create_group_channel system 그룹 메시지 채널을 엽니다.
manage_public_channel_properties channel 공개 채널 이름, 헤더, 목적을 편집하고 공개 채널 체크리스트를 만듭니다.
manage_private_channel_properties channel 비공개 채널 이름, 헤더, 목적을 편집하고 비공개 채널 체크리스트를 만듭니다.
list_public_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 공개 팀을 봅니다.
join_public_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 공개 팀에 참여합니다.
list_private_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 비공개 팀을 봅니다.
join_private_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 비공개 팀에 참여합니다.
list_team_channels team 팀의 공개 채널을 나열합니다.
join_public_channels team 공개 채널에 참여합니다.
delete_public_channel channel 공개 채널을 보관합니다.
delete_private_channel channel 비공개 채널을 보관합니다.
edit_other_users system 다른 사용자의 user 객체 값을 편집합니다.
read_channel channel 채널의 게시물을 봅니다.
read_channel_contents channel 채널의 콘텐츠를 읽습니다.
read_public_channel team 팀의 공개 채널을 보고 액세스합니다.
add_reaction channel 게시물에 이모지 반응을 추가합니다.
remove_reaction channel 게시물에서 이모지 반응을 제거합니다.
remove_others_reactions channel 게시물에서 다른 사용자의 이모지 반응을 제거합니다.
permanent_delete_user (deprecated) system 다른 사용자를 영구적으로 삭제합니다.
upload_file channel 게시물에 파일 첨부를 업로드합니다.
get_public_link system 게시물의 영구 링크를 가져옵니다.
manage_incoming_webhooks team 자신의 인커밍 웹훅을 만들고, 편집하고, 삭제합니다.
manage_outgoing_webhooks team 자신의 아웃고잉 웹훅을 만들고, 편집하고, 삭제합니다.
manage_others_webhooks(deprecated) team 다른 사용자의 인커밍 또는 아웃고잉 웹훅을 편집하고 삭제합니다.
manage_others_incoming_webhooks team 다른 사용자의 인커밍 웹훅을 편집하고 삭제합니다.
manage_others_outgoing_webhooks team 다른 사용자의 아웃고잉 웹훅을 편집하고 삭제합니다.
manage_oauth system 자신의 OAuth 2.0 앱을 만들고, 편집하고, 삭제합니다.
manage_system_wide_oauth system 다른 사용자의 OAuth 2.0 앱을 편집하거나 삭제합니다.
create_post channel 채널에 게시합니다.
create_post_public channel 채널 내에 시스템 메시지를 만듭니다.
create_post_ephermal channel 채널 내에 임시 메시지를 만듭니다.
edit_post channel 작성자가 자신의 게시물을 편집합니다.
edit_others_posts channel 다른 사용자의 게시물을 편집합니다.
delete_post channel 작성자가 자신의 게시물을 삭제합니다.
delete_others_posts channel 다른 사용자의 게시물을 삭제합니다.
remove_user_from_team team 팀에서 사용자를 제거합니다.
create_team system 팀을 만듭니다.
manage_team team 팀 설정에 액세스합니다.
view_team team 팀 객체를 읽습니다.
create_bot team 봇 계정을 만듭니다.
assign_bot team 봇을 만든 사용자 외의 사용자에게 봇을 할당합니다.
read_bot team 자신이 만든 봇을 봅니다.
read_others_bots team 다른 사용자가 만든 봇을 봅니다.
manage_bots team 자신의 봇을 편집하고 삭제합니다.
manage_others_bots team 다른 사용자가 만든 봇을 편집하고 삭제합니다.
view_members team 팀의 모든 멤버를 나열합니다.
list_users_without_team system 팀이 없는 사용자를 나열합니다.
create_user_access_token system 사용자 액세스 토큰을 만듭니다.
read_user_access_token system ID로 사용자 액세스 토큰을 읽습니다.
revoke_user_access_token system 사용자 액세스 토큰을 취소합니다.
manage_jobs system 작업을 만들고 취소합니다.
create_emojis team 커스텀 이모지를 만듭니다.
delete_emojis team 자신의 커스텀 이모지를 삭제합니다.
delete_others_emojis team 다른 사용자가 만든 커스텀 이모지를 삭제합니다.
invite_guest system 이메일 초대로 게스트 사용자를 초대하거나 기존 게스트를 팀에 추가합니다.
promote_guest system 게스트를 멤버 사용자로 승격합니다.
demote_to_guest system 멤버 사용자를 게스트로 강등합니다.
manage_remote_clusters (v5.36에서 더 이상 사용되지 않음) | system | 공유 채널을 위한 원격 클러스터를 추가, 제거, 조회합니다. v5.36에서 더 이상 사용되지 않으며 manage_secure_connections로 이름이 변경되었습니다.
manage_shared_channels system 원격 서버와의 기존 연결을 통해 채널을 공유하거나 공유를 해제합니다.
manage_secure_connections system 원격 서버에 대한 보안 연결을 만들고, 관리하고, 제거합니다.
manage_post_bleve_indexes_job system Bleve 게시물 인덱싱 작업의 상태를 관리합니다.
manage_data_retention_job system 데이터 보존 작업의 상태를 관리합니다.
manage_compliance_export_job system 컴플라이언스 내보내기 작업의 상태를 관리합니다.
manage_elasticsearch_post_indexing_job system Elasticsearch 게시물 인덱싱 작업의 상태를 관리합니다.
manage_elasticsearch_post_aggregation_job system Elasticsearch 게시물 집계 작업의 상태를 관리합니다.
manage_ldap_sync_job system LDAP 동기화 작업의 상태를 관리합니다.
add_bookmark_public_channel channel 공개 채널에 북마크를 추가합니다.
add_bookmark_private_channel channel 비공개 채널에 북마크를 추가합니다.
edit_bookmark_public_channel channel 공개 채널의 북마크를 변경합니다.
edit_bookmark_private_channel channel 비공개 채널의 북마크를 변경합니다.
delete_bookmark_public_channel channel 공개 채널의 북마크를 삭제합니다.
delete_bookmark_private_channel channel 비공개 채널의 북마크를 삭제합니다.
order_bookmark_public_channel channel 공개 채널의 북마크 순서를 변경합니다.
order_bookmark_private_channel channel 비공개 채널의 북마크 순서를 변경합니다.
manage_channel_banner channel 채널 배너를 관리합니다.
manage_channel_access_rules channel 채널에 대한 속성 기반 접근 제어 규칙을 관리합니다.
manage_team_access_rules team 팀 설정에서 팀의 속성 기반 팀 및 채널 멤버십 정책을 관리합니다.

Roles 필드#

역할은 해당 컨텍스트에서 사용자의 멤버십을 나타내는 객체에 적용됩니다. 이는 User, TeamMember, ChannelMember 및 Schemes 테이블의 Roles 필드에서 참조됩니다.

TeamMember 및 ChannelMember 테이블에서는 Roles 필드에 사용자 지정 역할이 포함되며, SchemeAdmin 및 SchemeUser 불리언 값은 멤버 객체가 관련 팀에 할당된 기본 스키마 또는 사용자 지정 스키마에서 각각의 역할을 상속해야 함을 나타냅니다.

Roles 테이블#

역할은 동적이고 사용자가 구성할 수 있어서 다음 필드가 있는 데이터베이스 테이블이 필요합니다:

  • Id (자동 증가, 기본 키)
  • Name (문자 제약 조건이 있는 고유 문자열, 예: “team_user”).
  • Display Name (문자열)
  • Description (문자열)
  • Permissions (문자열): 공백으로 구분된 권한 이름
  • Scheme Managed (bool): 이 역할이 스키마의 일부로 관리되는지 여부를 나타냅니다.
  • BuiltIn (bool): 이 역할이 Mattermost 시스템에 내장되어 있으며 사용자가 제거할 수 없는지 나타냅니다.

내장 역할#

시스템 스킴는 제품에 내장되어 있으며 그 역할은 Roles 테이블에서 BuiltIn: true로 정의됩니다. Mattermost API를 사용하여 역할 이름으로 권한 목록을 검색할 수 있습니다.

다음 기본 권한을 가진 내장 역할을 사용할 수 있습니다:

channel_admin

  • manage_private_channel_members
  • read_public_channel_groups
  • use_channel_mentions
  • create_post
  • use_group_mentions
  • add_reaction
  • read_private_channel_groups
  • remove_reaction
  • manage_public_channel_members
  • manage_channel_roles
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel
  • manage_channel_banner
  • manage_channel_access_rules

channel_guest

  • read_channel
  • read_channel_contents
  • add_reaction
  • remove_reaction
  • upload_file
  • edit_post
  • create_post
  • use_channel_mentions

channel_user

  • manage_public_channel_properties
  • use_group_mentions
  • add_reaction
  • delete_private_channel
  • manage_private_channel_members
  • read_private_channel_groups
  • delete_public_channel
  • read_public_channel_groups
  • use_channel_mentions
  • read_channel
  • read_channel_contents
  • delete_post
  • get_public_link
  • remove_reaction
  • manage_public_channel_members
  • upload_file
  • manage_private_channel_properties
  • create_post
  • edit_post
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel

system_admin

  • manage_others_slash_commands
  • sysconsole_write_user_management_permissions
  • edit_brand
  • remove_reaction
  • manage_incoming_webhooks
  • sysconsole_write_user_management_groups
  • create_public_channel
  • manage_private_channel_members
  • sysconsole_write_authentication
  • join_private_teams
  • create_post_ephemeral
  • list_users_without_team
  • sysconsole_write_reporting
  • join_public_channels
  • invite_guest
  • list_private_teams
  • sysconsole_write_user_management_channels
  • manage_others_bots
  • read_user_access_token
  • add_user_to_team
  • view_members
  • edit_post
  • demote_to_guest
  • delete_others_posts
  • sysconsole_write_plugins
  • delete_private_channel
  • sysconsole_read_user_management_system_roles
  • sysconsole_read_user_management_users
  • revoke_user_access_token
  • read_others_bots
  • read_public_channel_groups
  • sysconsole_write_user_management_teams
  • sysconsole_write_billing
  • convert_public_channel_to_private
  • remove_user_from_team
  • manage_team
  • add_reaction
  • manage_oauth
  • list_team_channels
  • create_team
  • read_jobs
  • invite_user
  • manage_shared_channels
  • remove_others_reactions
  • manage_secure_connections
  • sysconsole_write_user_management_users
  • sysconsole_read_experimental
  • sysconsole_write_compliance
  • edit_others_posts
  • assign_bot
  • manage_bots
  • manage_others_outgoing_webhooks
  • manage_system_wide_oauth
  • delete_others_emojis
  • manage_others_incoming_webhooks
  • promote_guest
  • sysconsole_write_experimental
  • sysconsole_read_plugins
  • create_group_channel
  • sysconsole_read_environment
  • manage_roles
  • use_channel_mentions
  • manage_public_channel_properties
  • manage_channel_roles
  • get_public_link
  • sysconsole_read_billing
  • sysconsole_write_integrations
  • download_compliance_export_result
  • manage_slash_commands
  • assign_system_admin_role
  • create_post
  • delete_post
  • create_direct_channel
  • list_public_teams
  • create_post_public
  • read_private_channel_groups
  • sysconsole_read_integrations
  • read_other_users_teams
  • manage_jobs
  • sysconsole_read_site
  • manage_outgoing_webhooks
  • sysconsole_write_environment
  • manage_system
  • sysconsole_read_user_management_permissions
  • manage_public_channel_members
  • sysconsole_write_about
  • sysconsole_write_user_management_system_roles
  • sysconsole_read_reporting
  • upload_file
  • read_channel
  • read_channel_contents
  • sysconsole_read_user_management_teams
  • delete_emojis
  • manage_private_channel_properties
  • view_team
  • sysconsole_read_user_management_groups
  • create_private_channel
  • create_bot
  • join_public_teams
  • delete_public_channel
  • read_public_channel
  • sysconsole_read_about
  • read_bots
  • sysconsole_read_authentication
  • edit_other_users
  • sysconsole_read_user_management_channels
  • convert_private_channel_to_public
  • use_group_mentions
  • create_user_access_token
  • sysconsole_write_site
  • manage_team_roles
  • sysconsole_read_compliance
  • create_emojis
  • manage_post_bleve_indexes_job
  • manage_data_retention_job
  • manage_compliance_export_job
  • manage_elasticsearch_post_indexing_job
  • manage_elasticsearch_post_aggregation_job
  • manage_ldap_sync_job
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel
  • manage_channel_banner
  • manage_channel_access_rules

system_custom_group_admin

  • create
  • edit
  • delete
  • manage members
  • restore

system_shared_channel_manager

  • manage_shared_channels

system_guest

  • create_group_channel
  • create_direct_channel

system_manager

  • sysconsole_write_user_management_permissions
  • sysconsole_read_about
  • sysconsole_read_user_management_channels
  • join_private_teams
  • delete_private_channel
  • view_team
  • read_jobs
  • sysconsole_read_user_management_teams
  • sysconsole_read_plugins
  • manage_channel_roles
  • manage_public_channel_members
  • remove_user_from_team
  • sysconsole_read_environment
  • list_private_teams
  • manage_private_channel_members
  • manage_private_channel_properties
  • edit_brand
  • add_user_to_team
  • convert_public_channel_to_private
  • read_private_channel_groups
  • sysconsole_write_environment
  • manage_jobs
  • sysconsole_read_reporting
  • read_public_channel
  • manage_team
  • read_channel
  • sysconsole_read_integration
  • read_public_channel_groups
  • list_public_teams
  • manage_team_roles
  • sysconsole_read_user_management_groups
  • manage_public_channel_properties
  • sysconsole_write_user_management_groups
  • sysconsole_read_user_management_permissions
  • sysconsole_write_site
  • sysconsole_read_site
  • sysconsole_write_user_management_channels
  • sysconsole_write_integrations
  • delete_public_channel
  • sysconsole_write_user_management_teams
  • join_public_teams

system_post_all

  • create_post
  • use_channel_mentions
  • use_group_mentions

system_post_all_public

  • create_post_public
  • use_group_mentions
  • use_channel_mentions

system_read_only_admin

  • sysconsole_read_compliance
  • read_other_users_teams
  • sysconsole_read_reporting
  • list_private_teams
  • sysconsole_read_experimental
  • read_jobs
  • read_public_channel
  • view_team
  • sysconsole_read_user_management_users
  • sysconsole_read_plugins
  • sysconsole_read_user_management_teams
  • read_public_channel_groups
  • sysconsole_read_user_management_channels
  • sysconsole_read_user_management_permissions
  • sysconsole_read_about
  • download_compliance_export_result
  • read_channel
  • sysconsole_read_authentication
  • sysconsole_read_site
  • list_public_teams
  • sysconsole_read_integrations
  • read_private_channel_groups
  • sysconsole_read_environment
  • sysconsole_read_user_management_groups

system_user

  • list_public_teams
  • join_public_teams
  • create_direct_channel
  • create_group_channel
  • view_members
  • create_team
  • create_emojis
  • delete_emojis

system_user_access_token

  • create_user_access_token
  • read_user_access_token
  • revoke_user_access_token

system_user_manager

  • manage_public_channel_members
  • sysconsole_write_user_management_groups
  • manage_private_channel_properties
  • read_channel
  • sysconsole_read_authentication
  • manage_private_channel_members
  • read_jobs
  • view_team
  • sysconsole_read_user_management_groups
  • list_private_teams
  • join_public_teams
  • manage_team
  • list_public_teams
  • add_user_to_team
  • sysconsole_read_user_management_channels
  • sysconsole_write_user_management_teams
  • read_public_channel
  • sysconsole_read_user_management_permissions
  • manage_public_channel_properties
  • join_private_teams
  • convert_public_channel_to_private
  • manage_channel_roles
  • sysconsole_read_user_management_teams
  • read_public_channel_groups
  • delete_public_channel
  • remove_user_from_team
  • manage_team_roles
  • delete_private_channel
  • sysconsole_write_user_management_channels
  • read_private_channel_groups

team_admin

  • remove_user_from_team
  • manage_others_slash_commands
  • manage_team_roles
  • manage_public_channel_members
  • use_group_mentions
  • manage_others_outgoing_webhooks
  • manage_slash_commands
  • manage_team
  • manage_others_incoming_webhooks
  • manage_channel_roles
  • read_public_channel_groups
  • remove_reaction
  • delete_post
  • manage_outgoing_webhooks
  • use_channel_mentions
  • manage_incoming_webhooks
  • delete_others_posts
  • read_private_channel_groups
  • create_post
  • manage_private_channel_members
  • convert_public_channel_to_private
  • add_reaction
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel
  • manage_channel_banner
  • manage_channel_access_rules
  • manage_team_access_rules

team_guest

  • view_team

team_post_all

  • create_post
  • use_group_mentions
  • use_channel_mentions

team_post_all_public

  • use_group_mentions
  • create_post_public
  • use_channel_mentions

team_user

  • invite_user
  • add_user_to_team
  • list_team_channels
  • join_public_channels
  • read_public_channel
  • view_team
  • create_public_channel
  • create_private_channel

Schemes 테이블#

스키마는 동적이고 사용자가 구성할 수 있어서 다음 필드가 있는 데이터베이스 테이블이 필요합니다:

  • Id (자동 증가, 기본 키)
  • Name (문자 제약 조건이 있는 고유 문자열, 예: “corporate_scheme”)
  • Display Name
  • Description (문자열)
  • Scope (문자열): 팀 또는 채널
  • Team Admin Role (문자열): 채널 범위인 경우 비어 있음
  • Team User Role (문자열): 채널 범위인 경우 비어 있음
  • Team Guest Role (문자열): 채널 범위인 경우 비어 있음
  • Channel Admin Role (문자열): 항상 제공됨
  • Channel User Role (문자열): 항상 제공됨
  • Channel Guest Role (문자열): 항상 제공됨

고급 권한: 백엔드 인프라

Mattermost v12.0
원문 보기

요약

이 문서는 Mattermost의 권한을 위한 백엔드 서버 인프라를 설명하며, 설치를 수정하려는 기술적인 관리자나 개발자에게만 권장됩니다. 권한은 객체에 대해 수행될 수 있는 허용된 작업을 설명합니다. 역할은 권한이 부여되는 대상으로, 컨텍스트에서 사용자에게 할당되어 해당 컨텍스트에서 할당된 권한을 부여합니다.

사용 가능 플랜: Entry, Professional, Enterprise, Enterprise Advanced

이 문서는 Mattermost의 권한을 위한 백엔드 서버 인프라를 설명하며, 설치를 수정하려는 기술적인 관리자나 개발자에게만 권장됩니다.

엔티티 정의#

권한#

권한은 객체에 대해 수행될 수 있는 허용된 작업을 설명합니다. 이는 역할이 부여된 컨텍스트에서 권한을 부여하는 역할이 할당된 사용자가 수행할 수 있는 작업을 설명합니다.

역할#

역할은 권한이 부여되는 대상으로, 컨텍스트에서 사용자에게 할당되어 해당 컨텍스트에서 할당된 권한을 부여합니다. 한 사용자는 서로 다른 컨텍스트에서 서로 다른 역할이 부여한 서로 다른 권한 집합을 가질 수 있습니다.

범위#

권한은 주어진 범위 내에 있습니다. Mattermost 시스템에는 시스템, 팀, 채널의 세 가지 범위가 있습니다. 권한은 적용되는 컨텍스트로부터 범위를 따라 계단식으로 내려갑니다. 예를 들어, “채널” 범위 권한이 “팀” 컨텍스트에 적용되면, 해당 권한은 해당 팀 내의 모든 채널에 적용됩니다. 권한은 다음과 같이 고려됩니다.

  • 시스템 레벨에서만 의미가 있는 경우 시스템 범위. 예: manage_oauth.
  • 팀 레벨과 시스템 레벨에서 의미가 있는 경우 팀 범위. 예: create_public_channel.
  • 채널, 팀, 시스템 레벨에서 의미가 있는 경우 채널 범위. 예: manage_public_channel_properties.

컨텍스트#

컨텍스트는 범위의 인스턴스입니다. 예를 들어 "Developers Hangout"이라는 채널은 채널 범위의 인스턴스입니다. 컨텍스트는 범위의 계층적 순서를 반영하는 계층적 관계를 가집니다. 각 컨텍스트는 하나의 부모를 가지며, 여러 하위를 가질 수 있으며, 궁극적인 부모 컨텍스트는 시스템 컨텍스트입니다.

  • 채널 컨텍스트는 부모 팀 컨텍스트를 가지며, 그 부모는 시스템 컨텍스트입니다. 예를 들어 "Developers Hangout" 채널은 채널 컨텍스트이며, 부모 팀 컨텍스트는 "Contributors Team", 부모는 시스템 컨텍스트입니다.
  • 팀 컨텍스트는 부모 시스템 컨텍스트와 하위 채널 컨텍스트를 가집니다. 예를 들어 "Contributors Team"은 팀 컨텍스트이며, 부모는 시스템 컨텍스트이고, 하위 채널 컨텍스트는 "Developers Hangout", "Reception", "Marketing" 등이 있습니다.

특정 컨텍스트에서 사용자가 특정 작업을 수행할 수 있는지 여부를 결정할 때, 현재 컨텍스트와 그 부모 컨텍스트에서 해당 사용자에게 할당된 모든 역할의 권한의 합집합이 계산됩니다. 이를 통해 권한이 범위 계층 구조를 따라 계단식으로 내려갈 수 있습니다. 예를 들어, 사용자가 시스템 컨텍스트의 역할에서 manage_public_channel_properties 권한을 부여받으면, 사용자는 자신이 멤버인 모든 팀의 모든 채널에서 공개 채널 속성을 관리할 수 있는 권한을 가집니다.

스키마#

스키마는 컨텍스트 및 모든 하위 컨텍스트에서 사용자에게 적용되는 기본 역할을 설명합니다. 스키마는 특정 컨텍스트에 대해 특별히 정의되거나, 지정되지 않은 경우 부모 컨텍스트 스키마의 관련 부분이 적용되며, 궁극적으로는 계층 구조를 올라가 시스템 전체 기본값을 제공하는 시스템 스킴에 도달합니다. 예를 들어, Team A에 팀 범위 스키마가 정의되어 있지 않으면 시스템 스킴가 Team A의 모든 컨텍스트에 대한 기본값을 제공합니다.

또한 최하위 범위 스키마는 항상 컨텍스트에서 우선합니다. 예를 들어, Team B에 팀 범위 스키마가 있으면 해당 스키마는 Team B의 모든 컨텍스트에서 시스템 스킴 기본값보다 우선합니다.

데이터 구조#

권한#

Mattermost의 권한은 서버 코드베이스의 속성으로, 동적으로 생성되거나 수정되지 않습니다. 현재 권한 집합은 아래 표에 설명되어 있습니다.

Mattermost 권한

이름 (i18n) 범위 설명
invite_user team 이메일 초대 보내기 또는 팀 초대 링크 받기를 사용하여 팀에 사용자를 초대합니다.
add_user_to_team team 기존 서버 사용자를 현재 팀에 추가합니다.
manage_slash_commands system 자신의 슬래시 명령어를 만들고, 편집하고, 삭제합니다.
manage_others_slash_commands system 다른 사용자의 슬래시 명령어를 편집하거나 삭제합니다.
create_public_channel team 공개 채널을 만듭니다.
create_private_channel team 비공개 채널을 만듭니다.
manage_public_channel_members channel 공개 채널 멤버를 관리합니다.
manage_private_channel_members channel 비공개 채널 멤버를 관리합니다.
assign_system_admin_role system 다른 사용자에게 시스템 관리자 역할을 부여합니다.
manage_roles system 다른 사용자의 시스템 전체 역할을 관리합니다.
manage_team_roles team 팀 멤버를 추가하고 제거합니다.
manage_channel_roles channel 채널 멤버를 추가하고 제거합니다.
manage_system system System Console에 액세스합니다.
sysconsole_read_usermanagement_system_roles system 시스템 역할을 봅니다.
sysconsole_write_usermanagement_system_roles system 시스템 역할을 추가, 제거, 할당합니다.
create_direct_channel system 다이렉트 메시지 채널을 엽니다.
create_group_channel system 그룹 메시지 채널을 엽니다.
manage_public_channel_properties channel 공개 채널 이름, 헤더, 목적을 편집하고 공개 채널 체크리스트를 만듭니다.
manage_private_channel_properties channel 비공개 채널 이름, 헤더, 목적을 편집하고 비공개 채널 체크리스트를 만듭니다.
list_public_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 공개 팀을 봅니다.
join_public_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 공개 팀에 참여합니다.
list_private_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 비공개 팀을 봅니다.
join_private_teams system 메인 메뉴에서 액세스하는 "Join Another Team" 메뉴에 나열된 비공개 팀에 참여합니다.
list_team_channels team 팀의 공개 채널을 나열합니다.
join_public_channels team 공개 채널에 참여합니다.
delete_public_channel channel 공개 채널을 보관합니다.
delete_private_channel channel 비공개 채널을 보관합니다.
edit_other_users system 다른 사용자의 user 객체 값을 편집합니다.
read_channel channel 채널의 게시물을 봅니다.
read_channel_contents channel 채널의 콘텐츠를 읽습니다.
read_public_channel team 팀의 공개 채널을 보고 액세스합니다.
add_reaction channel 게시물에 이모지 반응을 추가합니다.
remove_reaction channel 게시물에서 이모지 반응을 제거합니다.
remove_others_reactions channel 게시물에서 다른 사용자의 이모지 반응을 제거합니다.
permanent_delete_user (deprecated) system 다른 사용자를 영구적으로 삭제합니다.
upload_file channel 게시물에 파일 첨부를 업로드합니다.
get_public_link system 게시물의 영구 링크를 가져옵니다.
manage_incoming_webhooks team 자신의 인커밍 웹훅을 만들고, 편집하고, 삭제합니다.
manage_outgoing_webhooks team 자신의 아웃고잉 웹훅을 만들고, 편집하고, 삭제합니다.
manage_others_webhooks(deprecated) team 다른 사용자의 인커밍 또는 아웃고잉 웹훅을 편집하고 삭제합니다.
manage_others_incoming_webhooks team 다른 사용자의 인커밍 웹훅을 편집하고 삭제합니다.
manage_others_outgoing_webhooks team 다른 사용자의 아웃고잉 웹훅을 편집하고 삭제합니다.
manage_oauth system 자신의 OAuth 2.0 앱을 만들고, 편집하고, 삭제합니다.
manage_system_wide_oauth system 다른 사용자의 OAuth 2.0 앱을 편집하거나 삭제합니다.
create_post channel 채널에 게시합니다.
create_post_public channel 채널 내에 시스템 메시지를 만듭니다.
create_post_ephermal channel 채널 내에 임시 메시지를 만듭니다.
edit_post channel 작성자가 자신의 게시물을 편집합니다.
edit_others_posts channel 다른 사용자의 게시물을 편집합니다.
delete_post channel 작성자가 자신의 게시물을 삭제합니다.
delete_others_posts channel 다른 사용자의 게시물을 삭제합니다.
remove_user_from_team team 팀에서 사용자를 제거합니다.
create_team system 팀을 만듭니다.
manage_team team 팀 설정에 액세스합니다.
view_team team 팀 객체를 읽습니다.
create_bot team 봇 계정을 만듭니다.
assign_bot team 봇을 만든 사용자 외의 사용자에게 봇을 할당합니다.
read_bot team 자신이 만든 봇을 봅니다.
read_others_bots team 다른 사용자가 만든 봇을 봅니다.
manage_bots team 자신의 봇을 편집하고 삭제합니다.
manage_others_bots team 다른 사용자가 만든 봇을 편집하고 삭제합니다.
view_members team 팀의 모든 멤버를 나열합니다.
list_users_without_team system 팀이 없는 사용자를 나열합니다.
create_user_access_token system 사용자 액세스 토큰을 만듭니다.
read_user_access_token system ID로 사용자 액세스 토큰을 읽습니다.
revoke_user_access_token system 사용자 액세스 토큰을 취소합니다.
manage_jobs system 작업을 만들고 취소합니다.
create_emojis team 커스텀 이모지를 만듭니다.
delete_emojis team 자신의 커스텀 이모지를 삭제합니다.
delete_others_emojis team 다른 사용자가 만든 커스텀 이모지를 삭제합니다.
invite_guest system 이메일 초대로 게스트 사용자를 초대하거나 기존 게스트를 팀에 추가합니다.
promote_guest system 게스트를 멤버 사용자로 승격합니다.
demote_to_guest system 멤버 사용자를 게스트로 강등합니다.
manage_remote_clusters (v5.36에서 더 이상 사용되지 않음) | system | 공유 채널을 위한 원격 클러스터를 추가, 제거, 조회합니다. v5.36에서 더 이상 사용되지 않으며 manage_secure_connections로 이름이 변경되었습니다.
manage_shared_channels system 원격 서버와의 기존 연결을 통해 채널을 공유하거나 공유를 해제합니다.
manage_secure_connections system 원격 서버에 대한 보안 연결을 만들고, 관리하고, 제거합니다.
manage_post_bleve_indexes_job system Bleve 게시물 인덱싱 작업의 상태를 관리합니다.
manage_data_retention_job system 데이터 보존 작업의 상태를 관리합니다.
manage_compliance_export_job system 컴플라이언스 내보내기 작업의 상태를 관리합니다.
manage_elasticsearch_post_indexing_job system Elasticsearch 게시물 인덱싱 작업의 상태를 관리합니다.
manage_elasticsearch_post_aggregation_job system Elasticsearch 게시물 집계 작업의 상태를 관리합니다.
manage_ldap_sync_job system LDAP 동기화 작업의 상태를 관리합니다.
add_bookmark_public_channel channel 공개 채널에 북마크를 추가합니다.
add_bookmark_private_channel channel 비공개 채널에 북마크를 추가합니다.
edit_bookmark_public_channel channel 공개 채널의 북마크를 변경합니다.
edit_bookmark_private_channel channel 비공개 채널의 북마크를 변경합니다.
delete_bookmark_public_channel channel 공개 채널의 북마크를 삭제합니다.
delete_bookmark_private_channel channel 비공개 채널의 북마크를 삭제합니다.
order_bookmark_public_channel channel 공개 채널의 북마크 순서를 변경합니다.
order_bookmark_private_channel channel 비공개 채널의 북마크 순서를 변경합니다.
manage_channel_banner channel 채널 배너를 관리합니다.
manage_channel_access_rules channel 채널에 대한 속성 기반 접근 제어 규칙을 관리합니다.
manage_team_access_rules team 팀 설정에서 팀의 속성 기반 팀 및 채널 멤버십 정책을 관리합니다.

Roles 필드#

역할은 해당 컨텍스트에서 사용자의 멤버십을 나타내는 객체에 적용됩니다. 이는 User, TeamMember, ChannelMember 및 Schemes 테이블의 Roles 필드에서 참조됩니다.

TeamMember 및 ChannelMember 테이블에서는 Roles 필드에 사용자 지정 역할이 포함되며, SchemeAdmin 및 SchemeUser 불리언 값은 멤버 객체가 관련 팀에 할당된 기본 스키마 또는 사용자 지정 스키마에서 각각의 역할을 상속해야 함을 나타냅니다.

Roles 테이블#

역할은 동적이고 사용자가 구성할 수 있어서 다음 필드가 있는 데이터베이스 테이블이 필요합니다:

  • Id (자동 증가, 기본 키)
  • Name (문자 제약 조건이 있는 고유 문자열, 예: “team_user”).
  • Display Name (문자열)
  • Description (문자열)
  • Permissions (문자열): 공백으로 구분된 권한 이름
  • Scheme Managed (bool): 이 역할이 스키마의 일부로 관리되는지 여부를 나타냅니다.
  • BuiltIn (bool): 이 역할이 Mattermost 시스템에 내장되어 있으며 사용자가 제거할 수 없는지 나타냅니다.

내장 역할#

시스템 스킴는 제품에 내장되어 있으며 그 역할은 Roles 테이블에서 BuiltIn: true로 정의됩니다. Mattermost API를 사용하여 역할 이름으로 권한 목록을 검색할 수 있습니다.

다음 기본 권한을 가진 내장 역할을 사용할 수 있습니다:

channel_admin

  • manage_private_channel_members
  • read_public_channel_groups
  • use_channel_mentions
  • create_post
  • use_group_mentions
  • add_reaction
  • read_private_channel_groups
  • remove_reaction
  • manage_public_channel_members
  • manage_channel_roles
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel
  • manage_channel_banner
  • manage_channel_access_rules

channel_guest

  • read_channel
  • read_channel_contents
  • add_reaction
  • remove_reaction
  • upload_file
  • edit_post
  • create_post
  • use_channel_mentions

channel_user

  • manage_public_channel_properties
  • use_group_mentions
  • add_reaction
  • delete_private_channel
  • manage_private_channel_members
  • read_private_channel_groups
  • delete_public_channel
  • read_public_channel_groups
  • use_channel_mentions
  • read_channel
  • read_channel_contents
  • delete_post
  • get_public_link
  • remove_reaction
  • manage_public_channel_members
  • upload_file
  • manage_private_channel_properties
  • create_post
  • edit_post
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel

system_admin

  • manage_others_slash_commands
  • sysconsole_write_user_management_permissions
  • edit_brand
  • remove_reaction
  • manage_incoming_webhooks
  • sysconsole_write_user_management_groups
  • create_public_channel
  • manage_private_channel_members
  • sysconsole_write_authentication
  • join_private_teams
  • create_post_ephemeral
  • list_users_without_team
  • sysconsole_write_reporting
  • join_public_channels
  • invite_guest
  • list_private_teams
  • sysconsole_write_user_management_channels
  • manage_others_bots
  • read_user_access_token
  • add_user_to_team
  • view_members
  • edit_post
  • demote_to_guest
  • delete_others_posts
  • sysconsole_write_plugins
  • delete_private_channel
  • sysconsole_read_user_management_system_roles
  • sysconsole_read_user_management_users
  • revoke_user_access_token
  • read_others_bots
  • read_public_channel_groups
  • sysconsole_write_user_management_teams
  • sysconsole_write_billing
  • convert_public_channel_to_private
  • remove_user_from_team
  • manage_team
  • add_reaction
  • manage_oauth
  • list_team_channels
  • create_team
  • read_jobs
  • invite_user
  • manage_shared_channels
  • remove_others_reactions
  • manage_secure_connections
  • sysconsole_write_user_management_users
  • sysconsole_read_experimental
  • sysconsole_write_compliance
  • edit_others_posts
  • assign_bot
  • manage_bots
  • manage_others_outgoing_webhooks
  • manage_system_wide_oauth
  • delete_others_emojis
  • manage_others_incoming_webhooks
  • promote_guest
  • sysconsole_write_experimental
  • sysconsole_read_plugins
  • create_group_channel
  • sysconsole_read_environment
  • manage_roles
  • use_channel_mentions
  • manage_public_channel_properties
  • manage_channel_roles
  • get_public_link
  • sysconsole_read_billing
  • sysconsole_write_integrations
  • download_compliance_export_result
  • manage_slash_commands
  • assign_system_admin_role
  • create_post
  • delete_post
  • create_direct_channel
  • list_public_teams
  • create_post_public
  • read_private_channel_groups
  • sysconsole_read_integrations
  • read_other_users_teams
  • manage_jobs
  • sysconsole_read_site
  • manage_outgoing_webhooks
  • sysconsole_write_environment
  • manage_system
  • sysconsole_read_user_management_permissions
  • manage_public_channel_members
  • sysconsole_write_about
  • sysconsole_write_user_management_system_roles
  • sysconsole_read_reporting
  • upload_file
  • read_channel
  • read_channel_contents
  • sysconsole_read_user_management_teams
  • delete_emojis
  • manage_private_channel_properties
  • view_team
  • sysconsole_read_user_management_groups
  • create_private_channel
  • create_bot
  • join_public_teams
  • delete_public_channel
  • read_public_channel
  • sysconsole_read_about
  • read_bots
  • sysconsole_read_authentication
  • edit_other_users
  • sysconsole_read_user_management_channels
  • convert_private_channel_to_public
  • use_group_mentions
  • create_user_access_token
  • sysconsole_write_site
  • manage_team_roles
  • sysconsole_read_compliance
  • create_emojis
  • manage_post_bleve_indexes_job
  • manage_data_retention_job
  • manage_compliance_export_job
  • manage_elasticsearch_post_indexing_job
  • manage_elasticsearch_post_aggregation_job
  • manage_ldap_sync_job
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel
  • manage_channel_banner
  • manage_channel_access_rules

system_custom_group_admin

  • create
  • edit
  • delete
  • manage members
  • restore

system_shared_channel_manager

  • manage_shared_channels

system_guest

  • create_group_channel
  • create_direct_channel

system_manager

  • sysconsole_write_user_management_permissions
  • sysconsole_read_about
  • sysconsole_read_user_management_channels
  • join_private_teams
  • delete_private_channel
  • view_team
  • read_jobs
  • sysconsole_read_user_management_teams
  • sysconsole_read_plugins
  • manage_channel_roles
  • manage_public_channel_members
  • remove_user_from_team
  • sysconsole_read_environment
  • list_private_teams
  • manage_private_channel_members
  • manage_private_channel_properties
  • edit_brand
  • add_user_to_team
  • convert_public_channel_to_private
  • read_private_channel_groups
  • sysconsole_write_environment
  • manage_jobs
  • sysconsole_read_reporting
  • read_public_channel
  • manage_team
  • read_channel
  • sysconsole_read_integration
  • read_public_channel_groups
  • list_public_teams
  • manage_team_roles
  • sysconsole_read_user_management_groups
  • manage_public_channel_properties
  • sysconsole_write_user_management_groups
  • sysconsole_read_user_management_permissions
  • sysconsole_write_site
  • sysconsole_read_site
  • sysconsole_write_user_management_channels
  • sysconsole_write_integrations
  • delete_public_channel
  • sysconsole_write_user_management_teams
  • join_public_teams

system_post_all

  • create_post
  • use_channel_mentions
  • use_group_mentions

system_post_all_public

  • create_post_public
  • use_group_mentions
  • use_channel_mentions

system_read_only_admin

  • sysconsole_read_compliance
  • read_other_users_teams
  • sysconsole_read_reporting
  • list_private_teams
  • sysconsole_read_experimental
  • read_jobs
  • read_public_channel
  • view_team
  • sysconsole_read_user_management_users
  • sysconsole_read_plugins
  • sysconsole_read_user_management_teams
  • read_public_channel_groups
  • sysconsole_read_user_management_channels
  • sysconsole_read_user_management_permissions
  • sysconsole_read_about
  • download_compliance_export_result
  • read_channel
  • sysconsole_read_authentication
  • sysconsole_read_site
  • list_public_teams
  • sysconsole_read_integrations
  • read_private_channel_groups
  • sysconsole_read_environment
  • sysconsole_read_user_management_groups

system_user

  • list_public_teams
  • join_public_teams
  • create_direct_channel
  • create_group_channel
  • view_members
  • create_team
  • create_emojis
  • delete_emojis

system_user_access_token

  • create_user_access_token
  • read_user_access_token
  • revoke_user_access_token

system_user_manager

  • manage_public_channel_members
  • sysconsole_write_user_management_groups
  • manage_private_channel_properties
  • read_channel
  • sysconsole_read_authentication
  • manage_private_channel_members
  • read_jobs
  • view_team
  • sysconsole_read_user_management_groups
  • list_private_teams
  • join_public_teams
  • manage_team
  • list_public_teams
  • add_user_to_team
  • sysconsole_read_user_management_channels
  • sysconsole_write_user_management_teams
  • read_public_channel
  • sysconsole_read_user_management_permissions
  • manage_public_channel_properties
  • join_private_teams
  • convert_public_channel_to_private
  • manage_channel_roles
  • sysconsole_read_user_management_teams
  • read_public_channel_groups
  • delete_public_channel
  • remove_user_from_team
  • manage_team_roles
  • delete_private_channel
  • sysconsole_write_user_management_channels
  • read_private_channel_groups

team_admin

  • remove_user_from_team
  • manage_others_slash_commands
  • manage_team_roles
  • manage_public_channel_members
  • use_group_mentions
  • manage_others_outgoing_webhooks
  • manage_slash_commands
  • manage_team
  • manage_others_incoming_webhooks
  • manage_channel_roles
  • read_public_channel_groups
  • remove_reaction
  • delete_post
  • manage_outgoing_webhooks
  • use_channel_mentions
  • manage_incoming_webhooks
  • delete_others_posts
  • read_private_channel_groups
  • create_post
  • manage_private_channel_members
  • convert_public_channel_to_private
  • add_reaction
  • add_bookmark_public_channel
  • edit_bookmark_public_channel
  • delete_bookmark_public_channel
  • order_bookmark_public_channel
  • add_bookmark_private_channel
  • edit_bookmark_private_channel
  • delete_bookmark_private_channel
  • order_bookmark_private_channel
  • manage_channel_banner
  • manage_channel_access_rules
  • manage_team_access_rules

team_guest

  • view_team

team_post_all

  • create_post
  • use_group_mentions
  • use_channel_mentions

team_post_all_public

  • use_group_mentions
  • create_post_public
  • use_channel_mentions

team_user

  • invite_user
  • add_user_to_team
  • list_team_channels
  • join_public_channels
  • read_public_channel
  • view_team
  • create_public_channel
  • create_private_channel

Schemes 테이블#

스키마는 동적이고 사용자가 구성할 수 있어서 다음 필드가 있는 데이터베이스 테이블이 필요합니다:

  • Id (자동 증가, 기본 키)
  • Name (문자 제약 조건이 있는 고유 문자열, 예: “corporate_scheme”)
  • Display Name
  • Description (문자열)
  • Scope (문자열): 팀 또는 채널
  • Team Admin Role (문자열): 채널 범위인 경우 비어 있음
  • Team User Role (문자열): 채널 범위인 경우 비어 있음
  • Team Guest Role (문자열): 채널 범위인 경우 비어 있음
  • Channel Admin Role (문자열): 항상 제공됨
  • Channel User Role (문자열): 항상 제공됨
  • Channel Guest Role (문자열): 항상 제공됨