Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • arsnova/arsnova-backend
  • pcvl72/arsnova-backend
  • tksl38/arsnova-backend
3 results
Show changes
Commits on Source (9)
# Changelog # Changelog
## 2.7
Features:
* Account deletion: Users can now delete their own accounts. Admins can delete
any user account. Account deletion removes sessions and their contents created
by the user and anonymizes data created through participation in other
sessions.
* Auto-deletion: Accounts can be deleted automatically after a configurable
period of inactivity.
* OpenID Connect: OIDC is now supported for authentication. Configuration
discovery support is required.
Improvements:
* Public Session Pool: Added API endpoint to clone a session from the pool.
Previously, cloning had to be performed by the client.
Bug fixes:
* Import/Export: The handling of session features during import has been fixed.
The raw exported data can now be imported without further manipulation by the
client.
**This version is brought to you by:**
Project management: Klaus Quibeldey-Cirkel
Lead programming: Daniel Gerhardt, Tom "tekay" Käsler
Sponsoring: [AG QLS](https://www.thm.de/site/en/hochschule/service/ag-qls.html),
[HMWK](https://wissenschaft.hessen.de/wissenschaft/it-neue-medien/kompetenznetz-e-learning-hessen)
## 2.6.3 ## 2.6.3
Bug fixes: Bug fixes:
* The backend now correctly responds with 4xx error codes instead of 500 to less * The backend now correctly responds with 4xx error codes instead of 500 to less
......
...@@ -341,7 +341,8 @@ public class AuthenticationController extends AbstractController { ...@@ -341,7 +341,8 @@ public class AuthenticationController extends AbstractController {
"cas", "cas",
casTitle, casTitle,
MessageFormat.format(dialogUrl, "cas"), MessageFormat.format(dialogUrl, "cas"),
casRoles casRoles,
casImage
); );
sdesc.setOrder(casOrder); sdesc.setOrder(casOrder);
services.add(sdesc); services.add(sdesc);
...@@ -349,10 +350,11 @@ public class AuthenticationController extends AbstractController { ...@@ -349,10 +350,11 @@ public class AuthenticationController extends AbstractController {
if (oidcEnabled) { if (oidcEnabled) {
ServiceDescription sdesc = new ServiceDescription( ServiceDescription sdesc = new ServiceDescription(
"oidc", "oidc",
oidcTitle, oidcTitle,
MessageFormat.format(dialogUrl, "oidc"), MessageFormat.format(dialogUrl, "oidc"),
oidcRoles oidcRoles,
oidcImage
); );
sdesc.setOrder(oidcOrder); sdesc.setOrder(oidcOrder);
services.add(sdesc); services.add(sdesc);
......
...@@ -214,7 +214,7 @@ connector.password=test ...@@ -214,7 +214,7 @@ connector.password=test
# Enable MathJax to allow the use of Math formulas written in TeX syntax in # Enable MathJax to allow the use of Math formulas written in TeX syntax in
# text fields. # text fields.
features.mathjax.enabled=true features.mathjax.enabled=true
features.mathjax.src=//cdn.mathjax.org/mathjax/2.4-latest/MathJax.js features.mathjax.src=//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js
# The following features are considered experimental because they have not been # The following features are considered experimental because they have not been
# tested in a production environment over a longer time frame and/or their # tested in a production environment over a longer time frame and/or their
...@@ -329,8 +329,8 @@ pp.session-levels.en = General Education,\ ...@@ -329,8 +329,8 @@ pp.session-levels.en = General Education,\
# Tracking # Tracking
################################################################################ ################################################################################
# It is possible to use an external tracking software with ARSnova. Currently # It is possible to use an external tracking software with ARSnova. Currently
# Piwik is the only supported tracking provider. # Matomo is the only supported tracking provider.
# #
tracking.provider=piwik tracking.provider=matomo
tracking.tracker-url= tracking.tracker-url=
tracking.site-id= tracking.site-id=
...@@ -24,7 +24,9 @@ import de.thm.arsnova.websocket.ArsnovaSocketioServerImpl; ...@@ -24,7 +24,9 @@ import de.thm.arsnova.websocket.ArsnovaSocketioServerImpl;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.CustomScopeConfigurer; import org.springframework.beans.factory.config.CustomScopeConfigurer;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.concurrent.ConcurrentMapCacheManager;
import org.springframework.context.annotation.AdviceMode; import org.springframework.context.annotation.AdviceMode;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
...@@ -64,6 +66,8 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc; ...@@ -64,6 +66,8 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
public class TestAppConfig { public class TestAppConfig {
private static int testPortOffset = 0; private static int testPortOffset = 0;
private static CacheManager cacheManagerSingleton;
@Value("${socketio.bind-address}") private String socketAddress; @Value("${socketio.bind-address}") private String socketAddress;
@Value("${socketio.port}") private int socketPort; @Value("${socketio.port}") private int socketPort;
...@@ -98,4 +102,12 @@ public class TestAppConfig { ...@@ -98,4 +102,12 @@ public class TestAppConfig {
@Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) { @Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) {
return new StubUserService(repository, mailSender, jackson2HttpMessageConverter); return new StubUserService(repository, mailSender, jackson2HttpMessageConverter);
} }
@Bean
public CacheManager cacheManager() {
if (cacheManagerSingleton == null) {
cacheManagerSingleton = new ConcurrentMapCacheManager();
}
return cacheManagerSingleton;
}
} }
...@@ -26,6 +26,8 @@ import org.springframework.context.annotation.Profile; ...@@ -26,6 +26,8 @@ import org.springframework.context.annotation.Profile;
@Profile("test") @Profile("test")
@Configuration @Configuration
public class TestPersistanceConfig { public class TestPersistanceConfig {
private static RoomRepository mockRoomRepositorySingleton;
@Bean @Bean
public LogEntryRepository logEntryRepository() { public LogEntryRepository logEntryRepository() {
return Mockito.mock(LogEntryRepository.class); return Mockito.mock(LogEntryRepository.class);
...@@ -38,7 +40,10 @@ public class TestPersistanceConfig { ...@@ -38,7 +40,10 @@ public class TestPersistanceConfig {
@Bean @Bean
public RoomRepository sessionRepository() { public RoomRepository sessionRepository() {
return Mockito.mock(RoomRepository.class); if (mockRoomRepositorySingleton == null) {
mockRoomRepositorySingleton = Mockito.mock(RoomRepository.class);
}
return mockRoomRepositorySingleton;
} }
@Bean @Bean
......
...@@ -214,7 +214,7 @@ connector.password=test ...@@ -214,7 +214,7 @@ connector.password=test
# Enable MathJax to allow the use of Math formulas written in TeX syntax in # Enable MathJax to allow the use of Math formulas written in TeX syntax in
# text fields. # text fields.
features.mathjax.enabled=true features.mathjax.enabled=true
features.mathjax.src=//cdn.mathjax.org/mathjax/2.4-latest/MathJax.js features.mathjax.src=//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js
# The following features are considered experimental because they have not been # The following features are considered experimental because they have not been
# tested in a production environment over a longer time frame and/or their # tested in a production environment over a longer time frame and/or their
...@@ -329,8 +329,8 @@ pp.session-levels.en = General Education,\ ...@@ -329,8 +329,8 @@ pp.session-levels.en = General Education,\
# Tracking # Tracking
################################################################################ ################################################################################
# It is possible to use an external tracking software with ARSnova. Currently # It is possible to use an external tracking software with ARSnova. Currently
# Piwik is the only supported tracking provider. # Matomo is the only supported tracking provider.
# #
tracking.provider=piwik tracking.provider=matomo
tracking.tracker-url= tracking.tracker-url=
tracking.site-id= tracking.site-id=