Skip to content

Commit 13a5161

Browse files
Fix: Campaign deletion permission issue
Fixes the permission issue preventing campaign deletion, including cascade deletion of associated data.
1 parent e85ab7b commit 13a5161

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/hooks/useCampaigns.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,20 @@ export const useCampaigns = () => {
9595
};
9696

9797
const deleteCampaign = async (id: string) => {
98+
if (!user) {
99+
throw new Error('User not authenticated');
100+
}
101+
98102
console.log('🗑️ Début suppression campagne:', id);
103+
console.log('🗑️ User connecté:', user.uid);
99104

100105
try {
101106
// 1. Supprimer tous les affiliés de cette campagne
102107
console.log('🗑️ Suppression des affiliés...');
103108
const affiliatesQuery = query(
104109
collection(db, 'affiliates'),
105-
where('campaignId', '==', id)
110+
where('campaignId', '==', id),
111+
where('userId', '==', user.uid) // Ajout de l'userId pour respecter les règles
106112
);
107113
const affiliatesSnapshot = await getDocs(affiliatesQuery);
108114
console.log('🗑️ Affiliés trouvés:', affiliatesSnapshot.size);
@@ -112,6 +118,7 @@ export const useCampaigns = () => {
112118
return deleteDoc(doc.ref);
113119
});
114120
await Promise.all(deleteAffiliatesPromises);
121+
console.log('✅ Affiliés supprimés avec succès');
115122

116123
// 2. Supprimer tous les clics de cette campagne
117124
console.log('🗑️ Suppression des clics...');
@@ -127,6 +134,7 @@ export const useCampaigns = () => {
127134
return deleteDoc(doc.ref);
128135
});
129136
await Promise.all(deleteClicksPromises);
137+
console.log('✅ Clics supprimés avec succès');
130138

131139
// 3. Supprimer tous les liens courts de cette campagne
132140
console.log('🗑️ Suppression des liens courts...');
@@ -142,6 +150,7 @@ export const useCampaigns = () => {
142150
return deleteDoc(doc.ref);
143151
});
144152
await Promise.all(deleteShortLinksPromises);
153+
console.log('✅ Liens courts supprimés avec succès');
145154

146155
// 4. Supprimer toutes les conversions de cette campagne
147156
console.log('🗑️ Suppression des conversions...');
@@ -157,6 +166,7 @@ export const useCampaigns = () => {
157166
return deleteDoc(doc.ref);
158167
});
159168
await Promise.all(deleteConversionsPromises);
169+
console.log('✅ Conversions supprimées avec succès');
160170

161171
// 5. Finalement, supprimer la campagne elle-même
162172
console.log('🗑️ Suppression de la campagne...');
@@ -167,6 +177,11 @@ export const useCampaigns = () => {
167177

168178
} catch (error) {
169179
console.error('❌ Erreur lors de la suppression en cascade:', error);
180+
console.error('❌ Détails de l\'erreur:', {
181+
message: error.message,
182+
code: error.code,
183+
stack: error.stack
184+
});
170185
throw error;
171186
}
172187
};

0 commit comments

Comments
 (0)