+
+
+
diff --git a/src/lib/components/admin/Users/Groups/GroupItem.svelte b/src/lib/components/admin/Users/Groups/GroupItem.svelte
index 8d4a761529..944e824d1c 100644
--- a/src/lib/components/admin/Users/Groups/GroupItem.svelte
+++ b/src/lib/components/admin/Users/Groups/GroupItem.svelte
@@ -9,7 +9,6 @@
import Pencil from '$lib/components/icons/Pencil.svelte';
import User from '$lib/components/icons/User.svelte';
- import UserCircleSolid from '$lib/components/icons/UserCircleSolid.svelte';
import EditGroupModal from './EditGroupModal.svelte';
export let group = {
@@ -70,9 +69,6 @@
}}
>
-
-
-
{group.name}
diff --git a/src/lib/components/channel/ChannelInfoModal.svelte b/src/lib/components/channel/ChannelInfoModal.svelte
index 44094f7801..cd1ee35243 100644
--- a/src/lib/components/channel/ChannelInfoModal.svelte
+++ b/src/lib/components/channel/ChannelInfoModal.svelte
@@ -15,13 +15,32 @@
import AddMembersModal from './ChannelInfoModal/AddMembersModal.svelte';
export let show = false;
- export let channel = null;
+ export let channel: any = null;
export let onUpdate = () => {};
let showAddMembersModal = false;
const submitHandler = async () => {};
+ const hasPublicReadGrant = (grants: any) =>
+ Array.isArray(grants) &&
+ grants.some(
+ (grant) =>
+ grant?.principal_type === 'user' &&
+ grant?.principal_id === '*' &&
+ grant?.permission === 'read'
+ );
+
+ const isPublicChannel = (channel: any): boolean => {
+ if (channel?.type === 'group') {
+ if (typeof channel?.is_private === 'boolean') {
+ return !channel.is_private;
+ }
+ return hasPublicReadGrant(channel?.access_grants);
+ }
+ return hasPublicReadGrant(channel?.access_grants);
+ };
+
const removeMemberHandler = async (userId) => {
const res = await removeMembersById(localStorage.token, channel.id, {
user_ids: [userId]
@@ -62,7 +81,7 @@
{:else}
- {#if channel?.type === 'group' ? !channel?.is_private : channel?.access_control === null}
+ {#if isPublicChannel(channel)}
{:else}
diff --git a/src/lib/components/channel/MessageInput/MentionList.svelte b/src/lib/components/channel/MessageInput/MentionList.svelte
index 4272a5650d..7daf692042 100644
--- a/src/lib/components/channel/MessageInput/MentionList.svelte
+++ b/src/lib/components/channel/MessageInput/MentionList.svelte
@@ -129,6 +129,25 @@
onDestroy(() => {
window.removeEventListener('keydown', keydownListener);
});
+
+ const hasPublicReadGrant = (grants: any) =>
+ Array.isArray(grants) &&
+ grants.some(
+ (grant) =>
+ grant?.principal_type === 'user' &&
+ grant?.principal_id === '*' &&
+ grant?.permission === 'read'
+ );
+
+ const isPublicChannel = (channel: any): boolean => {
+ if (channel?.type === 'group') {
+ if (typeof channel?.is_private === 'boolean') {
+ return !channel.is_private;
+ }
+ return hasPublicReadGrant(channel?.access_grants);
+ }
+ return hasPublicReadGrant(channel?.access_grants);
+ };
{#if filteredItems.length}
@@ -165,7 +184,7 @@
>
{#if item.type === 'channel'}
- {#if item?.data?.access_control === null}
+ {#if isPublicChannel(item?.data)}
{:else}
diff --git a/src/lib/components/channel/Messages/Message/UserStatusLinkPreview.svelte b/src/lib/components/channel/Messages/Message/UserStatusLinkPreview.svelte
index 74b2029266..749ca8df10 100644
--- a/src/lib/components/channel/Messages/Message/UserStatusLinkPreview.svelte
+++ b/src/lib/components/channel/Messages/Message/UserStatusLinkPreview.svelte
@@ -3,7 +3,7 @@
import { LinkPreview } from 'bits-ui';
const i18n = getContext('i18n');
- import { getUserById } from '$lib/apis/users';
+ import { getUserInfoById } from '$lib/apis/users';
import UserStatus from './UserStatus.svelte';
@@ -16,7 +16,7 @@
let user = null;
onMount(async () => {
if (id) {
- user = await getUserById(localStorage.token, id).catch((error) => {
+ user = await getUserInfoById(localStorage.token, id).catch((error) => {
console.error('Error fetching user by ID:', error);
return null;
});
diff --git a/src/lib/components/channel/Navbar.svelte b/src/lib/components/channel/Navbar.svelte
index 6b5d7c97c2..b02193b465 100644
--- a/src/lib/components/channel/Navbar.svelte
+++ b/src/lib/components/channel/Navbar.svelte
@@ -26,6 +26,25 @@
let showChannelPinnedMessagesModal = false;
let showChannelInfoModal = false;
+ const hasPublicReadGrant = (grants: any) =>
+ Array.isArray(grants) &&
+ grants.some(
+ (grant) =>
+ grant?.principal_type === 'user' &&
+ grant?.principal_id === '*' &&
+ grant?.permission === 'read'
+ );
+
+ const isPublicChannel = (channel: any): boolean => {
+ if (channel?.type === 'group') {
+ if (typeof channel?.is_private === 'boolean') {
+ return !channel.is_private;
+ }
+ return hasPublicReadGrant(channel?.access_grants);
+ }
+ return hasPublicReadGrant(channel?.access_grants);
+ };
+
export let channel;
export let onPin = (messageId, pinned) => {};
@@ -112,7 +131,7 @@
{/if}
{:else}
- {#if channel?.type === 'group' ? !channel?.is_private : channel?.access_control === null}
+ {#if isPublicChannel(channel)}
{:else}
diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte
index 5914e7afce..1f16526c4b 100644
--- a/src/lib/components/chat/MessageInput.svelte
+++ b/src/lib/components/chat/MessageInput.svelte
@@ -151,7 +151,7 @@
return {
...file,
user: undefined,
- access_control: undefined
+ access_grants: undefined
};
}),
selectedToolIds,
@@ -1634,7 +1634,7 @@