You've already forked AstralRinth
forked from didirus/AstralRinth
Fix revocation of invites, allow for /user_id/teams to be useful
This commit is contained in:
@@ -235,6 +235,16 @@ impl Version {
|
|||||||
.execute(exec)
|
.execute(exec)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
sqlx::query!(
|
||||||
|
"
|
||||||
|
DELETE FROM downloads
|
||||||
|
WHERE downloads.version_id = $1
|
||||||
|
",
|
||||||
|
id as VersionId,
|
||||||
|
)
|
||||||
|
.execute(exec)
|
||||||
|
.await?;
|
||||||
|
|
||||||
use futures::TryStreamExt;
|
use futures::TryStreamExt;
|
||||||
|
|
||||||
let files = sqlx::query!(
|
let files = sqlx::query!(
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ impl Default for Permissions {
|
|||||||
/// A member of a team
|
/// A member of a team
|
||||||
#[derive(Serialize, Deserialize, Clone)]
|
#[derive(Serialize, Deserialize, Clone)]
|
||||||
pub struct TeamMember {
|
pub struct TeamMember {
|
||||||
|
/// The ID of the team this team member is a member of
|
||||||
|
pub team_id: TeamId,
|
||||||
/// The ID of the user associated with the member
|
/// The ID of the user associated with the member
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
/// The role of the user in the team
|
/// The role of the user in the team
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ pub async fn team_members_get(
|
|||||||
let team_members: Vec<crate::models::teams::TeamMember> = members_data
|
let team_members: Vec<crate::models::teams::TeamMember> = members_data
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|data| crate::models::teams::TeamMember {
|
.map(|data| crate::models::teams::TeamMember {
|
||||||
|
team_id: id,
|
||||||
user_id: data.user_id.into(),
|
user_id: data.user_id.into(),
|
||||||
role: data.role,
|
role: data.role,
|
||||||
permissions: Some(data.permissions),
|
permissions: Some(data.permissions),
|
||||||
@@ -44,6 +45,7 @@ pub async fn team_members_get(
|
|||||||
if team_member.accepted {
|
if team_member.accepted {
|
||||||
team_members.push(
|
team_members.push(
|
||||||
crate::models::teams::TeamMember {
|
crate::models::teams::TeamMember {
|
||||||
|
team_id: id,
|
||||||
user_id: team_member.user_id.into(),
|
user_id: team_member.user_id.into(),
|
||||||
role: team_member.role,
|
role: team_member.role,
|
||||||
permissions: None,
|
permissions: None,
|
||||||
@@ -298,7 +300,7 @@ pub async fn remove_team_member(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let delete_member = TeamMember::get_from_user_id(id, user_id, &**pool).await?;
|
let delete_member = TeamMember::get_from_user_id_pending(id, user_id, &**pool).await?;
|
||||||
|
|
||||||
if let Some(delete_member) = delete_member {
|
if let Some(delete_member) = delete_member {
|
||||||
if delete_member.role == crate::models::teams::OWNER_ROLE {
|
if delete_member.role == crate::models::teams::OWNER_ROLE {
|
||||||
|
|||||||
@@ -175,6 +175,7 @@ pub async fn teams(
|
|||||||
let team_members: Vec<crate::models::teams::TeamMember> = results
|
let team_members: Vec<crate::models::teams::TeamMember> = results
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|data| crate::models::teams::TeamMember {
|
.map(|data| crate::models::teams::TeamMember {
|
||||||
|
team_id: data.team_id.into(),
|
||||||
user_id: data.user_id.into(),
|
user_id: data.user_id.into(),
|
||||||
role: data.role,
|
role: data.role,
|
||||||
permissions: if same_user {
|
permissions: if same_user {
|
||||||
|
|||||||
Reference in New Issue
Block a user