From 48e5cc9cce303d5b23125e189e89f68a86ce4ffb Mon Sep 17 00:00:00 2001 From: "Carrie Warner (Mattermost)" <74422101+cwarnermm@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:20:23 -0500 Subject: [PATCH 1/3] Simplified channel end user docs & incorporated feedback (#7648) --- .../archive-unarchive-channels.rst | 21 ++++--- source/collaborate/channel-types.rst | 57 +++++++++++++------ .../collaborate-within-channels.rst | 14 ++--- source/conf.py | 7 +++ source/images/archive-outline_F120E.svg | 1 + .../manage-your-desktop-notifications.rst | 2 +- .../manage-your-mobile-notifications.rst | 2 +- .../preferences/manage-your-notifications.rst | 4 +- .../manage-your-web-notifications.rst | 2 +- 9 files changed, 68 insertions(+), 42 deletions(-) create mode 100644 source/images/archive-outline_F120E.svg diff --git a/source/collaborate/archive-unarchive-channels.rst b/source/collaborate/archive-unarchive-channels.rst index 62f931193e2..b49d958f4ab 100644 --- a/source/collaborate/archive-unarchive-channels.rst +++ b/source/collaborate/archive-unarchive-channels.rst @@ -7,16 +7,11 @@ Archive and unarchive channels Archive a channel ----------------- -You can delete a channel in Mattermost when it's no longer useful by archiving it. Anyone using Mattermost can archive the public channels or private channels they're a member of, unless the system admin has restricted the permissions to do so. +Delete :ref:`public channels ` and :ref:`private channels ` when they're no longer needed by archiving them. Archiving channels removes them from the channel sidebar and marks them as read-only. Anyone can archive a public or private channel they're a member of, unless your system admin has :doc:`disabled ` your ability to do so. -When a channel is archived, it's deleted from the user interface, but a copy exists on the server in case it's needed for audit reasons in the future, or in case you decide to restore the channel by `unarchiving it <#unarchive-a-channel>`__. - -.. note:: +.. tip:: - - All users are added to the **Off-Topic** and **Town Square** channels automatically. Town Square can't be archived. - - System admins can archive channels in the System Console without needing to be a channel member. - - Because a copy of the channel exists on the server, you can't reuse the URL of an archived channel when :doc:`creating a new channel `. - - Instead of archiving the channel, you can also leave it open and post a message in the channel saying it's considered archived, such as: ``# This channel is archived.`` + You can continue to access archived channels, unless your system admin has :ref:`disabled ` your ability to do so. .. tab:: Web/Desktop @@ -56,10 +51,18 @@ When a channel is archived, it's deleted from the user interface, but a copy exi :alt: Tap on Yes to confirm your choice. :scale: 30 +.. note:: + + - When a Mattermost user is deactivated in the system, your :ref:`direct message channel ` with that user are archived and marked as read-only. An **Archived** icon |file-box| displays next to archived channels. + - :ref:`Group message channels ` can't be archived, but they can be closed to hide them from the channel sidebar. + - The default **Town Square** channel can't be archived. + - System admins can archive channels without needing to be a channel member by using the System Console. + - Because a copy of the channel exists on the server, you can't reuse the URL of an archived channel when :doc:`creating a new channel `. + Unarchive a channel ------------------- -System admins and Team admins can restore archived channels. When a channel is unarchived, channel membership and all its content is restored, unless messages and files have been deleted based on the :ref:`data retention policy `. +System admins and Team admins can restore archived channels. When a channel is unarchived, channel membership and all its content is restored, unless messages and files have been deleted based on a :ref:`data retention policy `. .. tab:: Web/Desktop diff --git a/source/collaborate/channel-types.rst b/source/collaborate/channel-types.rst index b8f35ceb786..a7e986869b8 100644 --- a/source/collaborate/channel-types.rst +++ b/source/collaborate/channel-types.rst @@ -4,46 +4,67 @@ Channel types .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: -Channels are used to organize conversations across different topics. Find available channels in the left-hand panel. There are four types of channels: public channels, private channels, direct messages, and group messages. Enterprise system administrators can also configure channels as :ref:`read-only `. +Channels are used to organize conversations across different topics. The channels you're a member of display in the left pane. Learn how to create channels by visiting the :doc:`create channels ` documentation. -Sending messages, replying to messages, and participating in conversation threads are important ways to keep conversations active with your team. See the following topics to learn more about working with channels. +There are 5 types of channels in Mattermost: + +- `Public channels <#public-channels>`__ +- `Private channels <#private-channels>`__ +- `Direct message channels <#direct-message-channels>`__ +- `Group message channels <#group-message-channels>`__ +- `Archived channels <#archived-channels>`__ + +.. tip:: + + Enterprise customers can additionally configure :ref:`read-only ` broadcast channels. Public channels --------------- Public channels are open to everyone on a team and are identified with a **Globe** |globe| icon. New team members are automatically added to two public channels when they sign up: **Town Square** and **Off-Topic**. -See the :doc:`Join and leave channels ` documentation for details on discovering and joining other channels. +See the :doc:`Join and leave channels ` documentation for details on discovering, joining, and leaving other channels. Private channels ---------------- -Private channels are for sensitive topics and are only visible to selected team members. Private channels are identified with a **Lock** |lock| icon. In Team Edition, any member of a private channel can add or remove other members from private channels, but in other Mattermost versions these permissions can be restricted to the channel admins and system admins. +Private channels are channels for sensitive topics and are only visible to selected team members. Private channels are identified with a **Lock** |lock| icon. Channel members can choose to leave private channels at any time. -Channel members can choose to leave private channels at any time. +.. note:: -Direct messages ---------------- + - Mattermost Enterprise and Professional customers can restrict channel management to system and channel admins. + - In a Mattermost Team Edition instance, any member of a private channel can add or remove other members from private channels. + +Direct message channels +----------------------- -Direct messages conversations between 2 people. You can start a direct message with people on other teams :ref:`unless the system admin has disabled your ability to do so `. Only members of the conversation can see direct messages and channel heading information, including the last active status of the other user. +Direct message channels are for conversations between 2 people. Only members of the conversation can see direct messages and channel heading information, including the last active status of the other user. -Direct messages increment the numbered badge and trigger a notification unless the direct message is muted, or your notifications are disabled. See the :doc:`notification documentation ` for details on customizing notifications based on your preferences. +You can start a direct message with people on other teams :ref:`unless the system admin has disabled your ability to do so `. + +Direct messages update the numbered badge count and trigger a notification unless the direct message is muted, or your notifications are disabled. See the :doc:`notification documentation ` for details on customizing notifications based on your preferences. .. note:: - From Mattermost v10, when sending a direct message, Mattermost warns you that the recipient's availability is set to :ref:`Do Not Disturb `, and when the recipient's local time is outside of regular business hours (between 10PM and 6AM). This warning displays directly above the message text field. - - - Any message history you have with a deactivated user remains available :ref:`unless your system admin disables your ability to do so `. + - When a Mattermost user is deactivated in the system, your :ref:`direct message channel ` with that user are `archived <#archived-channels>`__ and marked as read-only. An **Archived** icon |file-box| displays next to archived channels. -Group messages --------------- +Group message channels +---------------------- -Group messages are conversations between 3 to 7 people. You can also start a group message with people on other teams when :ref:`unless the system admin has disabled your ability to do so `. Only members of the conversation can see group messages. Group messages always display a new message badge. +Group message channels are for conversations between 3 to 7 people. Only members of the conversation can see group messages. Group messages always display a new message badge. -From Mattermost v9.1, group messages increment the numbered badge and trigger a notification unless the direct message is muted, or your notifications are disabled. You can control how you're notified about group message conversations by going to **Settings > Notifications**. See the :doc:`notification documentation ` to learn more. +Want to have a group conversation with more than 7 people? :doc:`Create a private channel `. Alternatively, from Mattermost v9.1, you can :doc:`convert group messages to a private channel `. .. note:: - - Want to have a group conversation with more than 7 people? You can :doc:`create a private channel `. Alternatively, from Mattermost v9.1, you can :doc:`convert the group message to a private channel `. - - - Any group message history you have with a deactivated user remains available :ref:`unless your system admin disables your ability to do so `. \ No newline at end of file + - You can start a group message with people on other teams when :ref:`unless the system admin has disabled your ability to do so `. + - From Mattermost v9.1, group messages increase the numbered badge count and trigger a notification unless the direct message is muted, or your notifications are disabled. Control how you're notified about group message conversations by going to **Settings > Notifications**. See the :doc:`notification documentation ` to learn more. + - Any group message history you have with a deactivated user remains available :ref:`unless your system admin disables your ability to do so `. + +Archived channels +----------------- + +Archived channels are deactivated public, private, direct message, or group message channels that are no longer used. Archived channels are identified with a **File Box** |file-box| icon. + +:ref:`Archiving a channel ` marks it read-only to prevent new messages from being sent and preserve channel history. You can continue to access archived channels, unless your system admin has :ref:`disabled ` your ability to do so. \ No newline at end of file diff --git a/source/collaborate/collaborate-within-channels.rst b/source/collaborate/collaborate-within-channels.rst index 671448e1022..57ec269328c 100644 --- a/source/collaborate/collaborate-within-channels.rst +++ b/source/collaborate/collaborate-within-channels.rst @@ -4,7 +4,7 @@ Collaborate within channels .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: -Channels are where you connect, collaborate, and communicate with your team about various topics or projects. Use channels to organize conversations across different topics. :doc:`Sending messages `, :doc:`replying to messages `, and :ref:`participating in conversation threads ` are important ways to keep conversations active with your team. +Channels are where you connect, collaborate, and communicate with your team about various topics or projects. Use channels to organize conversations across different topics. as you're :doc:`sending messages `, :doc:`replying to messages `, and :ref:`participating in conversation threads `. You're added to default channels automatically ---------------------------------------------- @@ -15,19 +15,14 @@ Everyone who joins a Mattermost :doc:`workspace ` is aut - **Off-Topic** is great for fun, social, non-work-related conversations. .. note:: - All users are added to the **Off-Topic** and **Town Square** channels automatically. Town Square can't be :ref:`archived ` or :doc:`converted to a private channel `, and users can't :ref:`leave ` the Town Square channel. + Town Square can't be :ref:`archived ` or :doc:`converted to a private channel `, and users can't :ref:`leave ` this default channel. Channel sidebar ---------------- -In the channel sidebar on the left, you'll find all of the the channels you're a member of as well as useful channel management tools. As your channel sidebar fills up with channels you've joined, you can organize your channels into categories based on how you work. See the :doc:`customize your channel sidebar ` documentation for details. +In the channel sidebar on the left, you'll find all of the the channels you're a member of as well as useful channel management tools. See the :doc:`channel types <>` to learn about the types of channels available, how they work, and how to identify them in the channel sidebar. Learn how to create channels by visiting the :doc:`create channels ` documentation. -Mattermost offers four types of channels: **public channels**, **private channels**, **direct messages**, and **group messages**. See the :doc:`Channel Types ` documentation for more information. :doc:`Create channels `, or start a new direct or group message by selecting the **Plus** |plus| icon. - -- **Public** channels are identified with a **Globe** |globe| icon. Anyone on the team can join a public channel. -- **Private** channels are typically used for sensitive topics, and are identified with a **Lock** |lock| icon. You must be invited to private channels by another channel member. -- **Direct messages** are private conversations between two people. -- **Group messages** are private conversations for small groups of up to seven people. For larger group conversations, use a private channel instead. +As your channel sidebar fills up with channels you've joined, you can organize your channels into categories based on how you work. See the :doc:`customize your channel sidebar ` documentation for details. Learn more ---------- @@ -55,7 +50,6 @@ Learn more about collaborating within Mattermost channels: Mark channels as unread Archive and unarchive channels -* :doc:`Channel types ` - Learn more about the types of channels available in Mattermost. * :doc:`Channel naming conventions ` - Learn why channel names are important. * :doc:`Communicate a channel's focus and scope ` - Learn how to communicate a channel's scope and focus. * :doc:`Browse channels ` - Browse all available public channels you can join, and all channels you're a member of. diff --git a/source/conf.py b/source/conf.py index 7032ea357cb..a77f76f49d1 100644 --- a/source/conf.py +++ b/source/conf.py @@ -859,6 +859,10 @@ def setup(_: Sphinx): "https://docs.mattermost.com/integrate/microsoft-teams-interoperability.html", "collaborate/syntax-highlighting.html": "https://docs.mattermost.com/collaborate/format-messages.html#syntax-highlighting", +"collaborate/channel-types.html#direct-messages": + "https://docs.mattermost.com/collaborate/channel-types.html#direct-message-channels", +"collaborate/channel-types.html#group-messages": + "https://docs.mattermost.com/collaborate/channel-types.html#group-message-channels", # Compliance redirects "comply/compliance-reporting-oversight": @@ -3959,6 +3963,9 @@ def setup(_: Sphinx): .. |lock| image:: /images/lock-outline_F0341.svg :alt: Private channels are identified with a Lock icon. :class: theme-icon +.. |file-box| image:: /images/archive-outline_F120E.svg + :alt: Archived channels are identified with a File Box icon. + :class: theme-icon .. |plus| image:: /images/plus_F0415.svg :alt: The Plus icon provides access to channel and direct message functionality. :class: theme-icon diff --git a/source/images/archive-outline_F120E.svg b/source/images/archive-outline_F120E.svg new file mode 100644 index 00000000000..7458d7367fd --- /dev/null +++ b/source/images/archive-outline_F120E.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/preferences/manage-your-desktop-notifications.rst b/source/preferences/manage-your-desktop-notifications.rst index cf971afe473..a944328b47f 100644 --- a/source/preferences/manage-your-desktop-notifications.rst +++ b/source/preferences/manage-your-desktop-notifications.rst @@ -33,7 +33,7 @@ Badge-based notifications Mattermost desktop app icons display the following types of badges: -- A numbered badge for unread :ref:`direct ` :ref:`group ` messages, :doc:`@mentions `, and :doc:`keywords ` you're actively watching. |numbered-badge| +- A numbered badge for unread :ref:`direct ` :ref:`group ` messages, :doc:`@mentions `, and :doc:`keywords ` you're actively watching. |numbered-badge| - A dot badge for unread activity. |dot-badge| Banner alerts diff --git a/source/preferences/manage-your-mobile-notifications.rst b/source/preferences/manage-your-mobile-notifications.rst index 963f6cd64d2..a00c0ce3579 100644 --- a/source/preferences/manage-your-mobile-notifications.rst +++ b/source/preferences/manage-your-mobile-notifications.rst @@ -22,7 +22,7 @@ When you enable notifications, you'll start receiving notifications for all Matt Badge-based notifications ------------------------- -Mattermost mobile app icons display numbered badges for unread :ref:`direct ` and :ref:`group ` messages, and :doc:`@mentions `, :doc:`keywords ` you're actively watching. +Mattermost mobile app icons display numbered badges for unread :ref:`direct ` and :ref:`group ` messages, and :doc:`@mentions `, :doc:`keywords ` you're actively watching. |numbered-badge| diff --git a/source/preferences/manage-your-notifications.rst b/source/preferences/manage-your-notifications.rst index a95f8cfd9bc..ece2b260dd0 100644 --- a/source/preferences/manage-your-notifications.rst +++ b/source/preferences/manage-your-notifications.rst @@ -48,7 +48,7 @@ See the `Default notifications <#default-notifications>`__ table below for detai Default notifications ------------------------ -Mattermost notifies you of new activity, including unread activity, :ref:`direct ` and :ref:`group ` messages, and :doc:`@mentions `, :doc:`keywords ` you're actively watching, :doc:`thread replies `, and unread activity in :doc:`specific channels `. +Mattermost notifies you of new activity, including unread activity, :ref:`direct ` and :ref:`group ` messages, and :doc:`@mentions `, :doc:`keywords ` you're actively watching, :doc:`thread replies `, and unread activity in :doc:`specific channels `. The table below lists the types of notifications you can expect to see and hear in Mattermost. Select your preferred Mattermost clients to learn more about notifications for that client. @@ -77,7 +77,7 @@ The table below lists the types of notifications you can expect to see and hear Email notifications ~~~~~~~~~~~~~~~~~~~~ -By default, Mattermost notifications are sent to you via email for :doc:`@mentions ` and :ref:`direct messages ` when you are :ref:`offline or away ` from Mattermost for more than 5 minutes. +By default, Mattermost notifications are sent to you via email for :doc:`@mentions ` and :ref:`direct messages ` when you are :ref:`offline or away ` from Mattermost for more than 5 minutes. You can disable email notifications by going to **Settings > Notifications > Email notifications** and changing **Immediately** to **Never**. diff --git a/source/preferences/manage-your-web-notifications.rst b/source/preferences/manage-your-web-notifications.rst index 0e0da25029f..a308841fb41 100644 --- a/source/preferences/manage-your-web-notifications.rst +++ b/source/preferences/manage-your-web-notifications.rst @@ -26,7 +26,7 @@ Badge-based notifications In a web browser, Mattermost icons display the following types of badges: -- Numbered badges for unread :ref:`direct ` :ref:`group ` messages, :doc:`@mentions `, and :doc:`keywords ` you're actively watching. +- Numbered badges for unread :ref:`direct ` :ref:`group ` messages, :doc:`@mentions `, and :doc:`keywords ` you're actively watching. A red dot badge means you have unread @mentions, keywords, direct messages, and group messages. |chrome-mention-badge| From 29553782e4342063e1de0c6d721b38984c7144f9 Mon Sep 17 00:00:00 2001 From: "Carrie Warner (Mattermost)" <74422101+cwarnermm@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:21:29 -0500 Subject: [PATCH 2/3] Added guidance on when to reduce the config value (#7649) --- source/configure/experimental-configuration-settings.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/configure/experimental-configuration-settings.rst b/source/configure/experimental-configuration-settings.rst index d757fd26ff0..effbaf9ddd6 100644 --- a/source/configure/experimental-configuration-settings.rst +++ b/source/configure/experimental-configuration-settings.rst @@ -475,6 +475,10 @@ This setting configures the number of milliseconds to wait between fetching user | This feature's ``config.json`` setting is ``"ExperimentalSettings.UsersStatusAndProfileFetchingPollIntervalMilliseconds": 3000`` with numerical input. | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ +.. note:: + + Decrease this configuration setting value to increase how often Mattermost checks for and retrieves updated user profile datails. Reducing this value can be particularly helpful to reduce the likelyhood of usernames being displayed in channels as **Someone** due to outdated or missing data. + .. config:setting:: exp-primaryteam :displayname: Primary team (Experimental) :systemconsole: Experimental > Features From 1c1f5110a903ad0f26e54a6a6fc53a4a63d8d0f8 Mon Sep 17 00:00:00 2001 From: "Carrie Warner (Mattermost)" <74422101+cwarnermm@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:24:09 -0500 Subject: [PATCH 3/3] Simplified the invite people docs page (#7650) * Simplified the invite people docs page * Simplfied guest account docs page --- source/about/faq-product.rst | 4 +- source/collaborate/invite-people.rst | 120 ++++++---------------- source/images/copy-invite-link.png | Bin 0 -> 32487 bytes source/images/invite-email-username.png | Bin 0 -> 33907 bytes source/images/invite-people.png | Bin 0 -> 26527 bytes source/onboard/guest-accounts.rst | 89 ++++------------ source/onboard/ssl-client-certificate.rst | 2 +- 7 files changed, 55 insertions(+), 160 deletions(-) create mode 100644 source/images/copy-invite-link.png create mode 100644 source/images/invite-email-username.png create mode 100644 source/images/invite-people.png diff --git a/source/about/faq-product.rst b/source/about/faq-product.rst index e4ea79523d0..e80b082399c 100644 --- a/source/about/faq-product.rst +++ b/source/about/faq-product.rst @@ -84,9 +84,9 @@ Teams +----------------------------------------------------------------------------------------------+-------------+-------------+-------------+ | :ref:`Create a new team ` | |checkmark| | |checkmark| | | +----------------------------------------------------------------------------------------------+-------------+-------------+-------------+ -| :ref:`Get team invite link ` | |checkmark| | |checkmark| | |checkmark| | +| :doc:`Share an invite link ` | |checkmark| | |checkmark| | |checkmark| | +----------------------------------------------------------------------------------------------+-------------+-------------+-------------+ -| :ref:`Add members to team ` | |checkmark| | |checkmark| | |checkmark| | +| :doc:`Invite people ` | |checkmark| | |checkmark| | |checkmark| | +----------------------------------------------------------------------------------------------+-------------+-------------+-------------+ | :ref:`Manage team members ` | |checkmark| | |checkmark| | | +----------------------------------------------------------------------------------------------+-------------+-------------+-------------+ diff --git a/source/collaborate/invite-people.rst b/source/collaborate/invite-people.rst index 4a23635a276..98765675c56 100644 --- a/source/collaborate/invite-people.rst +++ b/source/collaborate/invite-people.rst @@ -1,114 +1,56 @@ -Add people to your workspace -============================ +Invite people to your workspace +================================ .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: -Getting people set up with a Mattermost account is typically something that system admins do when deploying and configuring the Mattermost instance. However, :ref:`team admins ` can also invite people, including :doc:`guests `, to a Mattermost team via a `direct invite <#send-a-direct-invite>`__, a `public team invite link <#send-a-team-invite-link>`__. +Anyone can invite people to Mattermost teams and channels, unless your system admin has :doc:`disabled ` your ability to do so. -All users can add existing Mattermost users to a Mattermost team or channel, unless the system admin has restricted the ability for you to do so. +1. Select the team name at the top of the channel sidebar, and then select **Invite People**. -- Inviting people to a team sends an email prompting recipients to create a Mattermost account on your Mattermost :doc:`workspace `. -- Adding an existing user to a team or to a channel makes those users team or channel members. + .. image:: ../images/invite-people.png + :alt: Select the team name in the sidebar and select Invite People. -.. tip:: +2. Select **Copy invite link** to share the invitation link with others. - - Add users to a channel by selecting the channel name and selecting **Add Members**. - - Add groups of users to a channel or team by :doc:`creating a custom group ` and :doc:`@mentioning ` the custom group in a channel. - - - Mattermost prompts to you to add any users who aren't already members of that channel to the channel. - - From Mattermost v9.1, you're given the option to add any users who aren't already members of that team to the team, if you have the permissions to do so. - - - A :doc:`guest user ` in Mattermost is a special role that is restricted to only the channels they have been invited to. When :ref:`guest access is enabled ` by the system admin, you can invite guests or users external to the organization, such as vendors or customers. - - - Once guests are invited to the team, you can add them to the channel. - -Send a direct invite -~~~~~~~~~~~~~~~~~~~~ - -Direct invites are invitation emails sent from your team's server directly to the invited person's email address. A link within the invitation directs them to an account creation page. Invitation links sent by email expire after 48 hours and can only be used once. - -.. note:: - - - A system admin can invalidate all active invitation links via **System Console > Authentication > Signup > Invalidate pending email invites**. - - If you can't invite others to the team, contact your system admin for assistance. You may not have sufficent permissions to do so, or :ref:`email invitations may not be enabled `. - -.. tab:: Web/Desktop - - 1. Select the team name at the top of the channel sidebar, then select **Invite People**. - 2. Enter email address recipients for team invitations. - 3. Specify whether the invited users are members or guests. When adding a guest, you must specify the channels the guest can access. - 4. Select **Invite**. - - .. tip:: - - - If someone you want to add to your team already has an account on the server, you can add them to your team without sending an invitation by entering their username instead of an email address. If the person you want to add isn't visible, you can't invite them. - - System admins can view and add team membership to individual users on the user profile page (via **System Console > Users > User Profile**) by selecting **Add Team**. - -.. tab:: Mobile - - 1. Tap the |plus| icon in the top right corner of the screen. - - .. image:: ../images/direct-mobile-invite-options.jpg - :alt: When you select +, you can access more options from the popup window. - :scale: 30 - - 2. Tap the **Invite people to the team** option. - - .. image:: ../images/direct-mobile-invite-by-email.jpg - :alt: You can invite a user using their email address. - :scale: 30 - - .. image:: ../images/direct-mobile-invite-by-name.jpg - :alt: You can invite a user using their name. - :scale: 30 - - 3. Invite people by: - - - Entering the name of a user on another Mattermost team on the same server. - - Entering a user's email address. - - Sharing the invitation link with users directly as a `team invitation link <#send-a-team-invite-link>`__. - -Send a team invite link -~~~~~~~~~~~~~~~~~~~~~~~~ - -You can share a unique URL that takes users to a Mattermost account creation page to join the current team. A team invite link can be used by anyone and doesn't change unless it's re-generated by a system admin or team admin via **Team Settings > General > Invite Code**. For example, the team invite link can be included in a company-wide email to invite all employees to join a Mattermost team. - -.. note:: - - If you're unable to share links, contact your Mattermost system admin for assistance. An :doc:`SSL certificate (or a self-signed certificate) ` may be required for this functioanlity to work. + .. image:: ../images/copy-invite-link.png + :alt: Select Copy Invite Link to share an invitation link with others. .. tab:: Web/Desktop - 1. Select the team name at the top of the channel sidebar, then select **Invite People**. - 2. Select the **Copy Link** button to save the URL to your clipboard and share it with those you want to invite to the team. + - Send an email-based member invitation to people who don't have an account on your Mattermost server by specifying email addresses and selecting **Invite**. + - Add existing workspace users as members of the current team by specifying users by usernames and selecting **Invite**. + - Invite someone temporarily as a guest instead of as a member with limited workspace access. See the :doc:`guest accounts ` documentation to learn more about guest accounts. .. tab:: Mobile - 1. Tap the |plus| icon in the top right corner of the screen. + 1. Tap the |plus| icon in the top right corner of the screen and tap **Invite people to the team**. .. image:: ../images/direct-mobile-invite-options.jpg :alt: When you select +, you can access more options from the popup window. :scale: 30 - 2. Tap the **Invite people to the team** option. + - Send an email-based member invitation to people who don't have an account on your Mattermost server by specifying email addresses and tap **Send**. + - Add existing workspace users as members of the current team by specifying users by usernames and tap **Send**. - .. image:: ../images/direct-mobile-invite.jpg - :alt: You can also invite a user by selecting Share link button. - :scale: 30 + .. image:: ../images/direct-mobile-invite-by-email.jpg + :alt: You can invite a user using their email address. + :scale: 30 - 3. Tap **Share link**. + .. image:: ../images/direct-mobile-invite-by-name.jpg + :alt: You can invite a user using their name. + :scale: 30 - .. image:: ../images/direct-mobile-invite-by-share-link.jpg - :alt: You can invite a user by sharing the invite link directly with them. - :scale: 30 - - 4. Share the link with others. - -.. note:: + - Tap **Share link** to share an invitation link with others via apps on your mobile device. - Users on the same Mattermost server can view the username and full name of other users so they can communicate with them directly, via direct messages, regardless of team membership. + .. image:: ../images/direct-mobile-invite-by-share-link.jpg + :alt: You can invite a user by sharing the invite link directly with them. + :scale: 30 .. note:: - - You can't invite someone to a Mattermost team, as a **member**, if that user is already a member of that team. - - You can't invite someone to a Mattermost team, as a **guest**, if that user already has a Mattermost account. Invite them to a team as a **member** instead. \ No newline at end of file + + - Can't share invitation links? Contact your Mattermost system admin for assistance. An :doc:`SSL certificate (or a self-signed certificate) ` may be required for link-based invitations to work. + - An invite link can be used by anyone and doesn’t change unless it’s re-generated by a system admin or team admin via **Team Settings > General > Invite Code**. + - Your system admin must :ref:`enable email invitations ` and configure :ref:`email ` for Mattermost to send email-based invitations. + - Invitation links sent by email expire after 48 hours and can only be used once. + - Your system admin can :ref:`cancel all email invitations ` that haven't yet been accepted within the System Console. \ No newline at end of file diff --git a/source/images/copy-invite-link.png b/source/images/copy-invite-link.png new file mode 100644 index 0000000000000000000000000000000000000000..147f2275d6ea9026a116a9c814f16f4c1413b1b0 GIT binary patch literal 32487 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 literal 0 HcmV?d00001 diff --git a/source/images/invite-people.png b/source/images/invite-people.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd960167d449337bd06bd11c537b857caf90bf0 GIT binary patch literal 26527 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 available in legacy Mattermost Enterprise Edition E10 or E20

-Guest accounts are a way to collaborate with individuals, such as vendors and contractors, outside of your organization by controlling their access to channels and team members. For example, guest accounts can be used to collaborate with customers on a support issue or work on a website project with resources from an external design firm. +Guest accounts in Mattermost are a way to collaborate with individuals, such as vendors and contractors, outside of your organization by controlling their access to channels and team members. For example, guest accounts can be used to collaborate with customers on a support issue or work on a website project with resources from an external design firm. + +.. important:: + + - A system admin must :ref:`enable guest access ` before guests can be invited. + - Mattermost Enterprise and Professional customers can :doc:`control who can invite guests ` in their organization. By default, only system admins can invite guests. + - Guest accounts count as a paid user in your Mattermost :doc:`workspace `. However, guests aren't automatically added to the default **Town-square** and **Off-topic** channels when they log in. You must :doc:`invite guests
` to individual teams and channels manually. Deactivating a guest account reduces your licensed seat count. + - You'll identify guest users in Mattermost based on their **GUEST** badge next to their name and profile picture. Channels that contain guests also display the message ***This channel has guests** in the channel header. + +Guests account limits +--------------------- Guests can: @@ -28,22 +38,6 @@ Guests cannot: - Create direct messages or group messages with members who aren’t within the same channel - Invite people -.. important:: - - For billing purposes, activated guest accounts do consume a licensed seat, which is returned when the guest account is deactivated.This means that guest accounts count as a paid user in your Mattermost :doc:`workspace `. However, guests aren't automatically added to the default **Town-square** and **Off-topic** channels when they log in. Guests must be invited/added to these channels manually. - -Enable guest accounts ----------------------- - -1. Go to **System Console > Authentication > Guest Access**. -2. Set **Enable Guest Access** to **true**. -3. (Optional) Specify the **Whitelisted Guest Domains** that are acceptable for guest access. This allows the system admin to set a list of approved guest domains. -4. (Optional) Set **Enforce Multi-factor Authentication** to **true**. If you're enforcing MFA for your users, you can optionally choose to also enforce MFA for your guest users. - -.. note:: - - If you have team domain restrictions, you also need to add your guest domain in **System Console > User Management > Teams**. Select a team, then enable **Only specific email domains can join this team**. - Guest authentication --------------------- @@ -53,28 +47,8 @@ Before you proceed, ensure that the authentication method you wish to use is cor Converting a member user to a guest won't change the channels they are in. However, they will be restricted from discovering additional channels and are unable to direct message/group message users outside of the channels they are in. They can be added to channels by system admins and other roles that have the correct permissions to invite guests. -Invite guests to the Mattermost server via email -------------------------------------------------- - -Guests can be invited into one or more Mattermost channels within a team by system admins and other roles that have the correct permission to invite guests. A guest can be invited into channels on multiple teams. - -.. note:: - - Guest invitations are revoked after 48 hours per the member email invitation process. If your guest has not accepted the invitation within that period, please follow the steps below to resend an invitation to the guest. - -To invite guests into one or more Mattermost channels: - -1. Go to **System Console > Signup > Enable Email Invitations** to enable email invites. -2. Select your team's name at the top of the channel sidebar and choose **Invite People**. -3. Select **Invite Guests**. -4. Enter the guest’s email address. -5. Choose the channels the guest can join (excluding managed teams). -6. (Optional) Enter a custom message. - -.. image:: ../images/Guest_Invite_Screen.png - Configure AD/LDAP authentication ---------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When enabled, the **Guest Filter** in Mattermost identifies external users whose AD/LDAP role is ``guest`` and who are invited to join your Mattermost server. These users will have the ``guest`` role applied immediately upon first login instead of the default member user role. This eliminates having to manually assign the role in the System Console. @@ -88,7 +62,7 @@ If a Mattermost guest user has the ``guest`` role removed in the AD/LDAP system, When a guest logs in without having any channels assigned to their account, they're advised to talk to a Mattermost system admin. Configure SAML 2.0 authentication ----------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When enabled, the **Guest Attribute** in Mattermost identifies external users whose SAML assertion is guest and who are invited to join your Mattermost server. These users will have the ``guest`` role applied immediately upon first login instead of the default member user role. This eliminates having to manually assign the role in the System Console. @@ -101,39 +75,18 @@ If a Mattermost guest user has the guest role removed in the SAML system, the sy When a guest logs in without having any channels assigned to their account, they're advised to talk to a Mattermost system admin. -Guest permission settings -------------------------- - -In Mattermost Enterprise and Professional, you can control which users can invite guests. By default, only the system admins can invite guests. - -There are :doc:`additional permissions ` in Mattermost Enterprise that can be adjusted under **System Console > User Management > Permissions > System Scheme** to control a guest’s ability to: - - - Edit posts - - Delete posts - - Post reactions - - Create private channels with members they are allowed to collaborate with - -Guest identification ---------------------- - -Guests are identified with a **Guest** badge unless your system admin has :ref:`disabled guest badges `. When visible, this badge is visible in various places in the Mattermost interface, such as on a guest’s profile and next to their name on user lists, including @mentions. Additionally, when badges are visible, and guests are added to a channel, a system message notifies other channel members that the added user is a guest. - -Additionally, when guest badges are visible, channels containing guests display the message: *This channel has guests*. - -.. image:: ../images/Guest_Badges.png - Manage guests -------------- -Add guests to additional channels -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +See the following documentation to learn more about managing guests: -Users with the permissions to invite guests can **Invite Guests** to additional channels. A system message will be posted in the channels to let other members know a guest user has been added. +- :doc:`invite people
` to teams and channels +- :ref:`manage channel members ` +- :ref:`remove people from teams ` -Remove guests from channels and teams -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. tip:: -Guests can be removed from a channel through **Manage members**, or by using the ``/kick`` or ``/remove`` slash commands. + You can also use the ``/kick`` or ``/remove`` slash commands to remove a guest from a channel. When a guest has been removed from all channels within a team, and if they belong to other teams, they will default into the last channel on the last team they have accessed. If they are removed from all channels on all teams, they'll be taken to a screen letting them know they have no channels assigned. @@ -151,7 +104,7 @@ System admins can also promote a guest to member by updating their role in **Sys You can filter the list in **System Console > User Management > Users** to view all guests in the system. Disable guest accounts ------------------------ +~~~~~~~~~~~~~~~~~~~~~~ To disable the guest accounts feature, go to **System Console > Authentication > Guest Access**, then set **Enable Guest Access** to **False**. To deactivate individual guest accounts, go to **System Console > User Management > Users**. Select a user, then select **Deactivate**. You can re-activate individual guest accounts by selecting **Activate**. @@ -162,7 +115,7 @@ To disable the guest accounts feature, go to **System Console > Authentication > You can disable individual guest accounts in **System Console > User Management** via **Manage Members**. When a single guest account is disabled or the feature is disabled, the guest will be marked as ``deactivated``, be logged out of Mattermost, and all their sessions will be revoked. Reinstate guest accounts -------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~ When guest access is re-enabled for AD/LDAP, the ``guest`` filter is reinstated. diff --git a/source/onboard/ssl-client-certificate.rst b/source/onboard/ssl-client-certificate.rst index 9f9a52ff201..6e954f326de 100644 --- a/source/onboard/ssl-client-certificate.rst +++ b/source/onboard/ssl-client-certificate.rst @@ -12,7 +12,7 @@ For the purposes of this guide, the Mattermost server domain name is ``example.m .. important:: - Generating the client certificates in this section is optional if you have already generated them before. - - We strongly recommend configuring an SSL certificate (or a self-signed certificate) for security, privacy, compliance, as well as to avoid browser limitations that can prevent Mattermost product features from working that copy data using the user's local clipboard, including :ref:`sharing message links ` and :ref:`inviting new members to teams `. + - We strongly recommend configuring an SSL certificate (or a self-signed certificate) for security, privacy, compliance, as well as to avoid browser limitations that can prevent Mattermost product features from working that copy data using the user's local clipboard, including :ref:`sharing message links ` and :doc:`inviting people `. Set up mutual TLS authentication for the web app ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~