commit b5f9fe4d3bb57cada7fa01371efc3978a5937173
parent 013d4c28b2e06dc654b7f2a1f21b56b1c8a7838d
Author: Daniel GarcĂa <dani-garcia@users.noreply.github.com>
Date: Sat, 7 Nov 2020 23:03:02 +0100
Fix #1206
Diffstat:
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/db/models/collection.rs b/src/db/models/collection.rs
@@ -356,13 +356,20 @@ impl CollectionUser {
}}
}
- pub fn delete_all_by_user(user_uuid: &str, conn: &DbConn) -> EmptyResult {
- User::update_uuid_revision(&user_uuid, conn);
+ pub fn delete_all_by_user_and_org(user_uuid: &str, org_uuid: &str, conn: &DbConn) -> EmptyResult {
+ let collectionusers = Self::find_by_organization_and_user_uuid(org_uuid, user_uuid, conn);
db_run! { conn: {
- diesel::delete(users_collections::table.filter(users_collections::user_uuid.eq(user_uuid)))
- .execute(conn)
- .map_res("Error removing user from collections")
+ for user in collectionusers {
+ diesel::delete(users_collections::table.filter(
+ users_collections::user_uuid.eq(user_uuid)
+ .and(users_collections::collection_uuid.eq(user.collection_uuid))
+
+ ))
+ .execute(conn)
+ .map_res("Error removing user from collections")?;
+ }
+ Ok(())
}}
}
}
diff --git a/src/db/models/organization.rs b/src/db/models/organization.rs
@@ -389,7 +389,7 @@ impl UserOrganization {
pub fn delete(self, conn: &DbConn) -> EmptyResult {
User::update_uuid_revision(&self.user_uuid, conn);
- CollectionUser::delete_all_by_user(&self.user_uuid, &conn)?;
+ CollectionUser::delete_all_by_user_and_org(&self.user_uuid, &self.org_uuid, &conn)?;
db_run! { conn: {
diesel::delete(users_organizations::table.filter(users_organizations::uuid.eq(self.uuid)))