Skip to content
Snippets Groups Projects
Commit 2c872d14 authored by srosse's avatar srosse
Browse files

Merge OpenOLAT 12.4 to OpenOLAT default branch with ec5782971def010957a4b02e054c0d82067d4285

parents a36119ed 662d2c3a
No related branches found
No related tags found
No related merge requests found
...@@ -63,12 +63,12 @@ import org.olat.core.util.mail.MailBundle; ...@@ -63,12 +63,12 @@ import org.olat.core.util.mail.MailBundle;
import org.olat.core.util.mail.MailManager; import org.olat.core.util.mail.MailManager;
import org.olat.core.util.mail.MailTemplate; import org.olat.core.util.mail.MailTemplate;
import org.olat.core.util.mail.MailerResult; import org.olat.core.util.mail.MailerResult;
import org.olat.core.util.session.UserSessionManager;
import org.olat.properties.Property; import org.olat.properties.Property;
import org.olat.properties.PropertyManager; import org.olat.properties.PropertyManager;
import org.olat.registration.RegistrationManager; import org.olat.registration.RegistrationManager;
import org.olat.registration.TemporaryKey; import org.olat.registration.TemporaryKey;
import org.olat.repository.RepositoryDeletionModule; import org.olat.repository.RepositoryDeletionModule;
import org.olat.resource.accesscontrol.provider.auto.AutoAccessManager;
import org.olat.user.UserDataDeletable; import org.olat.user.UserDataDeletable;
import org.olat.user.UserManager; import org.olat.user.UserManager;
import org.olat.user.propertyhandlers.UserPropertyHandler; import org.olat.user.propertyhandlers.UserPropertyHandler;
...@@ -111,7 +111,7 @@ public class UserDeletionManager extends BasicManager { ...@@ -111,7 +111,7 @@ public class UserDeletionManager extends BasicManager {
@Autowired @Autowired
private MailManager mailManager; private MailManager mailManager;
@Autowired @Autowired
private AutoAccessManager autoAccessManager; private UserSessionManager userSessionManager;
@Autowired @Autowired
private AuthenticationHistoryDAO suthenticationHistoryDao; private AuthenticationHistoryDAO suthenticationHistoryDao;
@Autowired @Autowired
...@@ -269,6 +269,9 @@ public class UserDeletionManager extends BasicManager { ...@@ -269,6 +269,9 @@ public class UserDeletionManager extends BasicManager {
*/ */
public void deleteIdentity(Identity identity) { public void deleteIdentity(Identity identity) {
logInfo("Start deleteIdentity for identity=" + identity); logInfo("Start deleteIdentity for identity=" + identity);
//logout
userSessionManager.signOffAndClearAll(identity);
String newName = getBackupStringWithDate(identity.getName()); String newName = getBackupStringWithDate(identity.getName());
......
...@@ -28,11 +28,13 @@ import java.util.Set; ...@@ -28,11 +28,13 @@ import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.olat.basesecurity.IdentityRef;
import org.olat.core.commons.persistence.DB; import org.olat.core.commons.persistence.DB;
import org.olat.core.gui.control.Disposable; import org.olat.core.gui.control.Disposable;
import org.olat.core.gui.control.Event; import org.olat.core.gui.control.Event;
...@@ -328,6 +330,21 @@ public class UserSessionManager implements GenericEventListener { ...@@ -328,6 +330,21 @@ public class UserSessionManager implements GenericEventListener {
} }
} }
/**
* The method will logout the specified user from all of its
* session, UI, WebDAV, REST...
* @param identity
*/
public void signOffAndClearAll(IdentityRef identity) {
List<UserSession> userSessions = authUserSessions.stream()
.filter(userSession -> userSession.getIdentity() != null && userSession.getIdentity().getKey().equals(identity.getKey()))
.collect(Collectors.toList());
for(UserSession userSession:userSessions) {
internSignOffAndClear(userSession);
dbInstance.commit();
}
}
/** /**
* called to make sure the current authenticated user (if there is one at all) * called to make sure the current authenticated user (if there is one at all)
* is cleared and signed off. This method is firing the SignOnOffEvent Multiuserevent. * is cleared and signed off. This method is firing the SignOnOffEvent Multiuserevent.
......
...@@ -107,6 +107,11 @@ public class SharedItemsOverviewController extends BasicController implements Ac ...@@ -107,6 +107,11 @@ public class SharedItemsOverviewController extends BasicController implements Ac
List<ContextEntry> subEntries = entries.subList(1, entries.size()); List<ContextEntry> subEntries = entries.subList(1, entries.size());
doOpenBinders(ureq).activate(ureq, subEntries, entries.get(0).getTransientState()); doOpenBinders(ureq).activate(ureq, subEntries, entries.get(0).getTransientState());
segmentView.select(bindersLink); segmentView.select(bindersLink);
} else if("Binder".equalsIgnoreCase(name)) {
doOpenBinders(ureq).activate(ureq, entries, state);
segmentView.select(bindersLink);
} else {
activateCold(ureq);
} }
} }
} }
......
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