fix: remove VoiceChannel channel type
fix: calculate user overwrites correctly fix: dont include personal info in livekit user metadata fix: revoke video permissons on denied publish fix: add video to default permissions
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
use revolt_database::{
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference}, voice::{delete_voice_state, get_channel_node, get_voice_channel_members, is_in_voice_channel, VoiceClient}, Channel, Database, PartialChannel, User, AMQP
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference},
|
||||
voice::{
|
||||
delete_voice_state, get_channel_node, get_voice_channel_members, is_in_voice_channel,
|
||||
VoiceClient,
|
||||
},
|
||||
Channel, Database, PartialChannel, User, AMQP,
|
||||
};
|
||||
use revolt_models::v0;
|
||||
use revolt_permissions::{calculate_channel_permissions, ChannelPermission};
|
||||
@@ -29,16 +34,18 @@ pub async fn delete(
|
||||
#[allow(deprecated)]
|
||||
match &channel {
|
||||
Channel::SavedMessages { .. } => Err(create_error!(NoEffect))?,
|
||||
Channel::DirectMessage { .. } => channel
|
||||
.update(
|
||||
db,
|
||||
PartialChannel {
|
||||
active: Some(false),
|
||||
..Default::default()
|
||||
},
|
||||
vec![],
|
||||
)
|
||||
.await?,
|
||||
Channel::DirectMessage { .. } => {
|
||||
channel
|
||||
.update(
|
||||
db,
|
||||
PartialChannel {
|
||||
active: Some(false),
|
||||
..Default::default()
|
||||
},
|
||||
vec![],
|
||||
)
|
||||
.await?
|
||||
}
|
||||
Channel::Group { .. } => {
|
||||
channel
|
||||
.remove_user_from_group(
|
||||
@@ -53,11 +60,13 @@ pub async fn delete(
|
||||
if is_in_voice_channel(&user.id, channel.id()).await? {
|
||||
let node = get_channel_node(channel.id()).await?.unwrap();
|
||||
|
||||
voice_client.remove_user(&node, &user.id, channel.id()).await?;
|
||||
voice_client
|
||||
.remove_user(&node, &user.id, channel.id())
|
||||
.await?;
|
||||
delete_voice_state(channel.id(), None, &user.id).await?;
|
||||
};
|
||||
},
|
||||
Channel::TextChannel { .. } | Channel::VoiceChannel { .. } => {
|
||||
}
|
||||
Channel::TextChannel { .. } => {
|
||||
permissions.throw_if_lacking_channel_permission(ChannelPermission::ManageChannel)?;
|
||||
channel.delete(db).await?;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use revolt_database::{util::reference::Reference, voice::{delete_voice_state, get_channel_node, is_in_voice_channel, raise_if_in_voice, VoiceClient}, Channel, Database, User, AMQP};
|
||||
use revolt_database::{util::reference::Reference, voice::{delete_voice_state, get_channel_node, is_in_voice_channel, VoiceClient}, Channel, Database, User, AMQP};
|
||||
use revolt_permissions::ChannelPermission;
|
||||
use revolt_result::{create_error, Result};
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use revolt_database::{
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference},
|
||||
Channel, Database, Message, MessageFilter, MessageQuery, MessageTimePeriod, User,
|
||||
Database, Message, MessageFilter, MessageQuery, MessageTimePeriod, User,
|
||||
};
|
||||
use revolt_models::v0::{self, MessageSort};
|
||||
use revolt_permissions::{calculate_channel_permissions, ChannelPermission};
|
||||
@@ -65,13 +65,7 @@ pub async fn query(
|
||||
},
|
||||
&user,
|
||||
include_users,
|
||||
#[allow(deprecated)]
|
||||
match channel {
|
||||
Channel::TextChannel { server, .. } | Channel::VoiceChannel { server, .. } => {
|
||||
Some(server)
|
||||
}
|
||||
_ => None,
|
||||
},
|
||||
channel.server(),
|
||||
)
|
||||
.await
|
||||
.map(Json)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use revolt_database::{
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference},
|
||||
Channel, Database, Message, MessageFilter, MessageQuery, MessageTimePeriod, User,
|
||||
Database, Message, MessageFilter, MessageQuery, MessageTimePeriod, User,
|
||||
};
|
||||
use revolt_models::v0;
|
||||
use revolt_permissions::{calculate_channel_permissions, ChannelPermission};
|
||||
@@ -31,7 +31,7 @@ pub async fn search(
|
||||
})?;
|
||||
|
||||
if options.query.is_some() && options.pinned.is_some() {
|
||||
return Err(create_error!(InvalidOperation))
|
||||
return Err(create_error!(InvalidOperation));
|
||||
}
|
||||
|
||||
let channel = target.as_channel(db).await?;
|
||||
@@ -69,13 +69,7 @@ pub async fn search(
|
||||
},
|
||||
&user,
|
||||
include_users,
|
||||
#[allow(deprecated)]
|
||||
match channel {
|
||||
Channel::TextChannel { server, .. } | Channel::VoiceChannel { server, .. } => {
|
||||
Some(server)
|
||||
}
|
||||
_ => None,
|
||||
},
|
||||
channel.server(),
|
||||
)
|
||||
.await
|
||||
.map(Json)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use revolt_database::{
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference}, voice::{sync_voice_permissions, VoiceClient}, Channel, Database, User
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference}, voice::{sync_voice_permissions, VoiceClient}, Database, User
|
||||
};
|
||||
use revolt_models::v0;
|
||||
use revolt_permissions::{calculate_channel_permissions, ChannelPermission, Override};
|
||||
@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
|
||||
///
|
||||
/// Sets permissions for the specified role in this channel.
|
||||
///
|
||||
/// Channel must be a `TextChannel` or `VoiceChannel`.
|
||||
/// Channel must be a `TextChannel`.
|
||||
#[openapi(tag = "Channel Permissions")]
|
||||
#[put("/<target>/permissions/<role_id>", data = "<data>", rank = 2)]
|
||||
pub async fn set_role_permissions(
|
||||
|
||||
@@ -10,7 +10,7 @@ use rocket::{serde::json::Json, State};
|
||||
///
|
||||
/// Sets permissions for the default role in this channel.
|
||||
///
|
||||
/// Channel must be a `Group`, `TextChannel` or `VoiceChannel`.
|
||||
/// Channel must be a `Group` or `TextChannel`.
|
||||
#[openapi(tag = "Channel Permissions")]
|
||||
#[put("/<target>/permissions/default", data = "<data>", rank = 1)]
|
||||
pub async fn set_default_channel_permissions(
|
||||
|
||||
@@ -93,7 +93,7 @@ pub async fn call(
|
||||
}
|
||||
|
||||
let token = voice_client
|
||||
.create_token(&node, &user, current_permissions, &channel)
|
||||
.create_token(&node, db, &user, current_permissions, &channel)
|
||||
.await?;
|
||||
let room = voice_client.create_room(&node, &channel).await?;
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ pub async fn edit(
|
||||
|
||||
// Fetch server and member
|
||||
let mut server = server.as_server(db).await?;
|
||||
let target_user = member.as_user(&db).await?;
|
||||
let target_user = member.as_user(db).await?;
|
||||
let mut member = member.as_member(db, &server.id).await?;
|
||||
|
||||
// Fetch our currrent permissions
|
||||
@@ -208,7 +208,7 @@ pub async fn edit(
|
||||
.create_room(&new_node, &new_voice_channel)
|
||||
.await?;
|
||||
let token = voice_client
|
||||
.create_token(&new_node, &target_user, permissions, &new_voice_channel)
|
||||
.create_token(&new_node, db, &target_user, permissions, &new_voice_channel)
|
||||
.await?;
|
||||
|
||||
voice_client
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use revolt_database::{
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference}, voice::{sync_voice_permissions, VoiceClient}, Database, PartialServer, Server, User
|
||||
util::{permissions::DatabasePermissionQuery, reference::Reference}, voice::{sync_voice_permissions, VoiceClient}, Database, PartialServer, User
|
||||
};
|
||||
use revolt_models::v0;
|
||||
use revolt_permissions::{
|
||||
|
||||
Reference in New Issue
Block a user