diff --git a/server/api/api.go b/server/api/api.go index dcf1c7405..66bf4da04 100644 --- a/server/api/api.go +++ b/server/api/api.go @@ -20,6 +20,7 @@ import ( "github.com/mattermost/focalboard/server/services/permissions" "github.com/mattermost/focalboard/server/utils" + mmModel "github.com/mattermost/mattermost-server/v6/model" "github.com/mattermost/mattermost-server/v6/shared/mlog" ) @@ -2389,8 +2390,10 @@ func (a *API) handleGetChannel(w http.ResponseWriter, r *http.Request) { ) if channel.TeamId != teamID { - a.errorResponse(w, r.URL.Path, http.StatusNotFound, "", nil) - return + if channel.Type != mmModel.ChannelTypeDirect && channel.Type != mmModel.ChannelTypeGroup { + a.errorResponse(w, r.URL.Path, http.StatusNotFound, "", nil) + return + } } data, err := json.Marshal(channel) diff --git a/webapp/src/components/shareBoard/channelPermissionsRow.tsx b/webapp/src/components/shareBoard/channelPermissionsRow.tsx index 0ae301c64..c8a77680c 100644 --- a/webapp/src/components/shareBoard/channelPermissionsRow.tsx +++ b/webapp/src/components/shareBoard/channelPermissionsRow.tsx @@ -10,6 +10,7 @@ import Menu from '../../widgets/menu' import {createBoard} from '../../blocks/board' import {useAppSelector} from '../../store/hooks' import {getCurrentBoard} from '../../store/boards' +import {getBoardUsers} from '../../store/users' import {Channel} from '../../store/channels' import {Utils} from '../../utils' import mutator from '../../mutator' @@ -24,9 +25,14 @@ import ConfirmationDialogBox from "../confirmationDialogBox" import BoardPermissionGate from '../permissions/boardPermissionGate' -const ChannelPermissionsRow = (): JSX.Element => { +type Props = { + teammateNameDisplay: string, +} + +const ChannelPermissionsRow = (props: Props): JSX.Element => { const intl = useIntl() const board = useAppSelector(getCurrentBoard) + const users = useAppSelector(getBoardUsers) const [linkedChannel, setLinkedChannel] = useState(null) const [showUnlinkChannelConfirmation, setShowUnlinkChannelConfirmation] = useState(false) @@ -72,6 +78,17 @@ const ChannelPermissionsRow = (): JSX.Element => { /> ) + const getDMName = () => { + const userIds = linkedChannel.name.split("__") + if (userIds.length !== 2) { + Utils.logError('Invalid DM channel name, unable to get user ids') + } + let result = Utils.getUserDisplayName(users[userIds[0]], props.teammateNameDisplay) + result += ", " + result += Utils.getUserDisplayName(users[userIds[1]], props.teammateNameDisplay) + return result + } + return (
{showUnlinkChannelConfirmation && confirmationDialog} @@ -79,8 +96,17 @@ const ChannelPermissionsRow = (): JSX.Element => { {linkedChannel.type === 'P' && } {linkedChannel.type === 'O' && } + {linkedChannel.type === 'D' && } + {linkedChannel.type === 'G' && } -
{linkedChannel.display_name}
+ {linkedChannel.type === 'D' && ( +
+ + {getDMName()} + +
+ )} + {linkedChannel.type !== 'D' &&
{linkedChannel.display_name}
}
diff --git a/webapp/src/components/shareBoard/shareBoard.tsx b/webapp/src/components/shareBoard/shareBoard.tsx index ba06d5bc2..f896c58a6 100644 --- a/webapp/src/components/shareBoard/shareBoard.tsx +++ b/webapp/src/components/shareBoard/shareBoard.tsx @@ -395,7 +395,7 @@ export default function ShareBoardDialog(props: Props): JSX.Element {
- + {boardUsers.map((user) => { if (!members[user.id]) {