mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +00:00
channels: Include unsubscribed channels in move selectors.
For channel dropdowns in move messages and move topic modals only subscribed channels are included. To fix it, a new function is made to include subscribed and unsubscribed channels to which the acting user has content access. Each group is sorted respectively with subscribed channels followed by unsubscribed channels. To avoid unsubscribed channels from getting included in the compose box dropdown and saved snippets UI, a separate function get_stream_for_move_messages_widget is made. This function is used to include unsubscribed channels in move selector dropdown only. Fixes #33670.
This commit is contained in:
@@ -139,6 +139,9 @@ test("basics", () => {
|
||||
is_muted: true,
|
||||
invite_only: true,
|
||||
history_public_to_subscribers: true,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
};
|
||||
const social = {
|
||||
subscribed: true,
|
||||
@@ -148,6 +151,9 @@ test("basics", () => {
|
||||
is_muted: false,
|
||||
invite_only: true,
|
||||
history_public_to_subscribers: false,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
};
|
||||
const test = {
|
||||
subscribed: true,
|
||||
@@ -156,6 +162,9 @@ test("basics", () => {
|
||||
stream_id: 3,
|
||||
is_muted: true,
|
||||
invite_only: false,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
};
|
||||
const web_public_stream = {
|
||||
subscribed: false,
|
||||
@@ -166,6 +175,9 @@ test("basics", () => {
|
||||
invite_only: false,
|
||||
history_public_to_subscribers: true,
|
||||
is_web_public: true,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
};
|
||||
stream_data.add_sub(denmark);
|
||||
stream_data.add_sub(social);
|
||||
@@ -249,6 +261,14 @@ test("basics", () => {
|
||||
const stream_starting_with_25 = {
|
||||
name: "25-or-6-to-4",
|
||||
stream_id: 400,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
subscribed: false,
|
||||
is_muted: false,
|
||||
invite_only: false,
|
||||
history_public_to_subscribers: true,
|
||||
is_web_public: false,
|
||||
};
|
||||
stream_data.add_sub(stream_starting_with_25);
|
||||
assert.equal(stream_data.slug_to_stream_id("25-or-6-to-4"), 400);
|
||||
@@ -263,6 +283,9 @@ test("basics", () => {
|
||||
const stream_99 = {
|
||||
name: "99",
|
||||
stream_id: 401,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
};
|
||||
stream_data.add_sub(stream_99);
|
||||
assert.equal(stream_data.slug_to_stream_id("99"), 401);
|
||||
@@ -272,6 +295,9 @@ test("basics", () => {
|
||||
const stream_id_99 = {
|
||||
name: "Some Stream",
|
||||
stream_id: 99,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
};
|
||||
stream_data.add_sub(stream_id_99);
|
||||
assert.equal(stream_data.slug_to_stream_id("99"), 99);
|
||||
@@ -293,6 +319,9 @@ test("basics", () => {
|
||||
name: "social",
|
||||
stream_id: 2,
|
||||
subscribed: true,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 2,
|
||||
},
|
||||
@@ -305,11 +334,103 @@ test("basics", () => {
|
||||
name: "test",
|
||||
stream_id: 3,
|
||||
subscribed: true,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 3,
|
||||
},
|
||||
]);
|
||||
|
||||
assert.deepEqual(stream_data.get_streams_for_move_messages_widget(), [
|
||||
{
|
||||
name: "social",
|
||||
stream: {
|
||||
color: "red",
|
||||
history_public_to_subscribers: false,
|
||||
invite_only: true,
|
||||
is_muted: false,
|
||||
name: "social",
|
||||
stream_id: 2,
|
||||
subscribed: true,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 2,
|
||||
},
|
||||
{
|
||||
name: "test",
|
||||
stream: {
|
||||
color: "yellow",
|
||||
invite_only: false,
|
||||
is_muted: true,
|
||||
name: "test",
|
||||
stream_id: 3,
|
||||
subscribed: true,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 3,
|
||||
},
|
||||
{
|
||||
name: "25-or-6-to-4",
|
||||
stream: {
|
||||
history_public_to_subscribers: true,
|
||||
invite_only: false,
|
||||
is_muted: false,
|
||||
is_web_public: false,
|
||||
name: "25-or-6-to-4",
|
||||
stream_id: 400,
|
||||
subscribed: false,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 400,
|
||||
},
|
||||
{
|
||||
name: "web_public_stream",
|
||||
stream: {
|
||||
name: "web_public_stream",
|
||||
stream_id: 4,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
color: "yellow",
|
||||
history_public_to_subscribers: true,
|
||||
invite_only: false,
|
||||
is_muted: false,
|
||||
is_web_public: true,
|
||||
subscribed: false,
|
||||
},
|
||||
unique_id: 4,
|
||||
},
|
||||
{
|
||||
name: "99",
|
||||
stream: {
|
||||
name: "99",
|
||||
stream_id: 401,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 401,
|
||||
},
|
||||
{
|
||||
name: "Some Stream",
|
||||
stream: {
|
||||
name: "Some Stream",
|
||||
stream_id: 99,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 99,
|
||||
},
|
||||
]);
|
||||
|
||||
test.is_archived = true;
|
||||
assert.deepEqual(stream_data.get_options_for_dropdown_widget(), [
|
||||
{
|
||||
@@ -322,10 +443,77 @@ test("basics", () => {
|
||||
name: "social",
|
||||
stream_id: 2,
|
||||
subscribed: true,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 2,
|
||||
},
|
||||
]);
|
||||
|
||||
social.invite_only = true;
|
||||
social.can_subscribe_group = me_group.id;
|
||||
social.subscribed = false;
|
||||
|
||||
stream_starting_with_25.invite_only = true;
|
||||
|
||||
assert.deepEqual(stream_data.get_streams_for_move_messages_widget(), [
|
||||
{
|
||||
name: "social",
|
||||
stream: {
|
||||
color: "red",
|
||||
history_public_to_subscribers: false,
|
||||
invite_only: true,
|
||||
is_muted: false,
|
||||
name: "social",
|
||||
stream_id: 2,
|
||||
subscribed: false,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: me_group.id,
|
||||
},
|
||||
unique_id: 2,
|
||||
},
|
||||
{
|
||||
name: "web_public_stream",
|
||||
stream: {
|
||||
color: "yellow",
|
||||
history_public_to_subscribers: true,
|
||||
invite_only: false,
|
||||
is_muted: false,
|
||||
is_web_public: true,
|
||||
name: "web_public_stream",
|
||||
stream_id: 4,
|
||||
subscribed: false,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 4,
|
||||
},
|
||||
{
|
||||
name: "99",
|
||||
stream: {
|
||||
name: "99",
|
||||
stream_id: 401,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 401,
|
||||
},
|
||||
{
|
||||
name: "Some Stream",
|
||||
stream: {
|
||||
name: "Some Stream",
|
||||
stream_id: 99,
|
||||
can_add_subscribers_group: admins_group.id,
|
||||
can_administer_channel_group: admins_group.id,
|
||||
can_subscribe_group: admins_group.id,
|
||||
},
|
||||
unique_id: 99,
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
test("get_streams_for_user", ({override}) => {
|
||||
|
||||
Reference in New Issue
Block a user