diff --git a/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.model.ts b/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.model.ts index 0ee4dc2c..9a30dfb0 100644 --- a/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.model.ts +++ b/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.model.ts @@ -39,11 +39,24 @@ import { Field, ObjectType } from '@nestjs/graphql'; import { KnowledgeBaseTranslationsWordpress } from '@wordpress/collections/translations/translations.wordpress.model'; import { ImageWordpress } from '@wordpress/collections/system/image.wordpress.model'; +import { RolesWordpress } from '@wordpress/collections/roles/roles.wordpress.model'; @ObjectType() -class KnowledgeBaseParentWordpress { +class KnowledgeBaseRolesWordpress { + @Field(() => [RolesWordpress]) + nodes: RolesWordpress[]; +} + +@ObjectType() +export class KnowledgeBaseParentWordpress { @Field() databaseId: number; + + @Field() + informationAccessRestriction: 'ALLOW' | 'DISALLOW' | 'NONE'; + + @Field(() => KnowledgeBaseRolesWordpress) + informationRoles: KnowledgeBaseRolesWordpress; } @ObjectType() @@ -84,6 +97,12 @@ export class KnowledgeBaseWordpress { @Field() informationPosition: number; + @Field() + informationAccessRestriction: 'ALLOW' | 'DISALLOW' | 'NONE'; + + @Field(() => KnowledgeBaseRolesWordpress) + informationRoles: KnowledgeBaseRolesWordpress; + @Field(() => [KnowledgeBaseTranslationsWordpress]) translations: KnowledgeBaseTranslationsWordpress[]; diff --git a/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.service.ts b/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.service.ts index 5fce1b3e..c42cf2e4 100644 --- a/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.service.ts +++ b/dev/connectors/multi-cms-connector/src/cms/wordpress/collections/knowledge-base/knowledge-base.wordpress.service.ts @@ -43,8 +43,12 @@ import { KnowledgeBaseTranslationsWordpress } from '@wordpress/collections/trans import { ValidateMapping } from '@common/decorators/validate-mapping.decorator'; import { KnowledgeBaseSchema } from '@common/validation/schemas/knowledge-base.schema'; import { normalizeEmptyStringToNull } from '@common/utils/normalize'; -import { KnowledgeBaseWordpress } from '@wordpress/collections/knowledge-base/knowledge-base.wordpress.model'; +import { + KnowledgeBaseParentWordpress, + KnowledgeBaseWordpress, +} from '@wordpress/collections/knowledge-base/knowledge-base.wordpress.model'; import { KnowledgeBase } from '@common/models/knowledge-base.model'; +import { Authorization } from '@common/models/authorization.model'; // TODO: Move FRENCH_CODE to .env and rename it to DEFAULT_LANGUAGE_CODE const FRENCH_CODE = 'FR'; @@ -94,6 +98,7 @@ export class KnowledgeBaseWordpressService { childDisplay: knowledgeBase.informationChildDisplay || null, link: normalizeEmptyStringToNull(knowledgeBase.informationLink), position: knowledgeBase.informationPosition || 0, + authorization: this.createAuthorization(knowledgeBase), translations, parentId: knowledgeBase.informationParent?.node?.databaseId?.toString() || null, @@ -106,6 +111,26 @@ export class KnowledgeBaseWordpressService { }; } + // creation of authorizations based on the parents' rights if they exist, otherwise classic creation + private createAuthorization( + knowledgeBase: KnowledgeBaseWordpress, + ): Authorization | null { + const parentAuthorisation = this.getAuthorization( + knowledgeBase.informationParent?.node, + ); + return parentAuthorisation ?? this.getAuthorization(knowledgeBase); + } + + private getAuthorization( + knowledgeBase?: KnowledgeBaseWordpress | KnowledgeBaseParentWordpress, + ): Authorization | null { + const roles = + knowledgeBase?.informationRoles?.nodes?.map((role) => role.roleCode) || + []; + const type = knowledgeBase?.informationAccessRestriction; + return type && type !== 'NONE' ? { type, roles } : null; + } + async getKnowledgeBase(): Promise { const data = await this.wordpressService.executeGraphQLQuery(` query { @@ -118,6 +143,14 @@ export class KnowledgeBaseWordpressService { informationChildDisplay informationLink informationPosition + informationAccessRestriction + informationRoles(first: 100) { + nodes { + databaseId + roleCode + roleDescription + } + } informationSearchKeywords informationPhone informationAddress @@ -133,8 +166,14 @@ export class KnowledgeBaseWordpressService { informationParent { node { databaseId - informationTitle - informationContent + informationAccessRestriction + informationRoles(first: 100) { + nodes { + databaseId + roleCode + roleDescription + } + } } } translations { @@ -152,6 +191,6 @@ export class KnowledgeBaseWordpressService { } } `); - return data.knowledgeBases.nodes.map(this.mapToMultiModel); + return data.knowledgeBases.nodes.map(this.mapToMultiModel.bind(this)); } } diff --git a/dev/connectors/multi-cms-connector/src/common/models/knowledge-base.model.ts b/dev/connectors/multi-cms-connector/src/common/models/knowledge-base.model.ts index e1c7bf7d..019c0bdd 100644 --- a/dev/connectors/multi-cms-connector/src/common/models/knowledge-base.model.ts +++ b/dev/connectors/multi-cms-connector/src/common/models/knowledge-base.model.ts @@ -38,6 +38,7 @@ import { Field, ObjectType } from '@nestjs/graphql'; import { KnowledgeBaseTranslations } from '@common/models/translations.model'; +import { Authorization } from '@common/models/authorization.model'; @ObjectType() export class KnowledgeBase { @@ -56,6 +57,9 @@ export class KnowledgeBase { @Field({ nullable: true }) position: number; + @Field(() => Authorization, { nullable: true }) + authorization: Authorization | null; + @Field(() => [KnowledgeBaseTranslations], { nullable: true }) translations: KnowledgeBaseTranslations[]; diff --git a/dev/connectors/multi-cms-connector/src/common/validation/schemas/knowledge-base.schema.ts b/dev/connectors/multi-cms-connector/src/common/validation/schemas/knowledge-base.schema.ts index f3391a8e..9ab3c29e 100644 --- a/dev/connectors/multi-cms-connector/src/common/validation/schemas/knowledge-base.schema.ts +++ b/dev/connectors/multi-cms-connector/src/common/validation/schemas/knowledge-base.schema.ts @@ -38,6 +38,7 @@ import { z } from 'zod'; import { IdSchema } from '@common/validation/schemas/base-type.schema'; import { KnowledgeBaseTranslationsSchema } from '@common/validation/schemas/translations.schema'; +import { AuthorizationSchema } from '@common/validation/schemas/authorization.schema'; export const KnowledgeBaseSchema = z.object({ id: IdSchema, @@ -45,6 +46,7 @@ export const KnowledgeBaseSchema = z.object({ childDisplay: z.enum(['card', 'list']).nullable(), link: z.string().min(1, 'Information link cannot be empty string').nullable(), position: z.number().int().default(0), + authorization: AuthorizationSchema.nullable(), translations: z .array(KnowledgeBaseTranslationsSchema) .min(1, 'At least one translation is required for Features'), diff --git a/dev/user-backend-nest/main/src/app.controller.ts b/dev/user-backend-nest/main/src/app.controller.ts index cfe4da50..9185d5c3 100644 --- a/dev/user-backend-nest/main/src/app.controller.ts +++ b/dev/user-backend-nest/main/src/app.controller.ts @@ -728,14 +728,32 @@ export class AppController { ); } - @Get('/knowledge-base') - knowledgeBase() { - return this.knowledgeBaseClient.send( - { - cmd: 'knowledgeBase', - }, - {}, - ); + @Post('/knowledge-base') + knowledgeBase(@Body() body) { + return this.authClient + .send( + { + cmd: 'getUser', + }, + body, + ) + .pipe( + concatMap((user) => { + const roles = user ? user.roles : ['anonymous']; + return this.knowledgeBaseClient + .send( + { + cmd: 'knowledgeBase', + }, + roles, + ) + .pipe( + map((knowledgeBase) => { + return new AuthorizationHelper(roles).filter(knowledgeBase); + }), + ); + }), + ); } @Get('/version') diff --git a/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.dto.ts b/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.dto.ts index b14d1a9b..11fff187 100644 --- a/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.dto.ts +++ b/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.dto.ts @@ -37,6 +37,11 @@ * termes. */ +export interface Authorization { + type: 'ALLOW' | 'DISALLOW'; + roles: string[]; +} + export interface KnowledgeBaseQueryDto { login: string; } @@ -64,6 +69,7 @@ export interface KnowledgeBaseDto { translations?: KnowledgeBaseTranslation[]; childDisplay?: ChildDisplay; position: number; + authorization?: Authorization; } export interface KnowledgeBaseTranslation { diff --git a/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.service.ts b/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.service.ts index f409edc9..2775cd50 100644 --- a/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.service.ts +++ b/dev/user-backend-nest/microservices/knowledge-base/src/knowledge-base/knowledge-base.service.ts @@ -73,6 +73,10 @@ export class KnowledgeBaseService { link childDisplay position + authorization { + type + roles + } translations { languagesCode searchKeywords diff --git a/dev/user-frontend-ionic/projects/knowledge-base/src/lib/knowledge-base.service.ts b/dev/user-frontend-ionic/projects/knowledge-base/src/lib/knowledge-base.service.ts index 26843cbd..2a2ef8d1 100644 --- a/dev/user-frontend-ionic/projects/knowledge-base/src/lib/knowledge-base.service.ts +++ b/dev/user-frontend-ionic/projects/knowledge-base/src/lib/knowledge-base.service.ts @@ -39,9 +39,9 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { MultiTenantService } from '@multi/shared'; -import { Observable } from 'rxjs'; -import {tap} from "rxjs/operators"; +import { getAuthToken, NetworkService, MultiTenantService } from '@multi/shared'; +import {from, Observable} from 'rxjs'; +import {filter, switchMap, take, tap} from "rxjs/operators"; import {KnowledgeBaseRepository} from "./knowledge-base.repository"; import {KnowledgeBaseItem} from "./knowledge-base.repository"; @@ -54,14 +54,24 @@ export class KnowledgeBaseService { private multiTenantService: MultiTenantService, private knowledgeBaseRepository: KnowledgeBaseRepository, private http: HttpClient, + private networkService: NetworkService, ) {} public loadAndStoreKnowledgeBase(): Observable { - const url = `${this.multiTenantService.getApiEndpoint()}/knowledge-base`; - - return this.http.get(url).pipe( + return from(this.networkService.getConnectionStatus()).pipe( + filter(status => status.connected), + switchMap(() => getAuthToken()), + take(1), + switchMap(authToken => this.getKnowledgeBase(authToken)), tap(knowledgeBases => this.knowledgeBaseRepository.setKnowledgeBases(knowledgeBases)), ); } + private getKnowledgeBase(authToken: string): Observable { + const url = `${this.multiTenantService.getApiEndpoint()}/knowledge-base`; + const data = { + authToken + }; + return this.http.post(url, data); + } } diff --git a/env/local/docker/wordpress/imports/0 - data.xml b/env/local/docker/wordpress/imports/0 - data.xml index 9d6d7133..1c71439b 100644 --- a/env/local/docker/wordpress/imports/0 - data.xml +++ b/env/local/docker/wordpress/imports/0 - data.xml @@ -16,7 +16,7 @@ - + Mon Blog http://localhost:9090 - Tue, 05 Aug 2025 12:52:06 +0000 + Wed, 06 Aug 2025 07:48:16 +0000 fr-FR 1.2 http://localhost:9090 @@ -1675,172 +1675,6 @@ - - - - <![CDATA[Emploi du temps]]> - http://localhost:9090/?post_type=features&p=128 - Mon, 12 May 2025 13:31:46 +0000 - - http://localhost:9090/?post_type=features&p=128 - - - - 128 - - - - - - - - - 0 - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2492,37 +2326,98 @@ For any questions relating to your registration, your student card, your - <![CDATA[Schedule]]> - http://localhost:9090/en/?post_type=features&p=131 - Mon, 12 May 2025 13:32:04 +0000 + <![CDATA[affiche-minimaliste-mouette-nemo]]> + http://localhost:9090/?attachment_id=277 + Tue, 05 Aug 2025 13:01:17 +0000 - http://localhost:9090/?post_type=features&p=131 + http://localhost:9090/wp-content/uploads/2025/08/affiche-minimaliste-mouette-nemo-1.jpg - 131 - - - - + 277 + + + + + + + + + 252 + 0 + + + 0 + + + + + + + + + + + + <![CDATA[Emploi du temps]]> + http://localhost:9090/?post_type=features&p=128 + Mon, 12 May 2025 13:31:46 +0000 + + http://localhost:9090/?post_type=features&p=128 + + + + 128 + + + + - + 0 0 0 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2571,14 +2466,6 @@ For any questions relating to your registration, your student card, your - - - - - - - - @@ -2587,14 +2474,6 @@ For any questions relating to your registration, your student card, your - - - - - - - - @@ -2621,8 +2500,162 @@ For any questions relating to your registration, your student card, your - - + + + + + + + + + + + + + + + + + + + + + + + + + + <![CDATA[Schedule]]> + http://localhost:9090/en/?post_type=features&p=131 + Mon, 12 May 2025 13:32:04 +0000 + + http://localhost:9090/?post_type=features&p=131 + + + + 131 + + + + + + + + + 0 + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4738,8 +4771,8 @@ For any questions relating to your registration, your student card, your 149 - - + + @@ -4798,80 +4831,6 @@ For any questions relating to your registration, your student card, your - - - - <![CDATA[Esup-Days #39]]> - http://localhost:9090/en/?post_type=important_news&p=150 - Mon, 12 May 2025 13:49:07 +0000 - - http://localhost:9090/?post_type=important_news&p=150 - - - - 150 - - - - - - - - - 0 - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5083,33 +5042,107 @@ For any questions relating to your registration, your student card, your - <![CDATA[Cartes étudiant]]> - http://localhost:9090/?post_type=important_news&p=151 - Mon, 12 May 2025 13:49:57 +0000 + <![CDATA[Esup-Days #39]]> + http://localhost:9090/en/?post_type=important_news&p=150 + Mon, 12 May 2025 13:49:07 +0000 - http://localhost:9090/?post_type=important_news&p=151 + http://localhost:9090/?post_type=important_news&p=150 - 151 - - - - + 150 + + + + - + 0 0 0 - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <![CDATA[Cartes étudiant]]> + http://localhost:9090/?post_type=important_news&p=151 + Mon, 12 May 2025 13:49:57 +0000 + + http://localhost:9090/?post_type=important_news&p=151 + + + + 151 + + + + + + + + + 0 + 0 + + + 0 + + + + + @@ -5479,8 +5512,8 @@ For any questions relating to your registration, your student card, your 252 - - + + @@ -5515,14 +5548,6 @@ Fondée en 1896, l’Université Lumière accueille chaque année plus de 30 000 - - - - - - - - @@ -5535,6 +5560,18 @@ Fondée en 1896, l’Université Lumière accueille chaque année plus de 30 000 + + + + + + + + + + + + @@ -5543,6 +5580,14 @@ Fondée en 1896, l’Université Lumière accueille chaque année plus de 30 000 + + + + + + + + @@ -5613,6 +5658,10 @@ Founded in 1896, Lumière University welcomes more than 30,000 students each yea + + + + @@ -5621,6 +5670,14 @@ Founded in 1896, Lumière University welcomes more than 30,000 students each yea + + + + + + + + @@ -5635,8 +5692,8 @@ Founded in 1896, Lumière University welcomes more than 30,000 students each yea 254 - - + + @@ -5671,14 +5728,6 @@ Découvrez les services dédiés aux étudiants : accompagnement social, bibliot - - - - - - - - @@ -5691,6 +5740,14 @@ Découvrez les services dédiés aux étudiants : accompagnement social, bibliot + + + + + + + + @@ -5699,6 +5756,18 @@ Découvrez les services dédiés aux étudiants : accompagnement social, bibliot + + + + + + + + + + + + @@ -5777,6 +5846,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -5791,8 +5864,8 @@ Discover the services dedicated to students: social support, libraries, communit 256 - - + + @@ -5823,6 +5896,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -5839,6 +5924,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -5893,6 +5982,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -5901,6 +6002,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -5915,8 +6020,8 @@ Discover the services dedicated to students: social support, libraries, communit 259 - - + + @@ -5947,6 +6052,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -5963,6 +6080,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -6017,6 +6138,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -6025,6 +6158,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -6039,8 +6176,8 @@ Discover the services dedicated to students: social support, libraries, communit 261 - - + + @@ -6103,6 +6240,10 @@ L’Université est composée de plusieurs facultés : Lettres et Langues, Scien + + + + @@ -6185,6 +6326,10 @@ The University is made up of several faculties: Letters and Languages, Sciences, + + + + @@ -6203,8 +6348,8 @@ The University is made up of several faculties: Letters and Languages, Sciences, 263 - - + + @@ -6267,6 +6412,10 @@ Le département propose des formations en littérature française, comparée et + + + + @@ -6349,6 +6498,10 @@ The department offers courses in French literature, comparative literature, and + + + + @@ -6367,8 +6520,8 @@ The department offers courses in French literature, comparative literature, and 268 - - + + @@ -6431,6 +6584,10 @@ Les étudiants peuvent suivre une licence, un master ou un doctorat en physique + + + + @@ -6513,6 +6670,10 @@ Students can pursue a bachelor's, master's or doctorate in fundamental or applie + + + + @@ -6520,129 +6681,39 @@ Students can pursue a bachelor's, master's or doctorate in fundamental or applie - <![CDATA[Santé, bien-être et accompagnement]]> - http://localhost:9090/knowledge-base/brouillon-auto-15/ - Tue, 05 Aug 2025 11:35:10 +0000 + <![CDATA[anonymous]]> + http://localhost:9090/?post_type=roles&p=96 + Tue, 08 Apr 2025 09:31:49 +0000 - http://localhost:9090/?post_type=knowledge-base&p=270 + http://localhost:9090/?post_type=roles&p=96 - 270 - - - - + 96 + + + + - + 0 0 - + 0 - - - + - - - - - - - -L’université dispose d’un service de santé étudiant, d’un soutien psychologique et d’un pôle handicap. Des permanences sont assurées chaque semaine. - -]]> + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <![CDATA[anonymous]]> - http://localhost:9090/?post_type=roles&p=96 - Tue, 08 Apr 2025 09:31:49 +0000 - - http://localhost:9090/?post_type=roles&p=96 - - - - 96 - - - - - - - - - 0 - 0 - - - 0 - - - - - - - - - - - + + @@ -6679,42 +6750,6 @@ L’université dispose d’un service de santé étudiant, d’un soutien psych - - - - <![CDATA[teacher]]> - http://localhost:9090/?post_type=roles&p=105 - Tue, 08 Apr 2025 09:49:52 +0000 - - http://localhost:9090/?post_type=roles&p=105 - - - - 105 - - - - - - - - - 0 - 0 - - - 0 - - - - - - - - - - - @@ -7527,6 +7562,100 @@ laoreet urna ex turpis sed id lobortis, ex at volutpat hendrerit hendrerit Nunc + + + + <![CDATA[Santé, bien-être et accompagnement]]> + http://localhost:9090/knowledge-base/brouillon-auto-15/ + Tue, 05 Aug 2025 11:35:10 +0000 + + http://localhost:9090/?post_type=knowledge-base&p=270 + + + + 270 + + + + + + + + + 0 + 0 + + + 0 + + + + + + + + + + + + + + +L’université dispose d’un service de santé étudiant, d’un soutien psychologique et d’un pôle handicap. Des permanences sont assurées chaque semaine. + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7601,6 +7730,10 @@ The university has a student health service, psychological support, and a disabi + + + + @@ -7611,8 +7744,8 @@ The university has a student health service, psychological support, and a disabi - - + + @@ -7631,8 +7764,8 @@ The university has a student health service, psychological support, and a disabi 272 - - + + @@ -7679,6 +7812,10 @@ Une trentaine d’activités sportives sont proposées via le SUAPS. Des atelier + + + + @@ -7693,8 +7830,8 @@ Une trentaine d’activités sportives sont proposées via le SUAPS. Des atelier - - + + @@ -7765,6 +7902,10 @@ Around thirty sports activities are offered through SUAPS. Art workshops, photog + + + + @@ -7775,8 +7916,8 @@ Around thirty sports activities are offered through SUAPS. Art workshops, photog - - + + @@ -7795,8 +7936,8 @@ Around thirty sports activities are offered through SUAPS. Art workshops, photog 274 - - + + @@ -7859,6 +8000,10 @@ Plus de 80 associations sont présentes sur le campus : BDE, clubs humanitaires, + + + + @@ -7941,6 +8086,10 @@ More than 80 associations are present on campus: BDE, humanitarian, ecological, + + + + @@ -8195,30 +8344,66 @@ More than 80 associations are present on campus: BDE, humanitarian, ecological, - <![CDATA[schedule:next-events]]> - http://localhost:9090/en/?post_type=widgets&p=106 - Tue, 08 Apr 2025 09:50:40 +0000 + <![CDATA[teacher]]> + http://localhost:9090/?post_type=roles&p=105 + Tue, 08 Apr 2025 09:49:52 +0000 - http://localhost:9090/?post_type=widgets&p=106 + http://localhost:9090/?post_type=roles&p=105 - 106 - - - - + 105 + + + + - + 0 0 - + 0 - - + + + + + + + + + + + + + + + <![CDATA[schedule:next-events]]> + http://localhost:9090/en/?post_type=widgets&p=106 + Tue, 08 Apr 2025 09:50:40 +0000 + + http://localhost:9090/?post_type=widgets&p=106 + + + + 106 + + + + + + + + + 0 + 0 + + + 0 + + @@ -9136,140 +9321,6 @@ More than 80 associations are present on campus: BDE, humanitarian, ecological, - - - - <![CDATA[rss:latest-news]]> - http://localhost:9090/?post_type=widgets&p=115 - Mon, 12 May 2025 13:11:51 +0000 - - http://localhost:9090/?post_type=widgets&p=115 - - - - 115 - - - - - - - - - 0 - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -9837,6 +9888,140 @@ Pellentesque id pretium ligula, vitae dapibus odio. Praesent mattis quis velit a <![CDATA[rss:latest-news]]> + http://localhost:9090/?post_type=widgets&p=115 + Mon, 12 May 2025 13:11:51 +0000 + + http://localhost:9090/?post_type=widgets&p=115 + + + + 115 + + + + + + + + + 0 + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <![CDATA[rss:latest-news]]> http://localhost:9090/en/?post_type=widgets&p=116 Mon, 12 May 2025 13:12:06 +0000 diff --git a/env/local/docker/wordpress/imports/2 - knowledge-base.xml b/env/local/docker/wordpress/imports/2 - knowledge-base.xml index 0b2fc634..ea335abc 100644 --- a/env/local/docker/wordpress/imports/2 - knowledge-base.xml +++ b/env/local/docker/wordpress/imports/2 - knowledge-base.xml @@ -16,7 +16,7 @@ - + Mon Blog http://localhost:9090 - Tue, 05 Aug 2025 12:52:51 +0000 + Wed, 06 Aug 2025 07:48:51 +0000 fr-FR 1.2 http://localhost:9090 @@ -52,8 +52,8 @@ 252 - - + + @@ -88,14 +88,6 @@ Fondée en 1896, l’Université Lumière accueille chaque année plus de 30 000 - - - - - - - - @@ -108,6 +100,18 @@ Fondée en 1896, l’Université Lumière accueille chaque année plus de 30 000 + + + + + + + + + + + + @@ -116,6 +120,14 @@ Fondée en 1896, l’Université Lumière accueille chaque année plus de 30 000 + + + + + + + + @@ -186,6 +198,10 @@ Founded in 1896, Lumière University welcomes more than 30,000 students each yea + + + + @@ -194,6 +210,14 @@ Founded in 1896, Lumière University welcomes more than 30,000 students each yea + + + + + + + + @@ -208,8 +232,8 @@ Founded in 1896, Lumière University welcomes more than 30,000 students each yea 254 - - + + @@ -244,14 +268,6 @@ Découvrez les services dédiés aux étudiants : accompagnement social, bibliot - - - - - - - - @@ -264,6 +280,14 @@ Découvrez les services dédiés aux étudiants : accompagnement social, bibliot + + + + + + + + @@ -272,6 +296,18 @@ Découvrez les services dédiés aux étudiants : accompagnement social, bibliot + + + + + + + + + + + + @@ -350,6 +386,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -364,8 +404,8 @@ Discover the services dedicated to students: social support, libraries, communit 256 - - + + @@ -396,6 +436,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -412,6 +464,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -466,6 +522,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -474,6 +542,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -488,8 +560,8 @@ Discover the services dedicated to students: social support, libraries, communit 259 - - + + @@ -520,6 +592,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -536,6 +620,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -590,6 +678,18 @@ Discover the services dedicated to students: social support, libraries, communit + + + + + + + + + + + + @@ -598,6 +698,10 @@ Discover the services dedicated to students: social support, libraries, communit + + + + @@ -612,8 +716,8 @@ Discover the services dedicated to students: social support, libraries, communit 261 - - + + @@ -676,6 +780,10 @@ L’Université est composée de plusieurs facultés : Lettres et Langues, Scien + + + + @@ -758,6 +866,10 @@ The University is made up of several faculties: Letters and Languages, Sciences, + + + + @@ -776,8 +888,8 @@ The University is made up of several faculties: Letters and Languages, Sciences, 263 - - + + @@ -840,6 +952,10 @@ Le département propose des formations en littérature française, comparée et + + + + @@ -922,6 +1038,10 @@ The department offers courses in French literature, comparative literature, and + + + + @@ -940,8 +1060,8 @@ The department offers courses in French literature, comparative literature, and 268 - - + + @@ -1004,6 +1124,10 @@ Les étudiants peuvent suivre une licence, un master ou un doctorat en physique + + + + @@ -1086,6 +1210,10 @@ Students can pursue a bachelor's, master's or doctorate in fundamental or applie + + + + @@ -1104,8 +1232,8 @@ Students can pursue a bachelor's, master's or doctorate in fundamental or applie 270 - - + + @@ -1152,6 +1280,10 @@ L’université dispose d’un service de santé étudiant, d’un soutien psych + + + + @@ -1174,8 +1306,8 @@ L’université dispose d’un service de santé étudiant, d’un soutien psych - - + + @@ -1254,6 +1386,10 @@ The university has a student health service, psychological support, and a disabi + + + + @@ -1264,8 +1400,8 @@ The university has a student health service, psychological support, and a disabi - - + + @@ -1284,8 +1420,8 @@ The university has a student health service, psychological support, and a disabi 272 - - + + @@ -1332,6 +1468,10 @@ Une trentaine d’activités sportives sont proposées via le SUAPS. Des atelier + + + + @@ -1346,8 +1486,8 @@ Une trentaine d’activités sportives sont proposées via le SUAPS. Des atelier - - + + @@ -1418,6 +1558,10 @@ Around thirty sports activities are offered through SUAPS. Art workshops, photog + + + + @@ -1428,8 +1572,8 @@ Around thirty sports activities are offered through SUAPS. Art workshops, photog - - + + @@ -1448,8 +1592,8 @@ Around thirty sports activities are offered through SUAPS. Art workshops, photog 274 - - + + @@ -1512,6 +1656,10 @@ Plus de 80 associations sont présentes sur le campus : BDE, clubs humanitaires, + + + + @@ -1594,6 +1742,10 @@ More than 80 associations are present on campus: BDE, humanitarian, ecological, + + + + @@ -2367,6 +2519,39 @@ laoreet urna ex turpis sed id lobortis, ex at volutpat hendrerit hendrerit Nunc + + + + <![CDATA[affiche-minimaliste-mouette-nemo]]> + http://localhost:9090/?attachment_id=277 + Tue, 05 Aug 2025 13:01:17 +0000 + + http://localhost:9090/wp-content/uploads/2025/08/affiche-minimaliste-mouette-nemo-1.jpg + + + + 277 + + + + + + + + + 252 + 0 + + + 0 + + + + + + + +