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; + } }