Skip to content
Snippets Groups Projects
Commit c891915c authored by hg's avatar hg
Browse files

OO-3278: Delete competences of the user when the user is deleted

parent 73656e44
No related branches found
No related tags found
No related merge requests found
...@@ -304,6 +304,14 @@ public class TaxonomyCompetenceDAO { ...@@ -304,6 +304,14 @@ public class TaxonomyCompetenceDAO {
.setParameter("levelKey", level.getKey()) .setParameter("levelKey", level.getKey())
.executeUpdate(); .executeUpdate();
} }
public int deleteCompetences(Identity identity) {
String q = "delete from ctaxonomycompetence as competence where competence.identity.key=:identityKey";
return dbInstance.getCurrentEntityManager()
.createQuery(q)
.setParameter("identityKey", identity.getKey())
.executeUpdate();
}
public void deleteCompetence(TaxonomyCompetence competence) { public void deleteCompetence(TaxonomyCompetence competence) {
TaxonomyCompetence reloadedCompetence = dbInstance.getCurrentEntityManager() TaxonomyCompetence reloadedCompetence = dbInstance.getCurrentEntityManager()
...@@ -322,4 +330,5 @@ public class TaxonomyCompetenceDAO { ...@@ -322,4 +330,5 @@ public class TaxonomyCompetenceDAO {
} }
return typeList; return typeList;
} }
} }
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
*/ */
package org.olat.modules.taxonomy.manager; package org.olat.modules.taxonomy.manager;
import java.io.File;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
...@@ -44,6 +45,7 @@ import org.olat.modules.taxonomy.TaxonomyRef; ...@@ -44,6 +45,7 @@ import org.olat.modules.taxonomy.TaxonomyRef;
import org.olat.modules.taxonomy.TaxonomyService; import org.olat.modules.taxonomy.TaxonomyService;
import org.olat.modules.taxonomy.model.TaxonomyInfos; import org.olat.modules.taxonomy.model.TaxonomyInfos;
import org.olat.modules.taxonomy.model.TaxonomyLevelSearchParameters; import org.olat.modules.taxonomy.model.TaxonomyLevelSearchParameters;
import org.olat.user.UserDataDeletable;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -54,7 +56,7 @@ import org.springframework.stereotype.Service; ...@@ -54,7 +56,7 @@ import org.springframework.stereotype.Service;
* *
*/ */
@Service @Service
public class TaxonomyServiceImpl implements TaxonomyService { public class TaxonomyServiceImpl implements TaxonomyService, UserDataDeletable {
@Autowired @Autowired
private TaxonomyDAO taxonomyDao; private TaxonomyDAO taxonomyDao;
...@@ -351,4 +353,9 @@ public class TaxonomyServiceImpl implements TaxonomyService { ...@@ -351,4 +353,9 @@ public class TaxonomyServiceImpl implements TaxonomyService {
public String toAuditXml(TaxonomyCompetence competence) { public String toAuditXml(TaxonomyCompetence competence) {
return taxonomyCompetenceAuditLogDao.toXml(competence); return taxonomyCompetenceAuditLogDao.toXml(competence);
} }
@Override
public void deleteUserData(Identity identity, String newDeletedUserName, File archivePath) {
taxonomyCompetenceDao.deleteCompetences(identity);
}
} }
...@@ -306,4 +306,28 @@ public class TaxonomyCompetenceDAOTest extends OlatTestCase { ...@@ -306,4 +306,28 @@ public class TaxonomyCompetenceDAOTest extends OlatTestCase {
boolean hasTeach = taxonomyCompetenceDao.hasCompetenceByTaxonomy(taxonomy, id, new Date(), TaxonomyCompetenceTypes.teach); boolean hasTeach = taxonomyCompetenceDao.hasCompetenceByTaxonomy(taxonomy, id, new Date(), TaxonomyCompetenceTypes.teach);
Assert.assertFalse(hasTeach); Assert.assertFalse(hasTeach);
} }
@Test
public void deleteCompetencesByIdentity() {
Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("competent-6");
Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("competent-6");
Taxonomy taxonomy1 = taxonomyDao.createTaxonomy("ID-30", "Competence", "", null);
Taxonomy taxonomy2 = taxonomyDao.createTaxonomy("ID-31", "Competence", "", null);
TaxonomyLevel levelA = taxonomyLevelDao.createTaxonomyLevel("ID-Level-A", "Competence level", "A competence", null, null, null, null, taxonomy1);
TaxonomyLevel levelB = taxonomyLevelDao.createTaxonomyLevel("ID-Level-B", "Competence level", "B competence", null, null, null, null, taxonomy1);
TaxonomyLevel levelC = taxonomyLevelDao.createTaxonomyLevel("ID-Level-C", "Competence level", "C competence", null, null, null, null, taxonomy2);
taxonomyCompetenceDao.createTaxonomyCompetence(TaxonomyCompetenceTypes.target, levelA, id1, null);
taxonomyCompetenceDao.createTaxonomyCompetence(TaxonomyCompetenceTypes.have, levelB, id1, null);
taxonomyCompetenceDao.createTaxonomyCompetence(TaxonomyCompetenceTypes.target, levelC, id1, null);
taxonomyCompetenceDao.createTaxonomyCompetence(TaxonomyCompetenceTypes.target, levelA, id2, null);
dbInstance.commitAndCloseSession();
int deleteCompetences = taxonomyCompetenceDao.deleteCompetences(id1);
Assert.assertEquals(3, deleteCompetences);
List<TaxonomyCompetence> competencesID1 = taxonomyCompetenceDao.getCompetences(id1);
Assert.assertEquals(0, competencesID1.size());
List<TaxonomyCompetence> competencesID2 = taxonomyCompetenceDao.getCompetences(id2);
Assert.assertEquals(1, competencesID2.size());
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment