diff --git a/src/main/java/org/olat/commons/calendar/restapi/EventVO.java b/src/main/java/org/olat/commons/calendar/restapi/EventVO.java
index 3f3786a86edd968f4e6a63f684e3f550162c6d5f..dcff953f347bd2a1c8eb0d011166277732def2ee 100644
--- a/src/main/java/org/olat/commons/calendar/restapi/EventVO.java
+++ b/src/main/java/org/olat/commons/calendar/restapi/EventVO.java
@@ -28,6 +28,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.commons.calendar.CalendarManagedFlag;
 import org.olat.commons.calendar.model.KalendarEvent;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlRootElement(name = "eventVO")
 public class EventVO {
@@ -45,6 +47,16 @@ public class EventVO {
 	
 	private String liveStreamUrl;
 	
+	@Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { 
+			"all",
+			"details(all)",
+			"subject(details, all)",
+			"description(details, all)",
+			"location(details, all)",
+			"dates(details, all)",
+			"classification(all)",
+			"links(all)",
+			"liveStreamUrl(details, all)"})
 	private String managedFlags;
 	private String externalId;
 	private String externalSource;
diff --git a/src/main/java/org/olat/core/commons/services/webdav/manager/WebDAVManagerImpl.java b/src/main/java/org/olat/core/commons/services/webdav/manager/WebDAVManagerImpl.java
index ab09b626a91f909f0ca2f903f00cd50215f6d24d..3684b16119c61ab5694e57d0aca1ae421605ae96 100644
--- a/src/main/java/org/olat/core/commons/services/webdav/manager/WebDAVManagerImpl.java
+++ b/src/main/java/org/olat/core/commons/services/webdav/manager/WebDAVManagerImpl.java
@@ -208,6 +208,8 @@ public class WebDAVManagerImpl implements WebDAVManager, InitializingBean {
 					DigestAuthentication digestAuth = DigestAuthentication.parse(authHeader);
 					cacheKey = digestAuth.getUsername();
 					usess = timedSessionCache.get(new CacheKey(remoteAddr, digestAuth.getUsername()));
+
+					log.info("Digest authentication: {}", getHttpSessionId(request));
 					if (usess == null || !usess.isAuthenticated()) {
 						usess = handleDigestAuthentication(digestAuth, request);
 					}
@@ -231,6 +233,15 @@ public class WebDAVManagerImpl implements WebDAVManager, InitializingBean {
 				}
 				return usess;
 			}
+		} else {
+			String sessionId = getHttpSessionId(request);
+			if(sessionId != null) {
+				String remoteAddr = request.getRemoteAddr();
+				UserSession usess = timedSessionCache.get(new CacheKey(remoteAddr, sessionId));
+				if (usess != null && usess.isAuthenticated()) {
+					return usess;
+				}
+			}
 		}
 
 		// If the user was not validated or the browser does not know about the realm yet, fail with a
diff --git a/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementTypeVO.java b/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementTypeVO.java
index 43833d3afef22563d10018b01dd3e75b495aa445..9e73c82f7eb27ec292f05c34a3a45bce1d271024 100644
--- a/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementTypeVO.java
+++ b/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementTypeVO.java
@@ -26,6 +26,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.modules.curriculum.CurriculumElementType;
 import org.olat.modules.curriculum.CurriculumElementTypeManagedFlag;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 16 mai 2018<br>
@@ -42,6 +44,18 @@ public class CurriculumElementTypeVO {
 	private String description;
 	private String cssClass;
 	private String externalId;
+	@Schema(required = true, description = "Action to be performed on managedFlagsString", allowableValues = { 
+			"all",
+			 "identifier(all)",
+			 "displayName(all)",
+			 "cssClass(all)",
+			 "description(all)",
+			 "externalId(all)",
+			 "calendars(all)",
+			 "lectures(all)",
+			 "subTypes(all)",
+			 "copy(all)",
+			 "delete(all)"})
 	private String managedFlagsString;
 	private String calendars;
 	
diff --git a/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementVO.java b/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementVO.java
index 70815f5975ae780649b38078b92a01df207b10d1..78297502a27196d9a6825b423f60844fbd52fcb3 100644
--- a/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementVO.java
+++ b/src/main/java/org/olat/modules/curriculum/restapi/CurriculumElementVO.java
@@ -28,6 +28,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.modules.curriculum.CurriculumElement;
 import org.olat.modules.curriculum.CurriculumElementManagedFlag;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 15 mai 2018<br>
@@ -48,6 +50,22 @@ public class CurriculumElementVO {
 	private Date endDate;
 	
 	private String externalId;
+	@Schema(required = true, description = "Action to be performed on managedFlagsString", allowableValues = { 
+			"all",
+			 "identifier(all)",
+			 "displayName(all)",
+			 "description(all)",
+			 "externalId(all)",
+			 "status(all)",
+			 "dates(all)",
+			 "type(all)",
+			 "calendars(all)",
+			 "lectures(all)",
+			 "members(all)",
+			 "resources(all)",
+			 "move(all)",
+			 "addChildren(all)",
+			 "delete(all)"})
 	private String managedFlagsString;
 	private String calendars;
 
diff --git a/src/main/java/org/olat/modules/curriculum/restapi/CurriculumVO.java b/src/main/java/org/olat/modules/curriculum/restapi/CurriculumVO.java
index 850a86b19c1335c4d1037b2063e266e663c7ba5a..d603f386125f1d81668522cd34d960e8b0154012 100644
--- a/src/main/java/org/olat/modules/curriculum/restapi/CurriculumVO.java
+++ b/src/main/java/org/olat/modules/curriculum/restapi/CurriculumVO.java
@@ -26,6 +26,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.modules.curriculum.Curriculum;
 import org.olat.modules.curriculum.CurriculumManagedFlag;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 15 mai 2018<br>
@@ -45,6 +47,14 @@ public class CurriculumVO {
 	private String degree;
 	
 	private String externalId;
+	@Schema(required = true, description = "Action to be performed on managedFlagsString", allowableValues = { 
+			"all",
+			 "identifier(all)",
+			 "displayName(all)",
+			 "description(all)",
+			 "externalId(all)",
+			 "delete(all)",
+			 "members(all)"})
 	private String managedFlagsString;
 	
 	private Long organisationKey;
diff --git a/src/main/java/org/olat/modules/lecture/restapi/LectureBlockVO.java b/src/main/java/org/olat/modules/lecture/restapi/LectureBlockVO.java
index 09705be5472069b7f44a74b783f262d09ce518ad..7a45ee764aa2f4d009af3f78e04ea8bcade7e7f3 100644
--- a/src/main/java/org/olat/modules/lecture/restapi/LectureBlockVO.java
+++ b/src/main/java/org/olat/modules/lecture/restapi/LectureBlockVO.java
@@ -28,6 +28,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.modules.lecture.LectureBlock;
 import org.olat.modules.lecture.LectureBlockRef;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 8 juin 2017<br>
@@ -40,6 +42,21 @@ public class LectureBlockVO implements LectureBlockRef {
 	
 	private Long key;
 	private String externalId;
+	
+	@Schema(required = true, description = "Action to be performed on managedFlagsString", allowableValues = { 
+			"all",
+		      "details(all) //details tab",
+		        "title(details,all)",
+		        "compulsory(details,all)",
+		        "plannedLectures(details,all)",
+		        "teachers(details,all)",
+		        "groups(details,all)",
+		        "description(details,all)",
+		        "preparation(details,all)",
+		        "location(details,all)",
+		        "dates(details,all)",
+		      "settings(all)",
+		      "delete(all)"})
 	private String managedFlagsString;
 	
 	private String title;
diff --git a/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelTypeVO.java b/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelTypeVO.java
index 309a19175dd6345bda52cf552ee8dbed5708512c..f0d02cb156edda3906673a056ff10dd897e576c2 100644
--- a/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelTypeVO.java
+++ b/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelTypeVO.java
@@ -25,6 +25,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.olat.modules.taxonomy.TaxonomyLevelType;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 5 Oct 2017<br>
@@ -41,6 +43,18 @@ public class TaxonomyLevelTypeVO {
 	private String description;
 	private String externalId;
 
+	@Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { 
+			"all",
+			 "identifier(all)",
+			 "displayName(all)",
+			 "description(all)",
+			 "cssClass(all)",
+			 "externalId(all)",
+			 "visibility(all)",
+			 "subTypes(all)",
+			 "librarySettings(all)",
+			 "copy(all)",
+			 "delete(all)"})
 	private String managedFlags;
 	
 	private String cssClass;
diff --git a/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelVO.java b/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelVO.java
index 5743016d5f74f7f62e1db207f5d75fe057c10cfe..5ce38e319c2662471f17ab17cc7e9cb82cde249d 100644
--- a/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelVO.java
+++ b/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyLevelVO.java
@@ -25,6 +25,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.olat.modules.taxonomy.TaxonomyLevel;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 5 Oct 2017<br>
@@ -44,6 +46,21 @@ public class TaxonomyLevelVO {
 	private Long parentKey;
 	private Long typeKey;
 	
+	@Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { 
+			"all",
+			 "identifier(all)",
+			 "displayName(all)",
+			 "description(all)",
+			 "externalId(all)",
+			 "sortOrder(all)",
+			 "type(all)",
+			 "competences(all)",
+			   "manageCompetence(competences, all)",
+			   "teachCompetence(competences, all)",
+			   "haveCompetence(competences, all)",
+			   "targetCompetence(competences, all)",
+			 "move(all)",
+			 "delete(all)"})
 	private String managedFlags;
 	
 	public TaxonomyLevelVO() {
diff --git a/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyVO.java b/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyVO.java
index 413cc9de9c4b9fea089cea47a8128d2aa80e1b1a..330d2e82ca85504ee01ff067e9d53d298b7c7c0c 100644
--- a/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyVO.java
+++ b/src/main/java/org/olat/modules/taxonomy/restapi/TaxonomyVO.java
@@ -25,6 +25,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.olat.modules.taxonomy.Taxonomy;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 5 Oct 2017<br>
@@ -41,6 +43,13 @@ public class TaxonomyVO {
 	private String description;
 	private String externalId;
 	
+	@Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { 
+			"all",
+			"identifier(all)",
+			 "displayName(all)",
+			 "description(all)",
+			 "externalId(all)",
+			 "librarySettings(all)"})
 	private String managedFlags;
 	
 	public TaxonomyVO() {
diff --git a/src/main/java/org/olat/repository/RepositoryEntryManagedFlag.java b/src/main/java/org/olat/repository/RepositoryEntryManagedFlag.java
index 8335710926ba27c30817ab8dc0f1419f9e01d74b..ed8c81b706a588585061f08d0dece9b066490b4b 100644
--- a/src/main/java/org/olat/repository/RepositoryEntryManagedFlag.java
+++ b/src/main/java/org/olat/repository/RepositoryEntryManagedFlag.java
@@ -21,8 +21,8 @@ package org.olat.repository;
 
 import java.util.Arrays;
 
-import org.olat.core.CoreSpringFactory;
 import org.apache.logging.log4j.Logger;
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
 
diff --git a/src/main/java/org/olat/restapi/support/vo/CourseVO.java b/src/main/java/org/olat/restapi/support/vo/CourseVO.java
index 4baf6f3f0d68a31eda1462b9805e6ac1effafc04..6e6bcf83d31b763d9b3210ceb81129eb69ffb882 100644
--- a/src/main/java/org/olat/restapi/support/vo/CourseVO.java
+++ b/src/main/java/org/olat/restapi/support/vo/CourseVO.java
@@ -25,6 +25,8 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Description:<br>
@@ -50,6 +52,34 @@ public class CourseVO {
 	private String location;
 	private String externalId;
 	private String externalRef;
+	@Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { "all",
+			  "editcontent(all)",
+			    "details(all) //details tab",
+			      "title(details,all)",
+			      "description(details,all)",
+			      "objectives(details,all)",
+			      "requirements(details,all)",
+			      "credits(details,all)",
+			      "location(details,all)",
+			      "organisations(details,all)",
+			    "settings(all) //max num of participants...",
+			     "access(settings,all)",
+			      "search(settings, all)",
+			      "chat(settings,all)",
+			      "layout(settings,all)",
+			      "resourcefolder(settings,all)",
+			      "efficencystatement(settings,all)",
+			      "calendar(settings,all)",
+			      "glossary(settings,all)",
+			    "lecture(all)",
+			      "lectureconfig(lecture, all)",
+			      "lecturemanagement(lecture, all)",
+			    "bookings(all) // change booking rules",
+			    "membersmanagement(all)",
+			    "groups(all)",
+			    "close(all)",
+			    "copy(all)",
+			    "delete(all)"})	
 	private String managedFlags;
 	
 	private Long olatResourceKey;
diff --git a/src/main/java/org/olat/restapi/support/vo/GroupVO.java b/src/main/java/org/olat/restapi/support/vo/GroupVO.java
index 5e42c5b8bc2ebcaaa005cdc4d78c4163b997cc85..9394177033564bdde180cc00989c347a1058053c 100644
--- a/src/main/java/org/olat/restapi/support/vo/GroupVO.java
+++ b/src/main/java/org/olat/restapi/support/vo/GroupVO.java
@@ -23,6 +23,9 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
+
 /**
  * Initial Date:  7 apr. 2010 <br>
  * @author srosse, stephane.rosse@frentix.com
@@ -33,6 +36,19 @@ public class GroupVO {
 	private Long key;
 	private String description;
 	private String externalId;
+	@Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { 
+			"all",
+			  "details(all) //details tab",
+			    "title(details,all)",
+			    "description(details,all)",
+			    "settings(details,all) //max num of participants...",
+			  "tools(all) //tools tab",
+			  "members(all) //members tab",
+			    "display(members,all) // members display options",
+			    "membersmanagement(members,all)",
+			  "resources(all) //add/remove courses",
+			  "bookings(all) // change booking rules",
+			  "delete(all)"})
 	private String managedFlags;
 	private String name;
 	private String type;
diff --git a/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java b/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java
index 1097de86301917f3297367dee25e37dc3f75be27..9b767043dd87b1973a48656992f9a74d1687510b 100644
--- a/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java
+++ b/src/main/java/org/olat/restapi/support/vo/RepositoryEntryVO.java
@@ -27,6 +27,9 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.repository.RepositoryEntry;
 import org.olat.resource.OLATResource;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
+
 /**
  * Initial Date:  7 apr. 2010 <br>
  * @author srosse, stephane.rosse@frentix.com
@@ -35,6 +38,7 @@ import org.olat.resource.OLATResource;
 @XmlRootElement(name = "repositoryEntryVO")
 public class RepositoryEntryVO {
 	
+	
 	private Long key;
 	private String softkey;
 	private String resourcename;
@@ -46,6 +50,34 @@ public class RepositoryEntryVO {
 	private String location;
 	private String externalId;
 	private String externalRef;
+	 @Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { "all",
+			  "editcontent(all)",
+			    "details(all) //details tab",
+			      "title(details,all)",
+			      "description(details,all)",
+			      "objectives(details,all)",
+			      "requirements(details,all)",
+			      "credits(details,all)",
+			      "location(details,all)",
+			      "organisations(details,all)",
+			    "settings(all) //max num of participants...",
+			     "access(settings,all)",
+			      "search(settings, all)",
+			      "chat(settings,all)",
+			      "layout(settings,all)",
+			      "resourcefolder(settings,all)",
+			      "efficencystatement(settings,all)",
+			      "calendar(settings,all)",
+			      "glossary(settings,all)",
+			    "lecture(all)",
+			      "lectureconfig(lecture, all)",
+			      "lecturemanagement(lecture, all)",
+			    "bookings(all) // change booking rules",
+			    "membersmanagement(all)",
+			    "groups(all)",
+			    "close(all)",
+			    "copy(all)",
+			    "delete(all)"})	
 	private String managedFlags;
 	private Long resourceableId;
 	private String resourceableTypeName;
diff --git a/src/main/java/org/olat/user/restapi/IdentityToIdentityRelationVO.java b/src/main/java/org/olat/user/restapi/IdentityToIdentityRelationVO.java
index 27d0db0e48f60158f5facd8f4044b599528be85e..0dc2765163608f5a23378de6deffdc1e97f834e1 100644
--- a/src/main/java/org/olat/user/restapi/IdentityToIdentityRelationVO.java
+++ b/src/main/java/org/olat/user/restapi/IdentityToIdentityRelationVO.java
@@ -26,6 +26,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.basesecurity.IdentityToIdentityRelation;
 import org.olat.basesecurity.IdentityToIdentityRelationManagedFlag;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 31 janv. 2019<br>
@@ -41,6 +43,9 @@ public class IdentityToIdentityRelationVO {
 	private Long identityTargetKey;
 
 	private String externalId;
+	@Schema(required = true, description = "Action to be performed on managedFlagsString", allowableValues = { 
+			"all",
+			"delete(all)"})
 	private String managedFlagsString;
 	
 	private Long relationRoleKey;
diff --git a/src/main/java/org/olat/user/restapi/OrganisationTypeVO.java b/src/main/java/org/olat/user/restapi/OrganisationTypeVO.java
index c9d16c6fb39bc670cd4ccec3fb1ec9bb7b9790fa..06bd1c47afa8be23dafa0d94602e8c449f4f97c6 100644
--- a/src/main/java/org/olat/user/restapi/OrganisationTypeVO.java
+++ b/src/main/java/org/olat/user/restapi/OrganisationTypeVO.java
@@ -26,6 +26,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.basesecurity.OrganisationType;
 import org.olat.basesecurity.OrganisationTypeManagedFlag;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 14 mai 2018<br>
@@ -42,6 +44,15 @@ public class OrganisationTypeVO {
 	private String description;
 	private String cssClass;
 	private String externalId;
+	@Schema(required = true, description = "Action to be performed on managedFlagsString", allowableValues = { 
+			"all",
+			 "identifier(all)",
+			 "displayName(all)",
+			 "description(all)",
+			 "cssClass(all)",
+			 "externalId(all)",
+			 "subTypes(all)",
+			 "delete(all)"})
 	private String managedFlagsString;
 	
 	public OrganisationTypeVO() {
diff --git a/src/main/java/org/olat/user/restapi/OrganisationVO.java b/src/main/java/org/olat/user/restapi/OrganisationVO.java
index 96097d12803e7594c36b83df58ae94e1d43e5c30..6f17652f2a690a73d90888b882609967d1d2d1e7 100644
--- a/src/main/java/org/olat/user/restapi/OrganisationVO.java
+++ b/src/main/java/org/olat/user/restapi/OrganisationVO.java
@@ -26,6 +26,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.olat.basesecurity.OrganisationManagedFlag;
 import org.olat.core.id.Organisation;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 14 mai 2018<br>
@@ -45,6 +47,16 @@ public class OrganisationVO {
 	private String status;
 	
 	private String externalId;
+	@Schema(required = true, description = "Action to be performed on managedFlagsString", allowableValues = { 
+			"all",
+			 "identifier(all)",
+			 "displayName(all)",
+			 "description(all)",
+			 "externalId(all)",
+			 "type(all)",
+			 "move(all)",
+			 "delete(all)",
+			 "members(all)"})
 	private String managedFlagsString;
 	
 	private Long rootOrganisationKey;
diff --git a/src/main/java/org/olat/user/restapi/RelationRoleVO.java b/src/main/java/org/olat/user/restapi/RelationRoleVO.java
index 19dafa7c4644fdfe69e6388151ddf84b2b72a305..039db241f9377a986e81000badd491f67941b25e 100644
--- a/src/main/java/org/olat/user/restapi/RelationRoleVO.java
+++ b/src/main/java/org/olat/user/restapi/RelationRoleVO.java
@@ -31,6 +31,8 @@ import org.olat.basesecurity.RelationRole;
 import org.olat.basesecurity.RelationRoleManagedFlag;
 import org.olat.basesecurity.RelationRoleToRight;
 
+import io.swagger.v3.oas.annotations.media.Schema;
+
 /**
  * 
  * Initial date: 31 janv. 2019<br>
@@ -45,6 +47,11 @@ public class RelationRoleVO {
 	private String role;
 	private String externalId;
 	private String externalRef;
+	@Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { 
+			"all",
+			 "name(all)",
+			 "rights(all)",
+		     "delete(all)"})
 	private String managedFlags;
 	private List<String> rights;
 	
diff --git a/src/main/resources/database/mysql/refreshViews.sql b/src/main/resources/database/mysql/refreshViews.sql
index 93137953a4c6b89ff7f3b7d273b55bd0b115160e..ba11084351d06397d2d984e99a7fd98896342654 100644
--- a/src/main/resources/database/mysql/refreshViews.sql
+++ b/src/main/resources/database/mysql/refreshViews.sql
@@ -10,21 +10,18 @@ drop view if exists o_as_eff_statement_groups_v;
 
 
 -- user view
-create or replace view o_bs_identity_short_v as (
+create view o_bs_identity_short_v as (
    select
       ident.id as id_id,
       ident.name as id_name,
       ident.lastlogin as id_lastlogin,
       ident.status as id_status,
       us.user_id as us_id,
-      p_firstname.propvalue as first_name,
-      p_lastname.propvalue as last_name,
-      p_email.propvalue as email
+      us.u_firstname as first_name,
+      us.u_lastname as last_name,
+      us.u_email as email
    from o_bs_identity as ident
-   inner join o_user as us on (ident.fk_user_id = us.user_id)
-   left join o_userproperty as p_firstname on (us.user_id = p_firstname.fk_user_id and p_firstname.propName = 'firstName')
-   left join o_userproperty as p_lastname on (us.user_id = p_lastname.fk_user_id and p_lastname.propName = 'lastName')
-   left join o_userproperty as p_email on (us.user_id = p_email.fk_user_id and p_email.propName = 'email')
+   inner join o_user as us on (ident.id = us.fk_identity)
 );
 
 -- eportfolio views
@@ -72,7 +69,7 @@ create or replace view o_ep_notifications_rating_v as (
       page.title as page_title,
       urating.creator_id as author_id,
       urating.creationdate as creation_date,
-      urating.lastmodified as last_modified 
+      urating.lastmodified as last_modified
    from o_userrating as urating
    inner join o_olatresource as rating_resource on (rating_resource.resid = urating.resid and rating_resource.resname = urating.resname)
    inner join o_ep_struct_el as map on (map.fk_olatresource = rating_resource.resource_id)
@@ -95,7 +92,7 @@ create or replace view o_ep_notifications_comment_v as (
 );
 
 create or replace view o_gp_business_to_repository_v as (
-	select 
+	select
 		grp.group_id as grp_id,
 		repoentry.repositoryentry_id as re_id,
 		repoentry.displayname as re_displayname
@@ -126,9 +123,9 @@ create or replace view o_re_membership_v as (
       re.repositoryentry_id as fk_entry_id
    from o_repositoryentry as re
    inner join o_re_to_group relgroup on (relgroup.fk_entry_id=re.repositoryentry_id and relgroup.r_defgroup=1)
-   inner join o_bs_group_member as bmember on (bmember.fk_group_id=relgroup.fk_group_id) 
+   inner join o_bs_group_member as bmember on (bmember.fk_group_id=relgroup.fk_group_id)
 );
-  
+
 -- contacts
 create or replace view o_gp_contactkey_v as (
    select
@@ -141,9 +138,9 @@ create or replace view o_gp_contactkey_v as (
    inner join o_bs_group_member as bg_member on (bg_member.fk_group_id = bgroup.fk_group_id)
    inner join o_bs_group_member as bg_me on (bg_me.fk_group_id = bgroup.fk_group_id)
    where
-      (bgroup.ownersintern=true and bg_member.g_role='coach')
+      (bgroup.ownersintern=1 and bg_member.g_role='coach')
       or
-      (bgroup.participantsintern=true and bg_member.g_role='participant')
+      (bgroup.participantsintern=1 and bg_member.g_role='participant')
 );
 
 create or replace view o_gp_contactext_v as (
@@ -152,24 +149,23 @@ create or replace view o_gp_contactext_v as (
       bg_member.fk_identity_id as member_id,
       bg_member.g_role as membership_role,
       id_member.name as member_name,
-      first_member.propvalue as member_firstname,
-      last_member.propvalue as member_lastname,
+      us_member.u_firstname as member_firstname,
+      us_member.u_lastname as member_lastname,
       bg_me.fk_identity_id as me_id,
       bgroup.group_id as bg_id,
       bgroup.groupname as bg_name
    from o_gp_business as bgroup
    inner join o_bs_group_member as bg_member on (bg_member.fk_group_id = bgroup.fk_group_id)
    inner join o_bs_identity as id_member on (bg_member.fk_identity_id = id_member.id)
-   inner join o_user as us_member on (id_member.fk_user_id = us_member.user_id)
-   inner join o_userproperty as first_member on (first_member.fk_user_id = us_member.user_id and first_member.propname='firstName')
-   inner join o_userproperty as last_member on (last_member.fk_user_id = us_member.user_id and last_member.propname='lastName')
+   inner join o_user as us_member on (id_member.id = us_member.fk_identity)
    inner join o_bs_group_member as bg_me on (bg_me.fk_group_id = bgroup.fk_group_id)
    where
-      (bgroup.ownersintern=true and bg_member.g_role='coach')
+      (bgroup.ownersintern=1 and bg_member.g_role='coach')
       or
-      (bgroup.participantsintern=true and bg_member.g_role='participant')
+      (bgroup.participantsintern=1 and bg_member.g_role='participant')
 );
 
+
 -- instant messaging
 create or replace view o_im_roster_entry_v as (
    select
@@ -214,4 +210,3 @@ create or replace view o_qp_share_2_item_short_v as (
    inner join o_gp_business as bgroup on (shareditem.fk_resource_id = bgroup.fk_resource)
 );
 
-
diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties
index f647aec1af3146d27a03594ca310c5e52376d2f2..e9ccf88cc1ab1cab163d12c46a0b94ce18030ea4 100644
--- a/src/main/resources/serviceconfig/olat.properties
+++ b/src/main/resources/serviceconfig/olat.properties
@@ -222,7 +222,7 @@ login.using.username.or.email.enabled=true
 
 # Regex to validate username of new users. If yo change this property,
 # Make sure to change the translation of $org.olat.user\:form.checkUsername accordingly.
-username.regex=[0-9a-z\\.\\-@_]{4,32}
+username.regex=[0-9a-z\\.\\-@_]{4,64}
 
 # permit users to change their own passwords
 # (if you set this to false, nobody can can change their pws!)
diff --git a/src/test/java/org/olat/selenium/page/course/LTIPage.java b/src/test/java/org/olat/selenium/page/course/LTIPage.java
index 54acab002d82b05a3aab936835caf40c708a07e7..a48f09f3287abd3b4ef2e4536e9ac91f1abc2d89 100644
--- a/src/test/java/org/olat/selenium/page/course/LTIPage.java
+++ b/src/test/java/org/olat/selenium/page/course/LTIPage.java
@@ -44,6 +44,12 @@ public class LTIPage {
 		this.browser = browser;
 	}
 	
+	/**
+	 * A successful start will switch the browser to the iframe. If you need
+	 * to go back to the LMS, you need to switch back to the default content.
+	 * 
+	 * @return Itself
+	 */
 	public LTIPage start() {
 		try {
 			By startBy = By.xpath("//div[contains(@class,'o_button_group')]/a[contains(@onclick,'start')]");
@@ -55,12 +61,10 @@ public class LTIPage {
 			OOGraphene.waitingALittleLonger();
 			
 			WebElement iframe = browser.findElement(iframeBy);
-			WebDriver iframeBrowser = browser.switchTo().frame(iframe);
+			browser = browser.switchTo().frame(iframe);
 			
 			By launchedBy = By.xpath("//p[contains(text(),'Launch Validated.')]");
 			OOGraphene.waitElement(launchedBy, browser);
-			
-			iframeBrowser.switchTo().defaultContent();
 		} catch (Exception e) {
 			OOGraphene.takeScreenshot("LTIPage_start", browser);
 
@@ -97,5 +101,10 @@ public class LTIPage {
 		Assert.assertTrue(success);
 		return this;
 	}
+	
+	public LTIPage backToOpenOLAT() {
+		browser = browser.switchTo().defaultContent();
+		return this;
+	}
 
 }