diff --git a/components/ILIAS/Cloud/Cloud.php b/components/ILIAS/Cloud/Cloud.php deleted file mode 100644 index aa387ecc3223..000000000000 --- a/components/ILIAS/Cloud/Cloud.php +++ /dev/null @@ -1,43 +0,0 @@ - new CloudSetupAgent( - $pull[Factory::class] - ); - } -} diff --git a/components/ILIAS/Cloud/README.md b/components/ILIAS/Cloud/README.md deleted file mode 100755 index 05ca3fa818b8..000000000000 --- a/components/ILIAS/Cloud/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Former Cloud Module - -This component only exists to provide a corresponding agent and DB updates to remove cloud data from ILIAS. - -## TODOs - -Remove more Data from Database, see https://github.com/ILIAS-eLearning/ILIAS/pull/7605 - ----- - -1. Remove objects from the repository - -Build a sub-query: - -```sql -SELECT ref_id -FROM object_data od -INNER JOIN object_reference objr ON objr.obj_id = od.obj_id -WHERE od.type = 'cld'; -``` - -Use this query as sub-select for the following queries: - -```sql -DELETE FROM tree WHERE child IN (?); -DELETE FROM object_reference WHERE ref_id IN (?); -``` - -**TODO: Afterwards, delete object type specific tables ...** - -2. Remove object-type-based data - -Determine the object type id and use it for ?: - -```sql -SELECT obj_id FROM object_data WHERE type = 'typ' AND title = 'cld'; -``` - -```sql -DELETE FROM rbac_ta WHERE typ_id = ?; -``` - -3. Clean up RBAC - -Determine the operation id and use it for ?: - -```sql -SELECT ops_id FROM rbac_operations WHERE class = 'create' AND operation = 'create_cld'; -``` - -```sql -DELETE FROM rbac_operations WHERE ops_id = ?; -DELETE FROM rbac_templates WHERE ops_id = ?; -DELETE FROM rbac_ta WHERE ops_id = ?; -``` - -4. Remove object related settings - -```sql -DELETE FROM settings WHERE keyword = 'obj_dis_creation_cld'; -DELETE FROM settings WHERE keyword = 'obj_add_new_pos_cld'; -DELETE FROM settings WHERE keyword = 'obj_add_new_pos_grp_cld'; -``` - -5. Finally, delete the type - -```sql -DELETE FROM object_data WHERE type = 'typ' AND title = 'cld'; -``` diff --git a/components/ILIAS/Cloud/src/Agent.php b/components/ILIAS/Cloud/src/Agent.php deleted file mode 100644 index 3a61c203bce3..000000000000 --- a/components/ILIAS/Cloud/src/Agent.php +++ /dev/null @@ -1,37 +0,0 @@ -db = $db; - } - - public function step_1(): void - { - $this->db->dropTable('il_cld_data', false); - } - - public function step_2(): void - { - $q = "SELECT obj_id FROM object_data WHERE type = %s"; - $res = $this->db->queryF($q, ['text'], ['cld']); - while ($row = $this->db->fetchAssoc($res)) { - $this->db->manipulateF('DELETE FROM object_data WHERE id = %s', ['integer'], [$row['obj_id']]); - $this->db->manipulateF('DELETE FROM object_reference WHERE object_id = %s', ['integer'], [$row['obj_id']]); - // tree? - } - } -} diff --git a/components/ILIAS/SystemFolder/ROADMAP.md b/components/ILIAS/SystemFolder/ROADMAP.md deleted file mode 100755 index 416c2baa6312..000000000000 --- a/components/ILIAS/SystemFolder/ROADMAP.md +++ /dev/null @@ -1,13 +0,0 @@ -# Roadmap - -## Short Term - -... - -## Mid Term - -... - -## Long Term - -... diff --git a/docs/development/maintenance.md b/docs/development/maintenance.md index d22a87cfe64c..a11cd5ce73a2 100755 --- a/docs/development/maintenance.md +++ b/docs/development/maintenance.md @@ -9,7 +9,7 @@ contributors. # Special Roles * **Product Management**: [Matthias Kunkel](https://docu.ilias.de/go/usr/115) -* **Technical Board**: [Rob Falkenstein](https://docu.ilias.de/go/usr/63946), [Marvin Hackfort](https://docu.ilias.de/go/usr/50523), [Michael Jansen](https://docu.ilias.de/go/usr/8784), [Franziska Wandelmaier](https://docu.ilias.de/go/usr/33833), [one vacant position] +* **Technical Board**: [Rob Falkenstein](https://docu.ilias.de/go/usr/63946), [Marvin Hackfort](https://docu.ilias.de/go/usr/50523), [Michael Jansen](https://docu.ilias.de/go/usr/8784), [Franziska Wandelmaier](https://docu.ilias.de/go/usr/33833), [Maximilian Becker](https://docu.ilias.de/go/usr/27266) * **Testcase Management**: [Fabian Kruse](https://docu.ilias.de/go/usr/27631) * **Release Management**: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) * **Technical Documentation**: [Ann-Christin Gruber](https://docu.ilias.de/go/usr/94025) @@ -150,1520 +150,2903 @@ corresponding [component](https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/do of ILIAS. The file contains the following fields: * **"Authority to Sign off on Conceptual Changes"**: - An array in the form [ ` (, ()` ] - pointing to valid users on https://docu.ilias.de. + An array in the form [ `[]()` ] + linking the GitHub username to the corresponding profile on https://docu.ilias.de. * **"Authority to Sign off on Code Changes"**: - An array in the form [ ` (), ()` ] - pointing to valid users/companies on https://docu.ilias.de. + An array in the form [ `[]()` ] + linking the GitHub username to the corresponding profile on https://docu.ilias.de. * **"Authority to Curate Test Cases"**: - An array in the form [ ` (), ()` ] - pointing to valid users on https://docu.ilias.de. + An array in the form [ `[]()` ] + linking the GitHub username to the corresponding profile on https://docu.ilias.de. * **"Authority to (De-)Assign Authorities"**: - An array in the form [ ` (), ()` ] - pointing to valid users on https://docu.ilias.de. + An array in the form [ `[]()` ] + linking the GitHub username to the corresponding profile on https://docu.ilias.de. + * **"Assignee for Issues"**: - A string in the form ` (), ()` - pointing to valid users on https://docu.ilias.de. + A string in the form `[]()` + linking the GitHub username to the corresponding profile on https://docu.ilias.de. * **"Assignee for Security Reports"**: - A string in the form ` (), ()` - pointing to valid users on https://docu.ilias.de. -* **"Unit-specific Guidelines, Rules, and Regulations"**: - Link to a file `COMMUNITY.md` in the root of the unity in the trunk branch on - GitHub specifying the guidelines, rules, and regulations for collaboration. + A string in the form `[]()` + linking the GitHub username to the corresponding profile on https://docu.ilias.de. + +## Current Maintainerships + +Components are listed alphabetically by their folder name in `components/ILIAS/`. + +[//]: # (BEGIN AccessControl) + +#### [AccessControl](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/AccessControl) + +*Belongs to:* [RBAC](https://docu.ilias.de/go/wiki/wpage_2_1357) + +* Authority to Sign off on Conceptual Changes: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [skergomard](https://docu.ilias.de/go/usr/44474) +* Assignee for Issues: [skergomard](https://docu.ilias.de/go/usr/44474) +* Assignee for Security Reports: [skergomard](https://docu.ilias.de/go/usr/44474) + +[//]: # (END AccessControl) + + +[//]: # (BEGIN Accessibility) + +#### [Accessibility](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Accessibility) + +**Status:** Unmaintained / NONE + +*Belongs to:* [Accessibility](https://docu.ilias.de/go/wiki/wpage_30_1357) + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Accessibility) + + +[//]: # (BEGIN Accordion) + +#### [Accordion](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Accordion) + +**Status:** Unmaintained / NONE + +*Belongs to:* Accordion + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Accordion) + + +[//]: # (BEGIN ActiveRecord) + +#### [ActiveRecord](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ActiveRecord) + +*Belongs to:* ActiveRecord + +* Authority to Sign off on Conceptual Changes: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) +* Authority to Sign off on Code Changes: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) +* Authority to Curate Test Cases: MISSING +* Authority to (De-)Assign Authorities: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) +* Assignee for Issues: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) +* Assignee for Security Reports: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) + +[//]: # (END ActiveRecord) + + +[//]: # (BEGIN Administration) + +#### [Administration](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Administration) + +*Belongs to:* [Administration](https://docu.ilias.de/go/wiki/wpage_246_1357) + +* Authority to Sign off on Conceptual Changes: [fneumann](https://docu.ilias.de/go/usr/1560) +* Authority to Sign off on Code Changes: [fneumann](https://docu.ilias.de/go/usr/1560), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Authority to Curate Test Cases: [fneumann](https://docu.ilias.de/go/usr/1560), [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [fneumann (Databay AG)](https://docu.ilias.de/go/usr/1560), [lscharmer (Databay AG)](https://docu.ilias.de/go/usr/87863) +* Assignee for Issues: [fneumann](https://docu.ilias.de/go/usr/1560) +* Assignee for Security Reports: [fneumann](https://docu.ilias.de/go/usr/1560) + +[//]: # (END Administration) + + +[//]: # (BEGIN AdministrativeNotification) + +#### [AdministrativeNotification](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/AdministrativeNotification) + +*Belongs to:* [Administrative Notifications](https://docu.ilias.de/go/wiki/wpage_7290_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END AdministrativeNotification) + + +[//]: # (BEGIN ADT) + +#### [ADT](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ADT) + +*Belongs to:* [Metadata](https://docu.ilias.de/go/wiki/wpage_973_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Curate Test Cases: [Alexandra Tödt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END ADT) + + +[//]: # (BEGIN AdvancedMetaData) + +#### [AdvancedMetaData](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/AdvancedMetaData) + +*Belongs to:* [Metadata](https://docu.ilias.de/go/wiki/wpage_973_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Curate Test Cases: [Alexandra Tödt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END AdvancedMetaData) + + +[//]: # (BEGIN App) + +#### [App](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/App) + +**Status:** Unmaintained / NONE + +*Belongs to:* App + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END App) + + +[//]: # (BEGIN AuthApache) + +#### [AuthApache](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/AuthApache) + +*Belongs to:* [Login, Auth & Registration](https://docu.ilias.de/go/wiki/wpage_19_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END AuthApache) + + +[//]: # (BEGIN Authentication) + +#### [Authentication](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Authentication) + +*Belongs to:* [Login, Auth & Registration](https://docu.ilias.de/go/wiki/wpage_19_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Authentication) + + +[//]: # (BEGIN AuthShibboleth) + +#### [AuthShibboleth](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/AuthShibboleth) + +*Belongs to:* [Login, Auth & Registration](https://docu.ilias.de/go/wiki/wpage_19_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END AuthShibboleth) + + +[//]: # (BEGIN AuthSOAP) + +#### [AuthSOAP](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/AuthSOAP) + +*Belongs to:* SOAP + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to (De-)Assign Authorities: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) + +[//]: # (END AuthSOAP) + + +[//]: # (BEGIN Awareness) + +#### [Awareness](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Awareness) + +*Belongs to:* [Who is online?](https://docu.ilias.de/go/wiki/wpage_293_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Awareness) + + +[//]: # (BEGIN BackgroundTasks) + +#### [BackgroundTasks](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/BackgroundTasks) + +*Belongs to:* [Background Tasks](https://docu.ilias.de/go/wiki/wpage_4383_1357) + +* Authority to Sign off on Conceptual Changes: [thojou](https://docu.ilias.de/go/usr/103745), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [thojou](https://docu.ilias.de/go/usr/103745), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: MISSING +* Authority to (De-)Assign Authorities: [thojou (Databay AG)](https://docu.ilias.de/go/usr/103745) +* Assignee for Issues: [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Security Reports: [thojou](https://docu.ilias.de/go/usr/103745) + +[//]: # (END BackgroundTasks) + + +[//]: # (BEGIN BackgroundTasks_) + +#### [BackgroundTasks_](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/BackgroundTasks_) + +*Belongs to:* [Background Tasks](https://docu.ilias.de/go/wiki/wpage_4383_1357) + +* Authority to Sign off on Conceptual Changes: [thojou](https://docu.ilias.de/go/usr/103745), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [thojou](https://docu.ilias.de/go/usr/103745), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: MISSING +* Authority to (De-)Assign Authorities: [thojou (Databay AG)](https://docu.ilias.de/go/usr/103745) +* Assignee for Issues: [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Security Reports: [thojou](https://docu.ilias.de/go/usr/103745) + +[//]: # (END BackgroundTasks_) + + +[//]: # (BEGIN Badge) + +#### [Badge](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Badge) + +*Belongs to:* [Badges](https://docu.ilias.de/go/wiki/wpage_4203_1357) + +* Authority to Sign off on Conceptual Changes: [fhelfer](https://docu.ilias.de/go/usr/93367) +* Authority to Sign off on Code Changes: [fhelfer](https://docu.ilias.de/go/usr/93367), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [fhelfer](https://docu.ilias.de/go/usr/93367) +* Assignee for Security Reports: [fhelfer](https://docu.ilias.de/go/usr/93367) + +[//]: # (END Badge) + + +[//]: # (BEGIN Benchmark) + +#### [Benchmark](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Benchmark) + +*Belongs to:* Benchmark + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END Benchmark) + + +[//]: # (BEGIN Bibliographic) + +#### [Bibliographic](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Bibliographic) + +*Belongs to:* [Bibliographic List Item](https://docu.ilias.de/go/wiki/wpage_2553_1357) + +* Authority to Sign off on Conceptual Changes: [lschmidt-tf](https://docu.ilias.de/go/usr/120143) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [maalers](https://docu.ilias.de/go/usr/119188), [mhomann-tf](https://docu.ilias.de/go/usr/120211) +* Authority to Curate Test Cases: [maalers](https://docu.ilias.de/go/usr/119188), [mhomann-tf](https://docu.ilias.de/go/usr/120211) +* Authority to (De-)Assign Authorities: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Issues: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Security Reports: [maalers](https://docu.ilias.de/go/usr/119188) + +[//]: # (END Bibliographic) + + +[//]: # (BEGIN Blog) + +#### [Blog](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Blog) + +*Belongs to:* [Blog](https://docu.ilias.de/go/wiki/wpage_1448_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Blog) + + +[//]: # (BEGIN BookingManager) + +#### [BookingManager](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/BookingManager) + +*Belongs to:* [Booking Pool](https://docu.ilias.de/go/wiki/wpage_133_1357) + +* Authority to Sign off on Conceptual Changes: [simon.lowe](https://docu.ilias.de/go/usr/79091), [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [simon.lowe](https://docu.ilias.de/go/usr/79091), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to (De-)Assign Authorities: [simon.lowe (Databay AG)](https://docu.ilias.de/go/usr/79091), [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Security Reports: [thojou](https://docu.ilias.de/go/usr/103745) + +[//]: # (END BookingManager) + + +[//]: # (BEGIN Cache) + +#### [Cache](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Cache) + +*Belongs to:* [Global Cache](https://docu.ilias.de/go/wiki/wpage_6435_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END Cache) + + +[//]: # (BEGIN Calendar) + +#### [Calendar](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Calendar) + +*Belongs to:* [Calendar](https://docu.ilias.de/go/wiki/wpage_23_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END Calendar) + + +[//]: # (BEGIN Category) + +#### [Category](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Category) + +*Belongs to:* [Category and Repository](https://docu.ilias.de/go/wiki/wpage_106_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Category) + + +[//]: # (BEGIN CategoryReference) + +#### [CategoryReference](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/CategoryReference) + +*Belongs to:* [Category and Repository](https://docu.ilias.de/go/wiki/wpage_106_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END CategoryReference) + + +[//]: # (BEGIN Certificate) + +#### [Certificate](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Certificate) + +*Belongs to:* [Certificate](https://docu.ilias.de/go/wiki/wpage_66_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784), [ChrisPotter](https://docu.ilias.de/go/usr/90855) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Certificate) + + +[//]: # (BEGIN Chart) + +#### [Chart](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Chart) + +**Status:** Unmaintained / NONE + +*Belongs to:* Chart + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Chart) + + +[//]: # (BEGIN Chatroom) + +#### [Chatroom](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Chatroom) + +*Belongs to:* Chatroom + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Chatroom) + + + +[//]: # (BEGIN CmiXapi) + +#### [CmiXapi](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/CmiXapi) + +*Belongs to:* [xAPI](https://docu.ilias.de/go/wiki/wpage_2921_1357) + +* Authority to Sign off on Conceptual Changes: [ukohnle](https://docu.ilias.de/go/usr/21855) +* Authority to Sign off on Code Changes: [ukohnle](https://docu.ilias.de/go/usr/21855) +* Authority to Curate Test Cases: [ukohnle](https://docu.ilias.de/go/usr/21855) +* Authority to (De-)Assign Authorities: [ukohnle](https://docu.ilias.de/go/usr/21855) +* Assignee for Issues: [ukohnle](https://docu.ilias.de/go/usr/21855) +* Assignee for Security Reports: [ukohnle](https://docu.ilias.de/go/usr/21855) + +[//]: # (END CmiXapi) + + +[//]: # (BEGIN Component) + +#### [Component](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Component) + +*Belongs to:* Component + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) + +[//]: # (END Component) + + +[//]: # (BEGIN Conditions) + +#### [Conditions](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Conditions) + +*Belongs to:* Conditions + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Conditions) + + +[//]: # (BEGIN Contact) + +#### [Contact](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Contact) + +*Belongs to:* [Contacts](https://docu.ilias.de/go/wiki/wpage_3740_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Contact) + + +[//]: # (BEGIN Container) + +#### [Container](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Container) + +*Belongs to:* [Category and Repository](https://docu.ilias.de/go/wiki/wpage_106_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Container) + + +[//]: # (BEGIN ContainerReference) + +#### [ContainerReference](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ContainerReference) + +*Belongs to:* [Category and Repository](https://docu.ilias.de/go/wiki/wpage_106_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END ContainerReference) + + +[//]: # (BEGIN ContentPage) + +#### [ContentPage](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ContentPage) + +*Belongs to:* [Content Page](https://docu.ilias.de/go/wiki/wpage_5369_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END ContentPage) + + + +[//]: # (BEGIN COPage) + +#### [COPage](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/COPage) + +*Belongs to:* [ILIAS Page Editor](https://docu.ilias.de/go/wiki/wpage_2141_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END COPage) + + +[//]: # (BEGIN Course) + +#### [Course](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Course) + +*Belongs to:* [Course Management](https://docu.ilias.de/go/wiki/wpage_13_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END Course) + + +[//]: # (BEGIN CourseReference) + +#### [CourseReference](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/CourseReference) + +*Belongs to:* [Course Management](https://docu.ilias.de/go/wiki/wpage_13_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END CourseReference) + + +[//]: # (BEGIN Cron) + +#### [Cron](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Cron) + +*Belongs to:* [Cron Service](https://docu.ilias.de/go/wiki/wpage_2357_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Cron) + + +[//]: # (BEGIN CSV) + +#### [CSV](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/CSV) + +**Status:** Unmaintained / NONE + +*Belongs to:* CSV + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END CSV) + + +[//]: # (BEGIN Dashboard) + +#### [Dashboard](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Dashboard) + +*Belongs to:* [Dashboard](https://docu.ilias.de/go/wiki/wpage_6092_1357) + +* Authority to Sign off on Conceptual Changes: [iszmais](https://docu.ilias.de/go/usr/65630), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Authority to Sign off on Code Changes: [iszmais](https://docu.ilias.de/go/usr/65630), [lscharmer](https://docu.ilias.de/go/usr/87863), [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [iszmais (Databay AG)](https://docu.ilias.de/go/usr/65630), [lscharmer (Databay AG)](https://docu.ilias.de/go/usr/87863) +* Assignee for Issues: [iszmais](https://docu.ilias.de/go/usr/65630) +* Assignee for Security Reports: [iszmais](https://docu.ilias.de/go/usr/65630) + +[//]: # (END Dashboard) + + +[//]: # (BEGIN Data) + +#### [Data](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Data) + +*Belongs to:* Data + +* Authority to Sign off on Conceptual Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Data) + + +[//]: # (BEGIN Database) + +#### [Database](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Database) + +*Belongs to:* [Database](https://docu.ilias.de/go/wiki/wpage_12_1357) + +* Authority to Sign off on Conceptual Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: MISSING +* Authority to (De-)Assign Authorities: [lscharmer](https://docu.ilias.de/go/usr/87863) +* Assignee for Issues: [lscharmer](https://docu.ilias.de/go/usr/87863) +* Assignee for Security Reports: [lscharmer](https://docu.ilias.de/go/usr/87863) + +[//]: # (END Database) + + +[//]: # (BEGIN DataCollection) + +#### [DataCollection](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/DataCollection) + +*Belongs to:* [Data Collection](https://docu.ilias.de/go/wiki/wpage_2340_1357) + +* Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [iszmais](https://docu.ilias.de/go/usr/65630) +* Authority to Curate Test Cases: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [iszmais](https://docu.ilias.de/go/usr/65630) +* Assignee for Security Reports: [iszmais](https://docu.ilias.de/go/usr/65630) + +[//]: # (END DataCollection) + + +[//]: # (BEGIN DataProtection) + +#### [DataProtection](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/DataProtection) + +*Belongs to:* [Privacy, Terms of Service and Data Protection (incl. Terms of Service)](https://docu.ilias.de/go/wiki/wpage_4995_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END DataProtection) + + +[//]: # (BEGIN DI) + +#### [DI](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/DI) + +**Status:** Unmaintained / NONE + +*Belongs to:* DI + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END DI) + + +[//]: # (BEGIN DidacticTemplate) + +#### [DidacticTemplate](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/DidacticTemplate) + +*Belongs to:* Didactic Templates + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END DidacticTemplate) + + +[//]: # (BEGIN EmployeeTalk) + +#### [EmployeeTalk](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/EmployeeTalk) + +*Belongs to:* EmployeeTalk + +* Authority to Sign off on Conceptual Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Sign off on Code Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Curate Test Cases: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to (De-)Assign Authorities: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Assignee for Issues: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Assignee for Security Reports: [tschmitz](https://docu.ilias.de/go/usr/92591) + +[//]: # (END EmployeeTalk) + + +[//]: # (BEGIN Environment) + +#### [Environment](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Environment) + +*Belongs to:* Environment + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Environment) + + +[//]: # (BEGIN EventHandling) + +#### [EventHandling](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/EventHandling) + +*Belongs to:* EventHandling + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END EventHandling) + + +[//]: # (BEGIN Excel) + +#### [Excel](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Excel) + +*Belongs to:* Excel + +* Authority to Sign off on Conceptual Changes: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) +* Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/goto_docu_usr_44474.html) +* Authority to Curate Test Cases: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) +* Authority to (De-)Assign Authorities: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) +* Assignee for Issues: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) +* Assignee for Security Reports: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) + +[//]: # (END Excel) + + +[//]: # (BEGIN Exceptions) + +#### [Exceptions](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Exceptions) + +**Status:** Unmaintained / NONE + +*Belongs to:* Exceptions + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Exceptions) + + +[//]: # (BEGIN Exercise) + +#### [Exercise](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Exercise) + +*Belongs to:* [Exercise](https://docu.ilias.de/go/wiki/wpage_28_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Exercise) + + +[//]: # (BEGIN Export) + +#### [Export](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Export) + +*Belongs to:* [Export](https://docu.ilias.de/go/wiki/wpage_91_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [Fabian](https://docu.ilias.de/go/usr/27631) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END Export) + + +[//]: # (BEGIN Feeds) + +#### [Feeds](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Feeds) + +*Belongs to:* [News - RSS - Webfeeds](https://docu.ilias.de/go/wiki/wpage_38_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Feeds) + + +[//]: # (BEGIN File) + +#### [File](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/File) + +*Belongs to:* [File](https://docu.ilias.de/go/wiki/wpage_4_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END File) + + +[//]: # (BEGIN FileDelivery) + +#### [FileDelivery](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/FileDelivery) + +*Belongs to:* [File](https://docu.ilias.de/go/wiki/wpage_4_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END FileDelivery) + + +[//]: # (BEGIN FileServices) + +#### [FileServices](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/FileServices) + +*Belongs to:* [File](https://docu.ilias.de/go/wiki/wpage_4_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END FileServices) + + +[//]: # (BEGIN Filesystem) + +#### [Filesystem](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Filesystem) + +*Belongs to:* Filesystem + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END Filesystem) + + +[//]: # (BEGIN FileUpload) + +#### [FileUpload](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/FileUpload) + +*Belongs to:* [File](https://docu.ilias.de/go/wiki/wpage_4_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END FileUpload) + + +[//]: # (BEGIN Folder) + +#### [Folder](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Folder) + +*Belongs to:* [Category and Repository](https://docu.ilias.de/go/wiki/wpage_106_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Folder) + + +[//]: # (BEGIN Form) + +#### [Form](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Form) + +**Status:** Unmaintained / NONE + +*Belongs to:* Form + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Form) + + +[//]: # (BEGIN Forum) + +#### [Forum](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Forum) + +*Belongs to:* [Forum](https://docu.ilias.de/go/wiki/wpage_35_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: FH Aachen +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Forum) + + +[//]: # (BEGIN GlobalScreen) + +#### [GlobalScreen](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/GlobalScreen) + +*Belongs to:* [Global Screen Service](https://docu.ilias.de/go/wiki/wpage_6079_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END GlobalScreen) + + +[//]: # (BEGIN Glossary) + +#### [Glossary](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Glossary) + +*Belongs to:* [Glossary](https://docu.ilias.de/go/wiki/wpage_121_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Glossary) + + +[//]: # (BEGIN Group) + +#### [Group](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Group) + +*Belongs to:* [Group and Group Reference](https://docu.ilias.de/go/wiki/wpage_39_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END Group) + + +[//]: # (BEGIN GroupReference) + +#### [GroupReference](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/GroupReference) + +*Belongs to:* [Group](https://docu.ilias.de/go/wiki/wpage_39_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END GroupReference) + + +[//]: # (BEGIN Help) + +#### [Help](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Help) + +*Belongs to:* [Online Help](https://docu.ilias.de/go/wiki/wpage_415_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END Help) + + +[//]: # (BEGIN History) + +#### [History](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/History) + +**Status:** Unmaintained / NONE + +*Belongs to:* History + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END History) + + +[//]: # (BEGIN Html) + +#### [Html](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Html) + +*Belongs to:* [Security (incl. Web Access Checker)](https://docu.ilias.de/go/wiki/wpage_866_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: FH Aachen +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Html) + + +[//]: # (BEGIN HTMLLearningModule) + +#### [HTMLLearningModule](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/HTMLLearningModule) + +*Belongs to:* [Learning Module HTML](https://docu.ilias.de/go/wiki/wpage_135_1357) + +* Authority to Sign off on Conceptual Changes: [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to Sign off on Code Changes: [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to Curate Test Cases: [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to (De-)Assign Authorities: [mbecker](https://docu.ilias.de/go/usr/27266) +* Assignee for Issues: [mbecker](https://docu.ilias.de/go/usr/27266) +* Assignee for Security Reports: [mbecker](https://docu.ilias.de/go/usr/27266) + +[//]: # (END HTMLLearningModule) + + +[//]: # (BEGIN HTTP) + +#### [HTTP](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/HTTP) + +*Belongs to:* HTTP-Request + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END HTTP) + + +[//]: # (BEGIN Http_) + +#### [Http_](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Http_) + +**Status:** Unmaintained / NONE + +*Belongs to:* Http_ + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Http_) + + +[//]: # (BEGIN ILIASObject) + +#### [ILIASObject](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ILIASObject) + +*Belongs to:* ILIASObject + +* Authority to Sign off on Conceptual Changes: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to Curate Test Cases: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to (De-)Assign Authorities: [skergomard](https://docu.ilias.de/go/usr/44474) +* Assignee for Issues: [skergomard](https://docu.ilias.de/go/usr/44474) +* Assignee for Security Reports: [skergomard](https://docu.ilias.de/go/usr/44474) + +[//]: # (END ILIASObject) + + +[//]: # (BEGIN Imprint) + +#### [Imprint](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Imprint) + +**Status:** Unmaintained / NONE + +*Belongs to:* Imprint + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Imprint) + + +[//]: # (BEGIN IndividualAssessment) + +#### [IndividualAssessment](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/IndividualAssessment) + +*Belongs to:* [Individual Assessment](https://docu.ilias.de/go/wiki/wpage_4226_1357) + +* Authority to Sign off on Conceptual Changes: [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to Sign off on Code Changes: [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to Curate Test Cases: [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to (De-)Assign Authorities: [mbecker](https://docu.ilias.de/go/usr/27266) +* Assignee for Issues: [mbecker](https://docu.ilias.de/go/usr/27266) +* Assignee for Security Reports: [mbecker](https://docu.ilias.de/go/usr/27266) + +[//]: # (END IndividualAssessment) + + +[//]: # (BEGIN InfoScreen) + +#### [InfoScreen](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/InfoScreen) + +*Belongs to:* [Info Page](https://docu.ilias.de/go/wiki/wpage_2095_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END InfoScreen) + + +[//]: # (BEGIN Init) + +#### [Init](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Init) + +*Belongs to:* Initialisation Service + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Init) + + +[//]: # (BEGIN ItemGroup) + +#### [ItemGroup](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ItemGroup) + +*Belongs to:* ItemGroup + +* Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [oliver.samoila](https://docu.ilias.de/go/usr/26160), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Security Reports: [thojou](https://docu.ilias.de/go/usr/103745) + +[//]: # (END ItemGroup) + + +[//]: # (BEGIN JavaScript) + +#### [JavaScript](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/JavaScript) + +**Status:** Unmaintained / NONE + +*Belongs to:* JavaScript + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END JavaScript) + + +[//]: # (BEGIN jQuery) + +#### [jQuery](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/jQuery) + +**Status:** Unmaintained / NONE + +*Belongs to:* jQuery + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END jQuery) + + +[//]: # (BEGIN KioskMode) + +#### [KioskMode](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/KioskMode) + +*Belongs to:* General Kiosk-Mode + +* Authority to Sign off on Conceptual Changes: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Authority to Sign off on Code Changes: [keven.clausen](https://docu.ilias.de/go/usr/100316), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [jeanine.auerbach](https://docu.ilias.de/go/usr/101332), [cknof](https://docu.ilias.de/go/usr/90890) +* Authority to Curate Test Cases: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Authority to (De-)Assign Authorities: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Assignee for Issues: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Assignee for Security Reports: [keven.clausen](https://docu.ilias.de/go/usr/100316) + +[//]: # (END KioskMode) + + +[//]: # (BEGIN KioskMode_) + +#### [KioskMode_](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/KioskMode_) + +*Belongs to:* General Kiosk-Mode + +* Authority to Sign off on Conceptual Changes: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Authority to Sign off on Code Changes: [keven.clausen](https://docu.ilias.de/go/usr/100316), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [jeanine.auerbach](https://docu.ilias.de/go/usr/101332), [cknof](https://docu.ilias.de/go/usr/90890) +* Authority to Curate Test Cases: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Authority to (De-)Assign Authorities: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Assignee for Issues: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Assignee for Security Reports: [keven.clausen](https://docu.ilias.de/go/usr/100316) + +[//]: # (END KioskMode_) + + +[//]: # (BEGIN Language) + +#### [Language](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Language) + +*Belongs to:* Language + +* Authority to Sign off on Conceptual Changes: [mkunkel](https://docu.ilias.de/go/usr/115) +* Authority to Sign off on Code Changes: [mkunkel](https://docu.ilias.de/go/usr/115), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [ChrisPotter](https://docu.ilias.de/go/usr/90855), [keven.clausen](https://docu.ilias.de/go/usr/100316), [cknof](https://docu.ilias.de/go/usr/90890) +* Authority to Curate Test Cases: [ChrisPotter](https://docu.ilias.de/go/usr/90855) +* Authority to (De-)Assign Authorities: [mkunkel](https://docu.ilias.de/go/usr/115) +* Assignee for Issues: [mkunkel](https://docu.ilias.de/go/usr/115) +* Assignee for Security Reports: [mkunkel](https://docu.ilias.de/go/usr/115) + +[//]: # (END Language) + + +[//]: # (BEGIN LDAP) + +#### [LDAP](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/LDAP) + +*Belongs to:* [Login, Auth & Registration](https://docu.ilias.de/go/wiki/wpage_19_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END LDAP) + + +[//]: # (BEGIN LearningHistory) + +#### [LearningHistory](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/LearningHistory) + +*Belongs to:* [Learning History](https://docu.ilias.de/go/wiki/wpage_5454_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END LearningHistory) + + +[//]: # (BEGIN LearningModule) + +#### [LearningModule](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/LearningModule) + +*Belongs to:* [Learning Module ILIAS](https://docu.ilias.de/go/wiki/wpage_33_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [Balliel](https://docu.ilias.de/go/usr/18365) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END LearningModule) + + +[//]: # (BEGIN LearningSequence) + +#### [LearningSequence](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/LearningSequence) + +*Belongs to:* [Learning Sequence](https://docu.ilias.de/go/wiki/wpage_5557_1357) + +* Authority to Sign off on Conceptual Changes: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Authority to Sign off on Code Changes: [keven.clausen](https://docu.ilias.de/go/usr/100316), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Authority to Curate Test Cases: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Authority to (De-)Assign Authorities: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Assignee for Issues: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) +* Assignee for Security Reports: [keven.clausen](https://docu.ilias.de/go/usr/100316) + +[//]: # (END LearningSequence) + + +[//]: # (BEGIN LegalDocuments) + +#### [LegalDocuments](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/LegalDocuments) + +*Belongs to:* Legal Documents + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/34047) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END LegalDocuments) + + +[//]: # (BEGIN Like) + +#### [Like](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Like) + +*Belongs to:* Like + +* Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [fhelfer](https://docu.ilias.de/go/usr/93367), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [fhelfer](https://docu.ilias.de/go/usr/93367), [thojou](https://docu.ilias.de/go/usr/103745), [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [fhelfer](https://docu.ilias.de/go/usr/93367) +* Assignee for Security Reports: [fhelfer](https://docu.ilias.de/go/usr/93367) + +[//]: # (END Like) + + +[//]: # (BEGIN Link) + +#### [Link](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Link) + +**Status:** Unmaintained / NONE + +*Belongs to:* Link + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Link) + + +[//]: # (BEGIN Locator) + +#### [Locator](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Locator) + +**Status:** Unmaintained / NONE + +*Belongs to:* Locator + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Locator) + + +[//]: # (BEGIN Logging) + +#### [Logging](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Logging) + +*Belongs to:* [Logging](https://docu.ilias.de/go/wiki/wpage_148_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END Logging) + + +[//]: # (BEGIN LTIConsumer) + +#### [LTIConsumer](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/LTIConsumer) + +*Belongs to:* [LTI](https://docu.ilias.de/go/wiki/wpage_4335_1357) + +* Authority to Sign off on Conceptual Changes: [Saaweel](https://docu.ilias.de/go/usr/105654) +* Authority to Sign off on Code Changes: [Zallax](https://docu.ilias.de/go/usr/101102), [Saaweel](https://docu.ilias.de/go/usr/105654) +* Authority to Curate Test Cases: [jcopado](https://docu.ilias.de/go/usr/30511) +* Authority to (De-)Assign Authorities: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Issues: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Security Reports: [jcopado](https://docu.ilias.de/go/usr/30511) + +[//]: # (END LTIConsumer) + + +[//]: # (BEGIN LTIProvider) + +#### [LTIProvider](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/LTIProvider) + +*Belongs to:* [LTI](https://docu.ilias.de/go/wiki/wpage_4335_1357) + +* Authority to Sign off on Conceptual Changes: [Saaweel](https://docu.ilias.de/go/usr/105654) +* Authority to Sign off on Code Changes: [Zallax](https://docu.ilias.de/go/usr/101102), [Saaweel](https://docu.ilias.de/go/usr/105654), [smeyer](https://docu.ilias.de/goto_docu_usr_191.html) +* Authority to Curate Test Cases: [jcopado](https://docu.ilias.de/go/usr/30511) +* Authority to (De-)Assign Authorities: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Issues: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Security Reports: [jcopado](https://docu.ilias.de/go/usr/30511) + +[//]: # (END LTIProvider) + + +[//]: # (BEGIN Mail) + +#### [Mail](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Mail) + +*Belongs to:* [Mail](https://docu.ilias.de/go/wiki/wpage_36_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) + +[//]: # (END Mail) + + +[//]: # (BEGIN MainMenu) + +#### [MainMenu](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/MainMenu) + +*Belongs to:* MainMenu + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) + +[//]: # (END MainMenu) + + +[//]: # (BEGIN Maps) + +#### [Maps](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Maps) + +*Belongs to:* [Maps](https://docu.ilias.de/go/wiki/wpage_2909_1357) + +* Authority to Sign off on Conceptual Changes: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Authority to Sign off on Code Changes: [keven.clausen](https://docu.ilias.de/go/usr/100316), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Authority to Curate Test Cases: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Authority to (De-)Assign Authorities: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Assignee for Issues: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) +* Assignee for Security Reports: [keven.clausen](https://docu.ilias.de/go/usr/100316) + +[//]: # (END Maps) + + +[//]: # (BEGIN Math) + +#### [Math](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Math) + +**Status:** Unmaintained / NONE + +*Belongs to:* Math + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Math) + + +[//]: # (BEGIN MediaCast) + +#### [MediaCast](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/MediaCast) + +*Belongs to:* MediaCast + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [berggold](https://docu.ilias.de/go/usr/22199) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END MediaCast) + + +[//]: # (BEGIN MediaObjects) -# Components and Related Authorities +#### [MediaObjects](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/MediaObjects) -[//]: # (BEGIN ActiveRecord) +*Belongs to:* [Media Pools and Media Objects](https://docu.ilias.de/go/wiki/wpage_83_1357) -* **ActiveRecord** - * Authority to Sign off on Conceptual Changes: MISSING - * Authority to Sign off on Code Changes: MISSING - * Authority to Curate Test Cases: MISSING - * Authority to (De-)Assign Authorities: MISSING - * Assignee for Issues: MISSING - * Assignee for Security Reports: MISSING - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) -[//]: # (END ActiveRecord) +[//]: # (END MediaObjects) -[//]: # (BEGIN Administration) -* **Administration** - * Authority to Sign off on Conceptual Changes: [fneumann](https://docu.ilias.de/go/usr/1560) - * Authority to Sign off on Code Changes: [fneumann](https://docu.ilias.de/go/usr/1560) - , [lscharmer](https://docu.ilias.de/go/usr/87863) - * Authority to Curate Test Cases: [fneumann](https://docu.ilias.de/go/usr/1560) - , [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [fneumann (Databay AG)](https://docu.ilias.de/go/usr/1560) - , [lscharmer (Databay AG)](https://docu.ilias.de/go/usr/87863) - * Assignee for Issues: [fneumann](https://docu.ilias.de/go/usr/1560) - * Assignee for Security Reports: [fneumann](https://docu.ilias.de/go/usr/1560) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN MediaPool) -[//]: # (END Administration) +#### [MediaPool](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/MediaPool) -[//]: # (BEGIN AdministrativeNotifications) +*Belongs to:* [Media Pools and Media Objects](https://docu.ilias.de/go/wiki/wpage_83_1357) -* **Administrative Notifications** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) -[//]: # (END AdministrativeNotifications) +[//]: # (END MediaPool) -[//]: # (BEGIN BackgroundTasks) -* **BackgroundTasks** - * Authority to Sign off on Conceptual Changes: [tjoussen](https://docu.ilias.de/go/usr/103745), [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [tjoussen](https://docu.ilias.de/go/usr/103745), [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: MISSING - * Authority to (De-)Assign Authorities: [tjoussen (Databay AG)](https://docu.ilias.de/go/usr/103745) - * Assignee for Issues: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Assignee for Security Reports: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN Membership) -[//]: # (END BackgroundTasks) +#### [Membership](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Membership) -[//]: # (BEGIN Badges) +*Belongs to:* Membership -* **Badges** - * Authority to Sign off on Conceptual Changes: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Authority to Sign off on Code Changes: [fhelfer](https://docu.ilias.de/go/usr/93367), [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Assignee for Security Reports: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) -[//]: # (END Badges) +[//]: # (END Membership) -[//]: # (BEGIN Benchmark) -* **Benchmark** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - , [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN MetaData) -[//]: # (END Benchmark) +#### [MetaData](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/MetaData) -[//]: # (BEGIN BibliographicListItem) +*Belongs to:* [Metadata](https://docu.ilias.de/go/wiki/wpage_973_1357) -* **Bibliographic List Item** - * Authority to Sign off on Conceptual Changes: [lschmidt-tf](https://docu.ilias.de/go/usr/120143) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [maalers](https://docu.ilias.de/go/usr/119188) - * Authority to Curate Test Cases: [maalers](https://docu.ilias.de/go/usr/119188) - * Authority to (De-)Assign Authorities: [maalers](https://docu.ilias.de/go/usr/119188) - * Assignee for Issues: [maalers](https://docu.ilias.de/go/usr/119188) - * Assignee for Security Reports: [maalers](https://docu.ilias.de/go/usr/119188) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Curate Test Cases: [Alexandra Tödt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) -[//]: # (END BibliographicListItem) +[//]: # (END MetaData) -[//]: # (BEGIN Blog) -* **Blog** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN Migration) -[//]: # (END Blog) +#### [Migration](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Migration) -[//]: # (BEGIN BookingPool) +**Status:** Unmaintained / NONE -* **Booking Pool** - * Authority to Sign off on Conceptual Changes: [simon.lowe](https://docu.ilias.de/go/usr/79091), [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to Curate Test Cases: [simon.lowe](https://docu.ilias.de/go/usr/79091), [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to (De-)Assign Authorities: [simon.lowe (Databay AG)](https://docu.ilias.de/go/usr/79091), [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Assignee for Security Reports: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* Migration -[//]: # (END BookingPool) +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE -[//]: # (BEGIN Calendar) +[//]: # (END Migration) -* **Calendar** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - , [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [MISSING] - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END Calendar) +[//]: # (BEGIN Multilingualism) -[//]: # (BEGIN CategoryAndRepository) +#### [Multilingualism](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Multilingualism) -* **Category, Category Reference and Repository** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - , [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +**Status:** Unmaintained / NONE -[//]: # (END CategoryAndRepository) +*Belongs to:* Multilingualism -[//]: # (BEGIN Certificate) +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE -* **Certificate** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784), [ChrisPotter](https://docu.ilias.de/go/usr/90855) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Multilingualism) -[//]: # (END Certificate) -[//]: # (BEGIN Chat) +[//]: # (BEGIN MyStaff) -* **Chatroom** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - , [mbecker](https://docu.ilias.de/go/usr/27266) - * Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [MyStaff](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/MyStaff) -[//]: # (END Chat) +*Belongs to:* [Staff](https://docu.ilias.de/go/wiki/wpage_4829_1357) +* Authority to Sign off on Conceptual Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Sign off on Code Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Curate Test Cases: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to (De-)Assign Authorities: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Assignee for Issues: [tschmitz](https://docu.ilias.de/go/usr/92591) +* Assignee for Security Reports: [tschmitz](https://docu.ilias.de/go/usr/92591) -[//]: # (BEGIN Comments) -* **Comments** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [skaiser](https://docu.ilias.de/go/usr/17260) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END MyStaff) -[//]: # (END Comments) -[//]: # (BEGIN CompetenceManagement) +[//]: # (BEGIN News) -* **Competence Management** - * Authority to Sign off on Conceptual Changes: [cludolf](https://docu.ilias.de/go/usr/97658) - * Authority to Sign off on Code Changes: [cludolf](https://docu.ilias.de/go/usr/97658) - , [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [cludolf](https://docu.ilias.de/go/usr/97658) - * Assignee for Issues: [cludolf](https://docu.ilias.de/go/usr/97658) - * Assignee for Security Reports: [cludolf](https://docu.ilias.de/go/usr/97658) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [News](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/News) -[//]: # (END CompetenceManagement) +*Belongs to:* [News - RSS - Webfeeds](https://docu.ilias.de/go/wiki/wpage_38_1357) -[//]: # (BEGIN Component) +* Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [thojou](https://docu.ilias.de/go/usr/103745), [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Security Reports: [thojou](https://docu.ilias.de/go/usr/103745) -* **Component** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Authority to Curate Test Cases: [MISSING] - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087), [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END News) -[//]: # (END Component) -[//]: # (BEGIN Contacts) +[//]: # (BEGIN Notes) -* **Contacts** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Notes](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Notes) -[//]: # (END Contacts) +*Belongs to:* [Notes and Comments](https://docu.ilias.de/go/wiki/wpage_31_1357) -[//]: # (BEGIN ContentPage) +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [skaiser](https://docu.ilias.de/go/usr/17260) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) -* **ContentPage** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Notes) -[//]: # (END ContentPage) -[//]: # (BEGIN Context) +[//]: # (BEGIN Notification) -* **Context** - * Authority to Sign off on Conceptual Changes: [MISSING] - * Authority to Sign off on Code Changes: [MISSING] - * Authority to Curate Test Cases: [MISSING] - * Authority to (De-)Assign Authorities: [MISSING] - * Assignee for Issues: [MISSING] - * Assignee for Security Reports: [MISSING] - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Notification](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Notification) -[//]: # (END Context) +*Belongs to:* Notification -[//]: # (BEGIN ILIASPageEditor) +* Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html), [iszmais](https://docu.ilias.de/goto_docu_usr_65630.html) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html), [oliver.samoila](https://docu.ilias.de/go/usr/26160), [iszmais](https://docu.ilias.de/goto_docu_usr_65630.html) +* Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html) -* **COPage (aka ILIAS Page Editor)** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Notification) -[//]: # (END ILIASPageEditor) -[//]: # (BEGIN CourseManagement) +[//]: # (BEGIN Notifications) -* **Course and Course Reference** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - , [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [MISSING] - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Notifications](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Notifications) -[//]: # (END CourseManagement) +*Belongs to:* [Notifications](https://docu.ilias.de/go/wiki/wpage_1754_1357) -[//]: # (BEGIN CronService) +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [iszmais](https://docu.ilias.de/go/usr/65630) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [iszmais](https://docu.ilias.de/go/usr/65630) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784), [iszmais](https://docu.ilias.de/go/usr/65630) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) -* **Cron Service** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Notifications) -[//]: # (END CronService) -[//]: # (BEGIN CSSAndTemplates) +[//]: # (BEGIN OnScreenChat) -* **CSS / Templates** - * Authority to Sign off on Conceptual Changes: [BettyFromHH](https://docu.ilias.de/go/usr/96573) - * Authority to Sign off on Code Changes: [BettyFromHH](https://docu.ilias.de/go/usr/96573), [rotegras](https://docu.ilias.de/go/usr/88399), [padvincenzo](https://docu.ilias.de/go/usr/87189) - * Authority to Curate Test Cases: [BettyFromHH](https://docu.ilias.de/go/usr/96573) - * Authority to (De-)Assign Authorities: [BettyFromHH](https://docu.ilias.de/go/usr/96573) - * Assignee for Issues: [BettyFromHH](https://docu.ilias.de/go/usr/96573) - * Assignee for Security Reports: [BettyFromHH](https://docu.ilias.de/go/usr/96573) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [OnScreenChat](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/OnScreenChat) -[//]: # (END CSSAndTemplates) +*Belongs to:* [Chat](https://docu.ilias.de/go/wiki/wpage_37_1357) -[//]: # (BEGIN Dashboard) +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [mbecker](https://docu.ilias.de/go/usr/27266) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) -* **Dashboard** - * Authority to Sign off on Conceptual Changes: [iszmais](https://docu.ilias.de/go/usr/65630) - , [lscharmer](https://docu.ilias.de/go/usr/87863) - * Authority to Sign off on Code Changes: [iszmais](https://docu.ilias.de/go/usr/65630) - , [lscharmer](https://docu.ilias.de/go/usr/87863) - , [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [iszmais (Databay AG)](https://docu.ilias.de/go/usr/65630) - , [lscharmer (Databay AG)](https://docu.ilias.de/go/usr/87863) - * Assignee for Issues: [iszmais](https://docu.ilias.de/go/usr/65630) - * Assignee for Security Reports: [iszmais](https://docu.ilias.de/go/usr/65630) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END OnScreenChat) -[//]: # (END Dashboard) -[//]: # (BEGIN Data) +[//]: # (BEGIN OpenIdConnect) -* **Data** - * Authority to Sign off on Conceptual Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [MISSING] - * Authority to (De-)Assign Authorities: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [OpenIdConnect](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/OpenIdConnect) -[//]: # (END Data) +*Belongs to:* [Login, Auth & Registration](https://docu.ilias.de/go/wiki/wpage_19_1357) -[//]: # (BEGIN DataCollection) +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to (De-)Assign Authorities: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) -* **Data Collection** - * Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [iszmais](https://docu.ilias.de/go/usr/65630) - * Authority to Curate Test Cases: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [iszmais](https://docu.ilias.de/go/usr/65630) - * Assignee for Security Reports: [iszmais](https://docu.ilias.de/go/usr/65630) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END OpenIdConnect) -[//]: # (END DataCollection) -[//]: # (BEGIN DataProtection) +[//]: # (BEGIN OrgUnit) -* **Data Protection** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - , [lscharmer](https://docu.ilias.de/go/usr/87863) - * Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [OrgUnit](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/OrgUnit) -[//]: # (END DataProtection) +*Belongs to:* [Organisational Units](https://docu.ilias.de/go/wiki/wpage_2265_1357) -[//]: # (BEGIN Database) +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [lschmidt-tf](https://docu.ilias.de/go/usr/120143) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [maalers](https://docu.ilias.de/go/usr/119188), [mhomann-tf](https://docu.ilias.de/go/usr/120211) +* Authority to Curate Test Cases: [wischniak](https://docu.ilias.de/go/usr/21896) +* Authority to (De-)Assign Authorities: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Issues: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Security Reports: [maalers](https://docu.ilias.de/go/usr/119188) -* **Database** - * Authority to Sign off on Conceptual Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [lscharmer](https://docu.ilias.de/go/usr/87863), [mjansen](https://docu.ilias.de/go/usr/8784) - , [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: MISSING - * Authority to (De-)Assign Authorities: [lscharmer](https://docu.ilias.de/go/usr/87863) - * Assignee for Issues: [lscharmer](https://docu.ilias.de/go/usr/87863) - * Assignee for Security Reports: [lscharmer](https://docu.ilias.de/go/usr/87863) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END OrgUnit) -[//]: # (END Database) -[//]: # (BEGIN DidacticTemplates) +[//]: # (BEGIN Password) -* **Didactic Templates** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Password](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Password) -[//]: # (END DidacticTemplates) +*Belongs to:* Password -[//]: # (BEGIN ECSInterface) +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) -* **ECS Interface** - * Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) - * Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107) - * Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) - * Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) - * Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) - * Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Password) -[//]: # (END ECSInterface) -[//]: # (BEGIN EmployeeTalk) +[//]: # (BEGIN PermanentLink) -* **EmployeeTalk** - * Authority to Sign off on Conceptual Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to Sign off on Code Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to Curate Test Cases: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to (De-)Assign Authorities: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Assignee for Issues: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Assignee for Security Reports: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [PermanentLink](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/PermanentLink) -[//]: # (END EmployeeTalk) +**Status:** Unmaintained / NONE -[//]: # (BEGIN EventHandling) +*Belongs to:* PermanentLink -* **EventHandling** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE -[//]: # (END EventHandling) +[//]: # (END PermanentLink) -[//]: # (BEGIN Excel) -* **Excel** - * Authority to Sign off on Conceptual Changes: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) - * Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/goto_docu_usr_44474.html) - * Authority to Curate Test Cases: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) - * Authority to (De-)Assign Authorities: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) - * Assignee for Issues: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) - * Assignee for Security Reports: [dstrassner](https://docu.ilias.de/goto_docu_usr_48931.html) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN PersonalWorkspace) -[//]: # (END Excel) +#### [PersonalWorkspace](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/PersonalWorkspace) -[//]: # (BEGIN Exercise) +*Belongs to:* [Personal and Shared Resources](https://docu.ilias.de/go/wiki/wpage_1338_1357) -* **Exercise** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) -[//]: # (END Exercise) +[//]: # (END PersonalWorkspace) -[//]: # (BEGIN Export) -* **Export** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [Fabian](https://docu.ilias.de/go/usr/27631) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN Poll) -[//]: # (END Export) +#### [Poll](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Poll) -[//]: # (BEGIN Favourites) +*Belongs to:* [Poll](https://docu.ilias.de/go/wiki/wpage_2590_1357) -* **Favourites** - * Authority to Sign off on Conceptual Changes: [iszmais](https://docu.ilias.de/go/usr/65630) - * Authority to Sign off on Code Changes: [iszmais](https://docu.ilias.de/go/usr/65630) - * Authority to Curate Test Cases: [iszmais](https://docu.ilias.de/go/usr/65630) - * Authority to (De-)Assign Authorities: [iszmais](https://docu.ilias.de/go/usr/65630) - * Assignee for Issues: [iszmais](https://docu.ilias.de/go/usr/65630) - * Assignee for Security Reports: [iszmais](https://docu.ilias.de/go/usr/65630) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) +* Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) -[//]: # (END Favourites) +[//]: # (END Poll) -[//]: # (BEGIN WebFeed) -* **Feed (aka Web Feeds)** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN Portfolio) -[//]: # (END WebFeed) +#### [Portfolio](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Portfolio) -[//]: # (BEGIN File) +*Belongs to:* [Portfolio](https://docu.ilias.de/go/wiki/wpage_353_1357) -* **File** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) -[//]: # (END File) +[//]: # (END Portfolio) -[//]: # (BEGIN Forum) -* **Forum** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: FH Aachen - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN PrivacySecurity) -[//]: # (END Forum) +#### [PrivacySecurity](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/PrivacySecurity) -[//]: # (BEGIN GlobalCache) +**Status:** Unmaintained / NONE -* **GlobalCache** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [Privacy, Terms of Service and Data Protection (incl. Terms of Service)](https://docu.ilias.de/go/wiki/wpage_4995_1357) -[//]: # (END GlobalCache) +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE -[//]: # (BEGIN GlobalScreen) +[//]: # (END PrivacySecurity) -* **GlobalScreen** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END GlobalScreen) +[//]: # (BEGIN Rating) -[//]: # (BEGIN Glossary) +#### [Rating](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Rating) -* **Glossary** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [Rating](https://docu.ilias.de/go/wiki/wpage_2784_1357) -[//]: # (END Glossary) +* Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [fhelfer](https://docu.ilias.de/go/usr/93367) +* Authority to Curate Test Cases: [fhelfer](https://docu.ilias.de/go/usr/93367), [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [fhelfer](https://docu.ilias.de/go/usr/93367) +* Assignee for Security Reports: [fhelfer](https://docu.ilias.de/go/usr/93367) -[//]: # (BEGIN Group) +[//]: # (END Rating) -* **Group and Group Reference** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - , [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [MISSING] - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END Group) +[//]: # (BEGIN Refinery) -[//]: # (BEGIN OnlineHelp) +#### [Refinery](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Refinery) -* **Help (aka Online Help)** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - , [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* Refinery -[//]: # (END OnlineHelp) +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) -[//]: # (BEGIN HTTP-Request) +[//]: # (END Refinery) -* **HTTP-Request** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END HTTP-Request) +[//]: # (BEGIN Registration) -[//]: # (BEGIN IndividualAssessment) +#### [Registration](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Registration) -* **IndividualAssessment** - * Authority to Sign off on Conceptual Changes: [mbecker](https://docu.ilias.de/go/usr/27266) - * Authority to Sign off on Code Changes: [mbecker](https://docu.ilias.de/go/usr/27266) - * Authority to Curate Test Cases: [mbecker](https://docu.ilias.de/go/usr/27266) - * Authority to (De-)Assign Authorities: [mbecker](https://docu.ilias.de/go/usr/27266) - * Assignee for Issues: [mbecker](https://docu.ilias.de/go/usr/27266) - * Assignee for Security Reports: [mbecker](https://docu.ilias.de/go/usr/27266) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [Login, Auth & Registration](https://docu.ilias.de/go/wiki/wpage_19_1357) -[//]: # (END IndividualAssessment) +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) -[//]: # (BEGIN InfoPage) +[//]: # (END Registration) -* **InfoScreen (aka Info Page)** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - , [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END InfoPage) +[//]: # (BEGIN RemoteCategory) -[//]: # (BEGIN InitialisationService) +#### [RemoteCategory](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteCategory) -* **Init (aka Initialisation Service)** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to (De-)Assign Authorities: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END InitialisationService) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN ItemGroup) +[//]: # (END RemoteCategory) -* **ItemGroup** - * Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to Curate Test Cases: [oliver.samoila](https://docu.ilias.de/go/usr/26160), [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Assignee for Security Reports: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END ItemGroup) +[//]: # (BEGIN RemoteCourse) -[//]: # (BEGIN GeneralKiosk-Mode) +#### [RemoteCourse](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteCourse) -* **KioskMode (aka General Kiosk Mode)** - * Authority to Sign off on Conceptual Changes: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) - * Authority to Sign off on Code Changes: [keven.clausen](https://docu.ilias.de/go/usr/100316), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [jeanine.auerbach](https://docu.ilias.de/go/usr/101332),[cknof](https://docu.ilias.de/go/usr/90890) - * Authority to Curate Test Cases: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Authority to (De-)Assign Authorities: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) - * Assignee for Issues: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) - * Assignee for Security Reports: [keven.clausen](https://docu.ilias.de/go/usr/100316) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END GeneralKiosk-Mode) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN LanguageHandling) +[//]: # (END RemoteCourse) -* **Language** - * Authority to Sign off on Conceptual Changes: [mkunkel](https://docu.ilias.de/go/usr/115) - * Authority to Sign off on Code Changes: [mkunkel](https://docu.ilias.de/go/usr/115), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [ChrisPotter](https://docu.ilias.de/go/usr/90855), [keven.clausen](https://docu.ilias.de/go/usr/100316), [cknof](https://docu.ilias.de/go/usr/90890) - * Authority to Curate Test Cases: [ChrisPotter](https://docu.ilias.de/go/usr/90855) - * Authority to (De-)Assign Authorities: [mkunkel](https://docu.ilias.de/go/usr/115) - * Assignee for Issues: [mkunkel](https://docu.ilias.de/go/usr/115) - * Assignee for Security Reports: [mkunkel](https://docu.ilias.de/go/usr/115) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END LanguageHandling) +[//]: # (BEGIN RemoteFile) -[//]: # (BEGIN LearningHistory) +#### [RemoteFile](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteFile) -* **Learning History** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END LearningHistory) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN LearningModuleHTML) +[//]: # (END RemoteFile) -* **Learning Module HTML** - * Authority to Sign off on Conceptual Changes: [mbecker](https://docu.ilias.de/go/usr/27266) - * Authority to Sign off on Code Changes: [mbecker](https://docu.ilias.de/go/usr/27266) - * Authority to Curate Test Cases: [mbecker](https://docu.ilias.de/go/usr/27266) - * Authority to (De-)Assign Authorities: [mbecker](https://docu.ilias.de/go/usr/27266) - * Assignee for Issues: [mbecker](https://docu.ilias.de/go/usr/27266) - * Assignee for Security Reports: [mbecker](https://docu.ilias.de/go/usr/27266) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END LearningModuleHTML) +[//]: # (BEGIN RemoteGlossary) -[//]: # (BEGIN LearningModuleILIAS) +#### [RemoteGlossary](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteGlossary) -* **Learning Module ILIAS** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [Balliel](https://docu.ilias.de/go/usr/18365) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END LearningModuleILIAS) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN LearningSequence) +[//]: # (END RemoteGlossary) -* **Learning Sequence** - * Authority to Sign off on Conceptual Changes: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) - * Authority to Sign off on Code Changes: [keven.clausen](https://docu.ilias.de/go/usr/100316), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Authority to Curate Test Cases: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Authority to (De-)Assign Authorities: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) - * Assignee for Issues: [katrin.grosskopf](https://docu.ilias.de/go/usr/68340) - * Assignee for Security Reports: [keven.clausen](https://docu.ilias.de/go/usr/100316) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END LearningSequence) +[//]: # (BEGIN RemoteGroup) -[//]: # (BEGIN LegalDocuments) +#### [RemoteGroup](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteGroup) -* **Legal Documents** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - , [lscharmer](https://docu.ilias.de/go/usr/87863) - * Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/34047) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END LegalDocuments) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN Like) +[//]: # (END RemoteGroup) -* **Like** - * Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [fhelfer](https://docu.ilias.de/go/usr/93367), [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to Curate Test Cases: [fhelfer](https://docu.ilias.de/go/usr/93367), [tjoussen](https://docu.ilias.de/go/usr/103745), [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Assignee for Security Reports: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END Like) +[//]: # (BEGIN RemoteLearningModule) -[//]: # (BEGIN Logging) +#### [RemoteLearningModule](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteLearningModule) -* **Logging** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END Logging) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN LoginAuthAndRegistration) +[//]: # (END RemoteLearningModule) -* **Login, Auth & Registration** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - , [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - , [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END LoginAuthAndRegistration) +[//]: # (BEGIN RemoteTest) -[//]: # (BEGIN LTIConsumer) +#### [RemoteTest](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteTest) -* **LTI Consumer** - * Authority to Sign off on Conceptual Changes: [sergiosantiago02](https://docu.ilias.de/go/usr/110174) - * Authority to Sign off on Code Changes: [Zallax](https://docu.ilias.de/go/usr/101102), [sdiaz](https://docu.ilias.de/go/usr/105654), [sergiosantiago02](https://docu.ilias.de/go/usr/110174) - * Authority to Curate Test Cases: [jcop](https://docu.ilias.de/go/usr/30511) - * Authority to (De-)Assign Authorities: [jcop](https://docu.ilias.de/go/usr/30511) - * Assignee for Issues: [jcop](https://docu.ilias.de/go/usr/30511) - * Assignee for Security Reports: [jcop](https://docu.ilias.de/go/usr/30511) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END LTIConsumer) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN LTI) +[//]: # (END RemoteTest) -* **LTI Provider** - * Authority to Sign off on Conceptual Changes: [sergiosantiago02](https://docu.ilias.de/go/usr/110174) - * Authority to Sign off on Code Changes: [Zallax](https://docu.ilias.de/go/usr/101102), [sdiaz](https://docu.ilias.de/go/usr/105654), [smeyer](https://docu.ilias.de/goto_docu_usr_191.html), [sergiosantiago02](https://docu.ilias.de/go/usr/110174) - * Authority to Curate Test Cases: [jcop](https://docu.ilias.de/go/usr/30511) - * Authority to (De-)Assign Authorities: [jcop](https://docu.ilias.de/go/usr/30511) - * Assignee for Issues: [jcop](https://docu.ilias.de/go/usr/30511) - * Assignee for Security Reports: [jcop](https://docu.ilias.de/go/usr/30511) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END LTI) +[//]: # (BEGIN RemoteWiki) -[//]: # (BEGIN Mail) +#### [RemoteWiki](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RemoteWiki) -* **Mail** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ECS Interface](https://docu.ilias.de/go/wiki/wpage_1132_1357) -[//]: # (END Mail) +* Authority to Sign off on Conceptual Changes: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Authority to Sign off on Code Changes: [sdyhr](https://docu.ilias.de/go/usr/102107), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [jheim](https://docu.ilias.de/go/usr/40167), [SIG CampusConnect und ECS(A)](https://docu.ilias.de/go/grp/7893) +* Authority to (De-)Assign Authorities: [bogen](https://docu.ilias.de/go/usr/13815), [mglaubitz](https://docu.ilias.de/go/usr/28309) +* Assignee for Issues: [sdyhr](https://docu.ilias.de/go/usr/102107) +* Assignee for Security Reports: [sdyhr](https://docu.ilias.de/go/usr/102107) -[//]: # (BEGIN MainMenu) +[//]: # (END RemoteWiki) -* **MainMenu** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END MainMenu) +[//]: # (BEGIN Repository) -[//]: # (BEGIN Maps) +#### [Repository](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Repository) -* **Maps** - * Authority to Sign off on Conceptual Changes: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Authority to Sign off on Code Changes: [keven.clausen](https://docu.ilias.de/go/usr/100316), [katrin.grosskopf](https://docu.ilias.de/go/usr/68340), [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Authority to Curate Test Cases: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Authority to (De-)Assign Authorities: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Assignee for Issues: [jeanine.auerbach](https://docu.ilias.de/go/usr/101332) - * Assignee for Security Reports: [keven.clausen](https://docu.ilias.de/go/usr/100316) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [Category and Repository](https://docu.ilias.de/go/wiki/wpage_106_1357) -[//]: # (END Maps) +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) -[//]: # (BEGIN MathJax) +[//]: # (END Repository) -* **MathJax** - * Authority to Sign off on Conceptual Changes: [fneumann](https://docu.ilias.de/go/usr/1560) - * Authority to Sign off on Code Changes: [fneumann](https://docu.ilias.de/go/usr/1560) - * Authority to Curate Test Cases: [fneumann](https://docu.ilias.de/go/usr/1560) - * Authority to (De-)Assign Authorities: [fneumann](https://docu.ilias.de/go/usr/1560) - * Assignee for Issues: [fneumann](https://docu.ilias.de/go/usr/1560) - * Assignee for Security Reports: [fneumann](https://docu.ilias.de/go/usr/1560) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END MathJax) +[//]: # (BEGIN ResourceStorage) -[//]: # (BEGIN MediaObjects) +#### [ResourceStorage](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ResourceStorage) -* **Media Objects** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [ILIAS Resource Storage Service](https://docu.ilias.de/go/wiki/wpage_6729_1357) -[//]: # (END MediaObjects) +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) -[//]: # (BEGIN MediaPool) +[//]: # (END ResourceStorage) -* **Media Pool** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END MediaPool) +[//]: # (BEGIN RootFolder) -[//]: # (BEGIN MediaCast) +#### [RootFolder](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RootFolder) -* **MediaCast** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [berggold](https://docu.ilias.de/go/usr/22199) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* [Category and Repository](https://docu.ilias.de/go/wiki/wpage_106_1357) -[//]: # (END MediaCast) +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149), [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) -[//]: # (BEGIN Membership) +[//]: # (END RootFolder) -* **Membership** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') -[//]: # (END Membership) +[//]: # (BEGIN RTE) -[//]: # (BEGIN Metadata) +#### [RTE](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/RTE) -* **Metadata** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191), [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to Curate Test Cases: [Alexandra Tödt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +**Status:** Unmaintained / NONE -[//]: # (END Metadata) +*Belongs to:* RTE -[//]: # (BEGIN News) +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE -* **News** - * Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to Curate Test Cases: [tjoussen](https://docu.ilias.de/go/usr/103745), [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Assignee for Security Reports: [tjoussen](https://docu.ilias.de/go/usr/103745) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END RTE) -[//]: # (END News) -[//]: # (BEGIN NotesAndComments) +[//]: # (BEGIN Saml) -* **Notes (aka Notes and Comments)** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [skaiser](https://docu.ilias.de/go/usr/17260) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Saml](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Saml) -[//]: # (END NotesAndComments) +*Belongs to:* [Login, Auth & Registration](https://docu.ilias.de/go/wiki/wpage_19_1357) -[//]: # (BEGIN Notification) +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) -* **Notification** - * Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html), [iszmais](https://docu.ilias.de/goto_docu_usr_65630.html) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html), [oliver.samoila](https://docu.ilias.de/go/usr/26160), [iszmais](https://docu.ilias.de/goto_docu_usr_65630.html) - * Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/goto_docu_usr_8784.html) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Saml) -[//]: # (END Notification) -[//]: # (BEGIN Notifications) +[//]: # (BEGIN Scorm2004) -* **Notifications** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - , [iszmais](https://docu.ilias.de/go/usr/65630) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - , [iszmais](https://docu.ilias.de/go/usr/65630) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - , [iszmais](https://docu.ilias.de/go/usr/65630) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Scorm2004](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Scorm2004) -[//]: # (END Notifications) +*Belongs to:* [Learning Module SCORM](https://docu.ilias.de/go/wiki/wpage_32_1357) -[//]: # (BEGIN ObjectService) +* Authority to Sign off on Conceptual Changes: [wischniak](https://docu.ilias.de/go/usr/21896) +* Authority to Sign off on Code Changes: [qualitus.dahme](https://docu.ilias.de/go/usr/99160), [qualitus.hartwig](https://docu.ilias.de/go/usr/104063) +* Authority to Curate Test Cases: [emix](https://docu.ilias.de/go/usr/57311) +* Authority to (De-)Assign Authorities: [wischniak](https://docu.ilias.de/go/usr/21896) +* Assignee for Issues: [wischniak](https://docu.ilias.de/go/usr/21896) +* Assignee for Security Reports: [wischniak](https://docu.ilias.de/go/usr/21896) -* **Object Service** - * Authority to Sign off on Conceptual Changes: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to Curate Test Cases: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to (De-)Assign Authorities: [skergomard](https://docu.ilias.de/go/usr/44474) - * Assignee for Issues: [skergomard](https://docu.ilias.de/go/usr/44474) - * Assignee for Security Reports: [skergomard](https://docu.ilias.de/go/usr/44474) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Scorm2004) -[//]: # (END ObjectService) -[//]: # (BEGIN OpenIdConect) +[//]: # (BEGIN ScormAicc) -* **Open ID Connect** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [ScormAicc](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/ScormAicc) -[//]: # (END OpenIdConect) +*Belongs to:* [Learning Module SCORM](https://docu.ilias.de/go/wiki/wpage_32_1357) -[//]: # (BEGIN OrganisationalUnits) +* Authority to Sign off on Conceptual Changes: [wischniak](https://docu.ilias.de/go/usr/21896) +* Authority to Sign off on Code Changes: [qualitus.dahme](https://docu.ilias.de/go/usr/99160), [qualitus.hartwig](https://docu.ilias.de/go/usr/104063) +* Authority to Curate Test Cases: [emix](https://docu.ilias.de/go/usr/57311) +* Authority to (De-)Assign Authorities: [wischniak](https://docu.ilias.de/go/usr/21896) +* Assignee for Issues: [wischniak](https://docu.ilias.de/go/usr/21896) +* Assignee for Security Reports: [wischniak](https://docu.ilias.de/go/usr/21896) -* **Organisational Units** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [lschmidt-tf](https://docu.ilias.de/go/usr/120143) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087), [maalers](https://docu.ilias.de/go/usr/119188) - * Authority to Curate Test Cases: [wischniak](https://docu.ilias.de/go/usr/21896) - * Authority to (De-)Assign Authorities: [maalers](https://docu.ilias.de/go/usr/119188) - * Assignee for Issues: [maalers](https://docu.ilias.de/go/usr/119188) - * Assignee for Security Reports: [maalers](https://docu.ilias.de/go/usr/119188) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END ScormAicc) -[//]: # (END OrganisationalUnits) -[//]: # (BEGIN PersonalAndSharedResources) +[//]: # (BEGIN Search) -* **Personal and Shared Resources** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Search](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Search) -[//]: # (END PersonalAndSharedResources) +*Belongs to:* [Search](https://docu.ilias.de/go/wiki/wpage_11_1357) -[//]: # (BEGIN Poll) +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) -* **Poll** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - , [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Search) -[//]: # (END Poll) -[//]: # (BEGIN Portfolio) +[//]: # (BEGIN Session) -* **Portfolio** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Session](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Session) -[//]: # (END Portfolio) +*Belongs to:* [Session (Course & Group)](https://docu.ilias.de/go/wiki/wpage_2172_1357) -[//]: # (BEGIN PreconditionHandling) +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [MISSING] +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) -* **Precondition Handling** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Session) -[//]: # (END PreconditionHandling) -[//]: # (BEGIN Rating) +[//]: # (BEGIN Setup) -* **Rating** - * Authority to Sign off on Conceptual Changes: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Authority to Curate Test Cases: [fhelfer](https://docu.ilias.de/go/usr/93367), [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to (De-)Assign Authorities: [oliver.samoila (Databay AG)](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Assignee for Security Reports: [fhelfer](https://docu.ilias.de/go/usr/93367) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Setup](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Setup) -[//]: # (END Rating) +*Belongs to:* [Setup](https://docu.ilias.de/go/wiki/wpage_40_1357) -[//]: # (BEGIN RBAC) +* Authority to Sign off on Conceptual Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) +* Authority to (De-)Assign Authorities: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) -* **RBAC / Access Control** - * Authority to Sign off on Conceptual Changes: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [skergomard](https://docu.ilias.de/go/usr/44474) - * Assignee for Issues: [skergomard](https://docu.ilias.de/go/usr/44474) - * Assignee for Security Reports: [skergomard](https://docu.ilias.de/go/usr/44474) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END Setup) -[//]: # (END RBAC) -[//]: # (BEGIN Refinery) -* **Refinery** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN Skill) -[//]: # (END Refinery) +#### [Skill](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Skill) -[//]: # (BEGIN SAML) +*Belongs to:* [Competence Management](https://docu.ilias.de/go/wiki/wpage_1161_1357) -* **SAML** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Curate Test Cases: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [cludolf](https://docu.ilias.de/go/usr/97658) +* Authority to Sign off on Code Changes: [cludolf](https://docu.ilias.de/go/usr/97658), [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) +* Authority to (De-)Assign Authorities: [cludolf](https://docu.ilias.de/go/usr/97658) +* Assignee for Issues: [cludolf](https://docu.ilias.de/go/usr/97658) +* Assignee for Security Reports: [cludolf](https://docu.ilias.de/go/usr/97658) -[//]: # (END SAML) +[//]: # (END Skill) -[//]: # (BEGIN LearningModuleSCORM) -* **Scorm (aka Learning Module SCORM 1.2 and 2004)** - * Authority to Sign off on Conceptual Changes: [wischniak](https://docu.ilias.de/go/usr/21896) - * Authority to Sign off on Code Changes: [qualitus.dahme](https://docu.ilias.de/go/usr/99160), [qualitus.hartwig](https://docu.ilias.de/go/usr/104063) - * Authority to Curate Test Cases: [emix](https://docu.ilias.de/go/usr/57311) - * Authority to (De-)Assign Authorities: [wischniak](https://docu.ilias.de/go/usr/21896) - * Assignee for Issues: [wischniak](https://docu.ilias.de/go/usr/21896) - * Assignee for Security Reports: [wischniak](https://docu.ilias.de/go/usr/21896) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN soap) -[//]: # (END LearningModuleSCORM) +#### [soap](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/soap) -[//]: # (BEGIN Search) +*Belongs to:* [Web Services Overview: SOAP, REST, ...](https://docu.ilias.de/go/wiki/wpage_186_1357) -* **Search** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [githamo](https://docu.ilias.de/go/usr/115389) +* Authority to Sign off on Code Changes: [githamo](https://docu.ilias.de/go/usr/115389), [sKarki999](https://docu.ilias.de/go/usr/112949) +* Authority to Curate Test Cases: [sKarki999](https://docu.ilias.de/go/usr/112949) +* Authority to (De-)Assign Authorities: [TimoScheuer](https://docu.ilias.de/go/usr/102976) +* Assignee for Issues: [sKarki999](https://docu.ilias.de/go/usr/112949) +* Assignee for Security Reports: [sKarki999](https://docu.ilias.de/go/usr/112949) -[//]: # (END Search) +[//]: # (END soap) -[//]: # (BEGIN Session) -* **Session** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [MISSING] - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN StaticURL) -[//]: # (END Session) +#### [StaticURL](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/StaticURL) -[//]: # (BEGIN Setup) +**Status:** Unmaintained / NONE -* **Setup** - * Authority to Sign off on Conceptual Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [kunkel](https://docu.ilias.de/go/usr/115) - * Authority to (De-)Assign Authorities: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +*Belongs to:* StaticURL -[//]: # (END Setup) +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END StaticURL) -[//]: # (BEGIN ShibbolethAuthentication) -* **Shibboleth Authentication** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN StudyProgramme) -[//]: # (END ShibbolethAuthentication) +#### [StudyProgramme](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/StudyProgramme) -[//]: # (BEGIN Staff) +*Belongs to:* [Study Programme](https://docu.ilias.de/go/wiki/wpage_3391_1357) -* **Staff** - * Authority to Sign off on Conceptual Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to Sign off on Code Changes: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to Curate Test Cases: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Authority to (De-)Assign Authorities: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Assignee for Issues: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Assignee for Security Reports: [tschmitz](https://docu.ilias.de/go/usr/92591) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [lschmidt-tf](https://docu.ilias.de/go/usr/120143) +* Authority to Sign off on Code Changes: [maalers](https://docu.ilias.de/go/usr/119188), [mhomann-tf](https://docu.ilias.de/go/usr/120211) +* Authority to Curate Test Cases: [maalers](https://docu.ilias.de/go/usr/119188), [mhomann-tf](https://docu.ilias.de/go/usr/120211) +* Authority to (De-)Assign Authorities: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Issues: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Security Reports: [maalers](https://docu.ilias.de/go/usr/119188) -[//]: # (END Staff) +[//]: # (END StudyProgramme) -[//]: # (BEGIN StatisticsAndLearningProgress) -* **Statistics and Learning Progress** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN StudyProgrammeReference) -[//]: # (END StatisticsAndLearningProgress) +#### [StudyProgrammeReference](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/StudyProgrammeReference) -[//]: # (BEGIN StudyProgramme) +*Belongs to:* [Study Programme](https://docu.ilias.de/go/wiki/wpage_3391_1357) -* **Study Programme** - * Authority to Sign off on Conceptual Changes: [lschmidt-tf](https://docu.ilias.de/go/usr/120143) - * Authority to Sign off on Code Changes: [maalers](https://docu.ilias.de/go/usr/119188) - * Authority to Curate Test Cases: [maalers](https://docu.ilias.de/go/usr/119188) - * Authority to (De-)Assign Authorities: [maalers](https://docu.ilias.de/go/usr/119188) - * Assignee for Issues: [maalers](https://docu.ilias.de/go/usr/119188) - * Assignee for Security Reports: [maalers](https://docu.ilias.de/go/usr/119188) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +* Authority to Sign off on Conceptual Changes: [lschmidt-tf](https://docu.ilias.de/go/usr/120143) +* Authority to Sign off on Code Changes: [maalers](https://docu.ilias.de/go/usr/119188), [mhomann-tf](https://docu.ilias.de/go/usr/120211) +* Authority to Curate Test Cases: [maalers](https://docu.ilias.de/go/usr/119188), [mhomann-tf](https://docu.ilias.de/go/usr/120211) +* Authority to (De-)Assign Authorities: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Issues: [maalers](https://docu.ilias.de/go/usr/119188) +* Assignee for Security Reports: [maalers](https://docu.ilias.de/go/usr/119188) + +[//]: # (END StudyProgrammeReference) + + +[//]: # (BEGIN Style) + +#### [Style](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Style) + +*Belongs to:* CSS / Templates + +* Authority to Sign off on Conceptual Changes: [BettyFromHH](https://docu.ilias.de/go/usr/96573), [alinaseibt](https://docu.ilias.de/go/usr/70225) +* Authority to Sign off on Code Changes: [BettyFromHH](https://docu.ilias.de/go/usr/96573), [rotegras](https://docu.ilias.de/go/usr/88399), [padvincenzo](https://docu.ilias.de/go/usr/87189) +* Authority to Curate Test Cases: [BettyFromHH](https://docu.ilias.de/go/usr/96573) +* Authority to (De-)Assign Authorities: [BettyFromHH](https://docu.ilias.de/go/usr/96573) +* Assignee for Issues: [BettyFromHH](https://docu.ilias.de/go/usr/96573) +* Assignee for Security Reports: [BettyFromHH](https://docu.ilias.de/go/usr/96573) + +[//]: # (END Style) -[//]: # (END StudyProgramme) [//]: # (BEGIN Survey) -* **Survey** - * Authority to Sign off on Conceptual Changes: [sergiosant02](https://docu.ilias.de/go/usr/110174) - * Authority to Sign off on Code Changes: [sergiosant02](https://docu.ilias.de/go/usr/110174), [abrahammordev](https://docu.ilias.de/go/usr/110909), [juanma1331](https://docu.ilias.de/go/usr/107249) - * Authority to Curate Test Cases: [ezenzen](https://docu.ilias.de/go/usr/42910) - * Authority to (De-)Assign Authorities: [jcopado](https://docu.ilias.de/go/usr/30511) - * Assignee for Issues: [jcopado](https://docu.ilias.de/go/usr/30511) - * Assignee for Security Reports: [jcopado](https://docu.ilias.de/go/usr/30511) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Survey](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Survey) + +*Belongs to:* [Survey](https://docu.ilias.de/go/wiki/wpage_27_1357) + +* Authority to Sign off on Conceptual Changes: [jcopado](https://docu.ilias.de/go/usr/30511) +* Authority to Sign off on Code Changes: [abrahammordev](https://docu.ilias.de/go/usr/110909), [juanma1331](https://docu.ilias.de/go/usr/107249) +* Authority to Curate Test Cases: [jcopado](https://docu.ilias.de/go/usr/30511) +* Authority to (De-)Assign Authorities: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Issues: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Security Reports: [jcopado](https://docu.ilias.de/go/usr/30511) [//]: # (END Survey) + +[//]: # (BEGIN SurveyQuestionPool) + +#### [SurveyQuestionPool](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/SurveyQuestionPool) + +*Belongs to:* [Survey](https://docu.ilias.de/go/wiki/wpage_27_1357) + +* Authority to Sign off on Conceptual Changes: [jcopado](https://docu.ilias.de/go/usr/30511) +* Authority to Sign off on Code Changes: [abrahammordev](https://docu.ilias.de/go/usr/110909), [juanma1331](https://docu.ilias.de/go/usr/107249) +* Authority to Curate Test Cases: [jcopado](https://docu.ilias.de/go/usr/30511) +* Authority to (De-)Assign Authorities: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Issues: [jcopado](https://docu.ilias.de/go/usr/30511) +* Assignee for Security Reports: [jcopado](https://docu.ilias.de/go/usr/30511) + +[//]: # (END SurveyQuestionPool) + + [//]: # (BEGIN SystemCheck) -* **System Check** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [SystemCheck](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/SystemCheck) + +*Belongs to:* [System Check](https://docu.ilias.de/go/wiki/wpage_2093_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) [//]: # (END SystemCheck) + + +[//]: # (BEGIN Table) + +#### [Table](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Table) + +**Status:** Unmaintained / NONE + +*Belongs to:* Table + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Table) + + [//]: # (BEGIN Tagging) -* **Tagging** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [skaiser](https://docu.ilias.de/go/usr/17260) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Tagging](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Tagging) + +*Belongs to:* [Tagging](https://docu.ilias.de/go/wiki/wpage_140_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [skaiser](https://docu.ilias.de/go/usr/17260) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) [//]: # (END Tagging) + [//]: # (BEGIN Tasks) -* **Tasks** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Tasks](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Tasks) + +*Belongs to:* Tasks + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) [//]: # (END Tasks) + [//]: # (BEGIN Taxonomy) -* **Taxonomy** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: Tested separately in each module that supports taxonomies - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Taxonomy](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Taxonomy) + +*Belongs to:* [Taxonomy Service](https://docu.ilias.de/go/wiki/wpage_2304_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: Tested separately in each module that supports taxonomies +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) [//]: # (END Taxonomy) + [//]: # (BEGIN TermsOfService) -* **TermsOfService (aka Terms of Services)** - * Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) - * Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), - [lscharmer](https://docu.ilias.de/go/usr/87863) - * Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) - * Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) - * Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) - * Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [TermsOfService](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/TermsOfService) + +*Belongs to:* [Privacy, Terms of Service and Data Protection (incl. Terms of Service)](https://docu.ilias.de/go/wiki/wpage_4995_1357) + +* Authority to Sign off on Conceptual Changes: [mjansen](https://docu.ilias.de/go/usr/8784) +* Authority to Sign off on Code Changes: [mjansen](https://docu.ilias.de/go/usr/8784), [lscharmer](https://docu.ilias.de/go/usr/87863) +* Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) +* Authority to (De-)Assign Authorities: [mjansen (Databay AG)](https://docu.ilias.de/go/usr/8784) +* Assignee for Issues: [mjansen](https://docu.ilias.de/go/usr/8784) +* Assignee for Security Reports: [mjansen](https://docu.ilias.de/go/usr/8784) [//]: # (END TermsOfService) -[//]: # (BEGIN TestAndAssessment) -* **Test and TestQuestionPool (aka Test & Assessment)** - * Authority to Sign off on Conceptual Changes: [dstrassner](https://docu.ilias.de/go/usr/48931) - * Authority to Sign off on Code Changes: [mbecker](https://docu.ilias.de/go/usr/27266) - , [skergomard](https://docu.ilias.de/go/usr/44474) - , [dstrassner](https://docu.ilias.de/go/usr/48931) - , [tjoussen](https://docu.ilias.de/go/usr/103745) - * Authority to Curate Test Cases: [dstrassner](https://docu.ilias.de/go/usr/48931) - * Authority to (De-)Assign Authorities: [dstrassner](https://docu.ilias.de/go/usr/48931) - * Assignee for Issues: [dstrassner](https://docu.ilias.de/go/usr/48931) - * Assignee for Security Reports: [dstrassner](https://docu.ilias.de/go/usr/48931) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN Test) + +#### [Test](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Test) + +*Belongs to:* [Test & Assessment](https://docu.ilias.de/go/wiki/wpage_26_1357) + +* Authority to Sign off on Conceptual Changes: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474), [dstrassner](https://docu.ilias.de/go/usr/48931), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Authority to (De-)Assign Authorities: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Assignee for Issues: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Assignee for Security Reports: [dstrassner](https://docu.ilias.de/go/usr/48931) + +[//]: # (END Test) + + +[//]: # (BEGIN TestQuestionPool) + +#### [TestQuestionPool](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/TestQuestionPool) + +*Belongs to:* [Test & Assessment](https://docu.ilias.de/go/wiki/wpage_26_1357) + +* Authority to Sign off on Conceptual Changes: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474), [dstrassner](https://docu.ilias.de/go/usr/48931), [thojou](https://docu.ilias.de/go/usr/103745) +* Authority to Curate Test Cases: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Authority to (De-)Assign Authorities: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Assignee for Issues: [dstrassner](https://docu.ilias.de/go/usr/48931) +* Assignee for Security Reports: [dstrassner](https://docu.ilias.de/go/usr/48931) + +[//]: # (END TestQuestionPool) + + +[//]: # (BEGIN Tracking) + +#### [Tracking](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Tracking) + +*Belongs to:* [Statistics and Learning Progress](https://docu.ilias.de/go/wiki/wpage_189_1357) + +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) + +[//]: # (END Tracking) -[//]: # (END TestAndAssessment) [//]: # (BEGIN Tree) -* **Tree** - * Authority to Sign off on Conceptual Changes: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) - * Authority to Sign off on Code Changes: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) - * Authority to Curate Test Cases: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) - * Authority to (De-)Assign Authorities: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) - * Assignee for Issues: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) - * Assignee for Security Reports: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Tree](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Tree) + +*Belongs to:* Tree + +* Authority to Sign off on Conceptual Changes: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) +* Authority to Sign off on Code Changes: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) +* Authority to Curate Test Cases: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) +* Authority to (De-)Assign Authorities: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) +* Assignee for Issues: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) +* Assignee for Security Reports: [Fabian Wolf](https://docu.ilias.de/go/usr/29018) [//]: # (END Tree) -[//]: # (BEGIN UserService) -* **User (aka User Service)** - * Authority to Sign off on Conceptual Changes: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to Curate Test Cases: [skergomard](https://docu.ilias.de/go/usr/44474) - * Authority to (De-)Assign Authorities: [skergomard](https://docu.ilias.de/go/usr/44474) - * Assignee for Issues: [skergomard](https://docu.ilias.de/go/usr/44474) - * Assignee for Security Reports: [skergomard](https://docu.ilias.de/go/usr/44474) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN UI) + +#### [UI](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/UI) + +*Belongs to:* UI-Service + +* Authority to Sign off on Conceptual Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Sign off on Code Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Authority to Curate Test Cases: [Fabian](https://docu.ilias.de/go/usr/27631) +* Authority to (De-)Assign Authorities: [tfuhrer](https://docu.ilias.de/go/usr/81947), [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Assignee for Issues: [oliver.samoila](https://docu.ilias.de/go/usr/26160) +* Assignee for Security Reports: [oliver.samoila](https://docu.ilias.de/go/usr/26160) + +[//]: # (END UI) + + +[//]: # (BEGIN UI_) + +#### [UI_](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/UI_) + +**Status:** Unmaintained / NONE + +*Belongs to:* UI_ + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END UI_) + + +[//]: # (BEGIN UIComponent) + +#### [UIComponent](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/UIComponent) + +**Status:** Unmaintained / NONE + +*Belongs to:* UIComponent + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END UIComponent) -[//]: # (END UserService) [//]: # (BEGIN UICore) -* **UICore** - * Authority to Sign off on Conceptual Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Authority to Sign off on Code Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947) - , [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Curate Test Cases: [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Authority to (De-)Assign Authorities: [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Assignee for Issues: [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Assignee for Security Reports: [tfuhrer](https://docu.ilias.de/go/usr/81947) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [UICore](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/UICore) + +*Belongs to:* UICore + +* Authority to Sign off on Conceptual Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Authority to Sign off on Code Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Authority to (De-)Assign Authorities: [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Assignee for Issues: [tfuhrer](https://docu.ilias.de/go/usr/81947) +* Assignee for Security Reports: [tfuhrer](https://docu.ilias.de/go/usr/81947) [//]: # (END UICore) -[//]: # (BEGIN UI-Service) -* **UI-Service** - * Authority to Sign off on Conceptual Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Sign off on Code Changes: [tfuhrer](https://docu.ilias.de/go/usr/81947), [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Authority to Curate Test Cases: [Fabian](https://docu.ilias.de/go/usr/27631) - * Authority to (De-)Assign Authorities: [tfuhrer](https://docu.ilias.de/go/usr/81947), [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Assignee for Issues: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Assignee for Security Reports: [oliver.samoila](https://docu.ilias.de/go/usr/26160) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN User) + +#### [User](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/User) + +*Belongs to:* [User Service](https://docu.ilias.de/go/wiki/wpage_332_1357) + +* Authority to Sign off on Conceptual Changes: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to Sign off on Code Changes: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to Curate Test Cases: [skergomard](https://docu.ilias.de/go/usr/44474) +* Authority to (De-)Assign Authorities: [skergomard](https://docu.ilias.de/go/usr/44474) +* Assignee for Issues: [skergomard](https://docu.ilias.de/go/usr/44474) +* Assignee for Security Reports: [skergomard](https://docu.ilias.de/go/usr/44474) + +[//]: # (END User) + + +[//]: # (BEGIN Utilities) + +#### [Utilities](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Utilities) + +**Status:** Unmaintained / NONE + +*Belongs to:* Utilities + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Utilities) + + +[//]: # (BEGIN Verification) + +#### [Verification](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Verification) + +**Status:** Unmaintained / NONE + +*Belongs to:* Verification + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE + +[//]: # (END Verification) -[//]: # (END UI-Service) [//]: # (BEGIN VirusScanner) -* **Virus Scanner** - * Authority to Sign off on Conceptual Changes: [rschenk](https://docu.ilias.de/go/usr/18065) - * Authority to Sign off on Code Changes: [rschenk](https://docu.ilias.de/go/usr/18065) - * Authority to Curate Test Cases: [rschenk](https://docu.ilias.de/go/usr/18065) - * Authority to (De-)Assign Authorities: [rschenk (Databay AG)](https://docu.ilias.de/go/usr/18065) - * Assignee for Issues: [rschenk](https://docu.ilias.de/go/usr/18065) - * Assignee for Security Reports: [rschenk](https://docu.ilias.de/go/usr/18065) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [VirusScanner](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/VirusScanner) + +**Status:** Unmaintained / NONE + +*Belongs to:* Virus Scanner + +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE [//]: # (END VirusScanner) + [//]: # (BEGIN WebAccessChecker) -* **Web Access Checker** - * Authority to Sign off on Conceptual Changes: MISSING - * Authority to Sign off on Code Changes: [ukohnle](https://docu.ilias.de/go/usr/21855) - * Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) - * Authority to (De-)Assign Authorities: MISSING - * Assignee for Issues: MISSING - * Assignee for Security Reports: MISSING - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [WebAccessChecker](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/WebAccessChecker) + +*Belongs to:* [Security (incl. Web Access Checker)](https://docu.ilias.de/go/wiki/wpage_866_1357) + +* Authority to Sign off on Conceptual Changes: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) +* Authority to Sign off on Code Changes: [fwolf-ilias](https://docu.ilias.de/go/usr/29018), [ukohnle](https://docu.ilias.de/go/usr/21855) +* Authority to Curate Test Cases: [AUTHOR MISSING](https://docu.ilias.de/go/pg/64423_4793) +* Authority to (De-)Assign Authorities: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) +* Assignee for Issues: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) +* Assignee for Security Reports: [fwolf-ilias](https://docu.ilias.de/go/usr/29018) [//]: # (END WebAccessChecker) + [//]: # (BEGIN WebDAV) -* **WebDAV** - * Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to Sign off Testcase Changes: [fschmid](https://docu.ilias.de/go/usr/21087) - * Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) - * Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [WebDAV](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/WebDAV) + +*Belongs to:* [WebDAV](https://docu.ilias.de/go/wiki/wpage_5484_1357) + +* Authority to Sign off on Conceptual Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Sign off on Code Changes: [fschmid](https://docu.ilias.de/go/usr/21087) +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Issues: [fschmid](https://docu.ilias.de/go/usr/21087) +* Assignee for Security Reports: [fschmid](https://docu.ilias.de/go/usr/21087) [//]: # (END WebDAV) -[//]: # (BEGIN Weblink) -* **Weblink** - * Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) - * Authority to Curate Test Cases: [nadine.bauser](https://docu.ilias.de/go/usr/34662) - * Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) - * Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN WebResource) + +#### [WebResource](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/WebResource) -[//]: # (END Weblink) +*Belongs to:* [Weblink](https://docu.ilias.de/go/wiki/wpage_1420_1357) -[//]: # (BEGIN Webservices) +* Authority to Sign off on Conceptual Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Sign off on Code Changes: [smeyer](https://docu.ilias.de/go/usr/191) +* Authority to Curate Test Cases: [nadine.bauser](https://docu.ilias.de/go/usr/34662) +* Authority to (De-)Assign Authorities: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Issues: [smeyer](https://docu.ilias.de/go/usr/191) +* Assignee for Security Reports: [smeyer](https://docu.ilias.de/go/usr/191) -* **Webservices** - * Authority to Sign off on Conceptual Changes: [githamo](https://docu.ilias.de/go/usr/115389) - * Authority to Sign off on Code Changes: [githamo](https://docu.ilias.de/go/usr/115389), [sKarki999](https://docu.ilias.de/go/usr/112949) - * Authority to Curate Test Cases: [sKarki999](https://docu.ilias.de/go/usr/112949) - * Authority to (De-)Assign Authorities: [TimoScheuer](https://docu.ilias.de/go/usr/102976) - * Assignee for Issues: [sKarki999](https://docu.ilias.de/go/usr/112949) - * Assignee for Security Reports: [sKarki999](https://docu.ilias.de/go/usr/112949) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (END WebResource) -[//]: # (END Webservices) -[//]: # (BEGIN WhoIsOnline) +[//]: # (BEGIN WebServices) -* **Who is online?** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: [atoedt](https://docu.ilias.de/go/usr/3139) - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [WebServices](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/WebServices) + +*Belongs to:* [Web Services Overview: SOAP, REST, ...](https://docu.ilias.de/go/wiki/wpage_186_1357) + +* Authority to Sign off on Conceptual Changes: [githamo](https://docu.ilias.de/go/usr/115389) +* Authority to Sign off on Code Changes: [githamo](https://docu.ilias.de/go/usr/115389), [sKarki999](https://docu.ilias.de/go/usr/112949) +* Authority to Curate Test Cases: [sKarki999](https://docu.ilias.de/go/usr/112949) +* Authority to (De-)Assign Authorities: [TimoScheuer](https://docu.ilias.de/go/usr/102976) +* Assignee for Issues: [sKarki999](https://docu.ilias.de/go/usr/112949) +* Assignee for Security Reports: [sKarki999](https://docu.ilias.de/go/usr/112949) + +[//]: # (END WebServices) -[//]: # (END WhoIsOnline) [//]: # (BEGIN Wiki) -* **Wiki** - * Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) - * Authority to Curate Test Cases: n.n., Uni Köln - * Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) - * Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +#### [Wiki](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Wiki) + +*Belongs to:* [Wiki](https://docu.ilias.de/go/wiki/wpage_34_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: n.n., Uni Köln +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) [//]: # (END Wiki) -[//]: # (BEGIN xAPIAndcmi5) -* **xAPI/cmi5** - * Authority to Sign off on Conceptual Changes: [ukohnle](https://docu.ilias.de/go/usr/21855) - * Authority to Sign off on Code Changes: [ukohnle](https://docu.ilias.de/go/usr/21855) - * Authority to Curate Test Cases: [ukohnle](https://docu.ilias.de/go/usr/21855) - * Authority to (De-)Assign Authorities: [ukohnle](https://docu.ilias.de/go/usr/21855) - * Assignee for Issues: [ukohnle](https://docu.ilias.de/go/usr/21855) - * Assignee for Security Reports: [ukohnle](https://docu.ilias.de/go/usr/21855) - * Unit-specific Guidelines, Rules, and Regulations: [LINK MISSING]('') +[//]: # (BEGIN WOPI) + +#### [WOPI](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/WOPI) + +*Belongs to:* WOPI + +* Authority to Sign off on Conceptual Changes: fschmid +* Authority to Sign off on Code Changes: fschmid +* Authority to Curate Test Cases: fschmid +* Authority to (De-)Assign Authorities: fschmid +* Assignee for Issues: fschmid +* Assignee for Security Reports: fschmid + +[//]: # (END WOPI) + + +[//]: # (BEGIN WorkspaceFolder) + +#### [WorkspaceFolder](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/WorkspaceFolder) + +*Belongs to:* [Personal and Shared Resources](https://docu.ilias.de/go/wiki/wpage_1338_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END WorkspaceFolder) + + +[//]: # (BEGIN WorkspaceRootFolder) + +#### [WorkspaceRootFolder](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/WorkspaceRootFolder) + +*Belongs to:* [Personal and Shared Resources](https://docu.ilias.de/go/wiki/wpage_1338_1357) + +* Authority to Sign off on Conceptual Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Sign off on Code Changes: [akill](https://docu.ilias.de/go/usr/149) +* Authority to Curate Test Cases: [akill](https://docu.ilias.de/go/usr/149) +* Authority to (De-)Assign Authorities: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Issues: [akill](https://docu.ilias.de/go/usr/149) +* Assignee for Security Reports: [akill](https://docu.ilias.de/go/usr/149) + +[//]: # (END WorkspaceRootFolder) + + +[//]: # (BEGIN Xml) + +#### [Xml](https://github.com/ILIAS-eLearning/ILIAS/tree/trunk/components/ILIAS/Xml) -[//]: # (END xAPIAndcmi5) +**Status:** Unmaintained / NONE -## Unmaintained Components +*Belongs to:* Xml -The following directories are currently unmaintained: +* Authority to Sign off on Conceptual Changes: NONE +* Authority to Sign off on Code Changes: NONE +* Authority to Curate Test Cases: NONE +* Authority to (De-)Assign Authorities: NONE +* Assignee for Issues: NONE +* Assignee for Security Reports: NONE -* ILIAS/Context -* ILIAS/CSV -* ILIAS/EventHandling +[//]: # (END Xml) diff --git a/scripts/maintenance-overhaul/component_aliases.json b/scripts/maintenance-overhaul/component_aliases.json new file mode 100644 index 000000000000..641fa9c2cc80 --- /dev/null +++ b/scripts/maintenance-overhaul/component_aliases.json @@ -0,0 +1,43 @@ +{ + "Booking Tool": "BookingPool", + "cmi5/xAPI Object": "xAPIAndcmi5", + "My Workspace": "PersonalAndSharedResources", + "folder_aliases": { + "AdministrativeNotification": "AdministrativeNotifications", + "Context": "InitialisationService", + "DidacticTemplate": "DidacticTemplates", + "Init": "InitialisationService", + "StudyProgrammeReference": "StudyProgramme" + }, + "display_groups": { + "AuthApache": "Login, Auth & Registration", + "AuthShibboleth": "Login, Auth & Registration", + "Authentication": "Login, Auth & Registration", + "BackgroundTasks_": "Background Tasks", + "BookingManager": "Booking Pool", + "DataProtection": "Privacy, Terms of Service and Data Protection (incl. Terms of Service)", + "Feeds": "News - RSS - Webfeeds", + "GlobalScreen_": "Global Screen Service", + "LDAP": "Login, Auth & Registration", + "LTIConsumer": "LTI", + "LTIProvider": "LTI", + "MediaObjects": "Media Pools and Media Objects", + "MediaPool": "Media Pools and Media Objects", + "News": "News - RSS - Webfeeds", + "OpenIdConnect": "Login, Auth & Registration", + "PrivacySecurity": "Privacy, Terms of Service and Data Protection (incl. Terms of Service)", + "Registration": "Login, Auth & Registration", + "ResourceStorage": "ILIAS Resource Storage Service", + "Saml": "Login, Auth & Registration", + "Session": "Session (Course & Group)", + "TermsOfService": "Privacy, Terms of Service and Data Protection (incl. Terms of Service)", + "WebAccessChecker": "Security (incl. Web Access Checker)", + "WebServices": "Web Services Overview: SOAP, REST, ..." + }, + "_skipped": [ + "CSV", + "IRSS", + "SOAP", + "WOPI" + ] +} diff --git a/scripts/maintenance-overhaul/extract_feature_wiki_wpage_ids.py b/scripts/maintenance-overhaul/extract_feature_wiki_wpage_ids.py new file mode 100644 index 000000000000..4f02f1f5629d --- /dev/null +++ b/scripts/maintenance-overhaul/extract_feature_wiki_wpage_ids.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 +""" +Extrahiert stabile Feature-Wiki-URLs (wpage_XXX_1357) für alle Wiki-Seiten. + +Strategie: Für jede Seite wird die Wiki-Seite per HTTP geladen und der Link +des Buttons „Link in Zwischenablage kopieren“ aus dem JavaScript (copyText) +ausgelesen – das ist die stabile URL. + +1) Seitenliste: aus der Overview-HTML (gotoPage-Links) oder aus --pages. +2) Pro Seite: GET gotoPage-URL → im Response-HTML nach copyText("...wpage_XXX_1357") suchen. +3) Ergebnis: feature_wiki_wpage_ids.json + +Verwendung: + python extract_feature_wiki_wpage_ids.py [pfad/zur/Overview.html] + python extract_feature_wiki_wpage_ids.py --pages "Taxonomy_Service,Forum,Accessibility" + +Ausgabe: feature_wiki_wpage_ids.json im Skript-Verzeichnis. +""" + +import json +import re +import sys +import time +import urllib.parse +import urllib.request +from pathlib import Path + +# Regex: Permalink aus dem „Link in Zwischenablage kopieren“-Handler (copyText im JS) +PERMLINK_PATTERN = re.compile( + r'copyText\s*\(\s*"(https:\\/\\/docu\.ilias\.de\\/go\\/wiki\\/wpage_(\d+)_1357)"\s*\)', + re.IGNORECASE, +) +GOTO_PAGE_PATTERN = re.compile( + r"cmd=gotoPage&ref_id=1357&page=([^&\"]+)", + re.IGNORECASE, +) +STABLE_LINK_PATTERN = re.compile( + r'href="https://docu\.ilias\.de/go/wiki/wpage_(\d+)_1357"[^>]*>([^<]+)', + re.IGNORECASE, +) + +BASE_GOTO = ( + "https://docu.ilias.de/ilias.php" + "?baseClass=ilwikihandlergui&cmdNode=14x:rn&cmdClass=ilobjwikigui" + "&cmd=gotoPage&ref_id=1357&page={page}&from_page=Overview" +) +SCRIPT_DIR = Path(__file__).resolve().parent +DEFAULT_HTML = Path(__file__).resolve().parents[2] / "onlylocal" / "Seite: Feature Wiki: Overview: DOCU.html" +OUTPUT_JSON = SCRIPT_DIR / "feature_wiki_wpage_ids.json" +REQUEST_DELAY_S = 0.5 + + +def link_text_to_page_param(text: str) -> str: + """Link-Text → URL-page-Parameter (z.B. 'Taxonomy Service' → 'Taxonomy_Service').""" + param = text.strip().replace(" ", "_") + return urllib.parse.quote(param, safe="_") + + +def extract_page_names_from_html(html_path: Path) -> set: + """Sammelt alle page= Werte aus gotoPage-Links in der Overview-HTML.""" + text = html_path.read_text(encoding="utf-8", errors="replace") + return set(m.group(1) for m in GOTO_PAGE_PATTERN.finditer(text)) + + +def extract_stable_links_from_html(html_path: Path) -> dict: + """Liest bereits vorhandene wpage-Links aus der HTML-Datei (Sidebar).""" + text = html_path.read_text(encoding="utf-8", errors="replace") + mapping = {} + for m in STABLE_LINK_PATTERN.finditer(text): + wpage_id, link_text = int(m.group(1)), m.group(2) + mapping[link_text_to_page_param(link_text)] = wpage_id + return mapping + + +def fetch_permalink_from_page(page_param: str, opener: urllib.request.OpenerDirector) -> int | None: + """ + Lädt die Wiki-Seite per gotoPage-URL und liest den Permalink + aus dem Button „Link in Zwischenablage kopieren“ (copyText im HTML). + """ + # page_param kann aus der HTML schon encodiert sein (z.B. Test_%26_Assessment) + url = BASE_GOTO.format(page=page_param) + try: + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0 (compatible; ILIAS-maintenance-extractor/1.0)"}) + with opener.open(req, timeout=20) as r: + html = r.read().decode("utf-8", errors="replace") + match = PERMLINK_PATTERN.search(html) + if match: + return int(match.group(2)) + except Exception: + pass + return None + + +def main() -> int: + import argparse + parser = argparse.ArgumentParser(description="Extrahiert stabile Feature-Wiki wpage-IDs.") + parser.add_argument( + "html_path", + nargs="?", + default=None, + help="Pfad zur gespeicherten Overview-HTML (für Seitenliste + Sidebar-Links)", + ) + parser.add_argument( + "--pages", + type=str, + default=None, + help="Komma-getrennte page-Parameter (z.B. Taxonomy_Service,Forum). Überschreibt Seitenliste aus HTML.", + ) + parser.add_argument( + "--no-fetch", + action="store_true", + help="Nur aus Overview-HTML extrahieren, keine Seiten per HTTP abfragen.", + ) + args = parser.parse_args() + + html_path = Path(args.html_path) if args.html_path else DEFAULT_HTML + mapping = {} + + if html_path.is_file(): + mapping.update(extract_stable_links_from_html(html_path)) + page_names = extract_page_names_from_html(html_path) + if not args.pages: + print(f"Seitenliste aus {html_path.name}: {len(page_names)} Einträge.") + else: + if not args.pages: + print("Weder HTML-Datei gefunden noch --pages angegeben.", file=sys.stderr) + return 1 + page_names = set() + + if args.pages: + page_names = {p.strip() for p in args.pages.split(",") if p.strip()} + print(f"Seitenliste aus --pages: {len(page_names)} Einträge.") + + if not args.no_fetch and page_names: + opener = urllib.request.build_opener(urllib.request.HTTPRedirectHandler()) + total = len(page_names) + for i, page_param in enumerate(sorted(page_names), 1): + if page_param in mapping: + continue + wpage_id = fetch_permalink_from_page(page_param, opener) + if wpage_id is not None: + mapping[page_param] = wpage_id + print(f" [{i}/{total}] {page_param} → wpage_{wpage_id}_1357") + else: + print(f" [{i}/{total}] {page_param} → (Permalink nicht gefunden)", file=sys.stderr) + time.sleep(REQUEST_DELAY_S) + + OUTPUT_JSON.write_text(json.dumps(mapping, indent=2, sort_keys=True), encoding="utf-8") + print(f"\nGespeichert: {OUTPUT_JSON} ({len(mapping)} Einträge)") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/maintenance-overhaul/feature_wiki_wpage_ids.json b/scripts/maintenance-overhaul/feature_wiki_wpage_ids.json new file mode 100644 index 000000000000..e42702494916 --- /dev/null +++ b/scripts/maintenance-overhaul/feature_wiki_wpage_ids.json @@ -0,0 +1,136 @@ +{ + "Abandoned_Features": 1305, + "Accepted_for_Trunk": 8647, + "Accessibility": 30, + "Administration": 246, + "Administrative_Notifications": 7290, + "Background_Tasks": 4383, + "Badges": 4203, + "Bibliographic_List_Item": 2553, + "Blog": 1448, + "Booking_Pool": 133, + "Bookmarks": 217, + "Calendar": 23, + "Category_and_Repository": 106, + "Certificate": 66, + "Chat": 37, + "Cloud_Object": 2652, + "Competence_Management": 1161, + "Components_Framework": 7285, + "Contacts": 3740, + "Content_Page": 5369, + "Contributors": 214, + "Course_Management": 13, + "Cron_Service": 2357, + "Dashboard": 6092, + "Data_Collection": 2340, + "Database": 12, + "Developers": 318, + "Development_Support": 198, + "ECS_Interface": 1132, + "Employee_Talk": 7784, + "Exercise": 28, + "Export": 91, + "Favourites": 6091, + "File": 4, + "Forum": 35, + "Global_Cache": 6435, + "Global_Screen_Service": 6079, + "Glossary": 121, + "Group": 39, + "Guidelines": 979, + "How_To_Suggest_A_New_Feature": 788, + "How_to_suggest_a_new_feature": 788, + "ILIAS_10": 7600, + "ILIAS_11": 8411, + "ILIAS_12": 8721, + "ILIAS_4.1": 340, + "ILIAS_4.2": 537, + "ILIAS_4.3": 1177, + "ILIAS_4.4": 1865, + "ILIAS_5.0": 2561, + "ILIAS_5.1": 3225, + "ILIAS_5.2": 3739, + "ILIAS_5.3": 4227, + "ILIAS_5.4": 4816, + "ILIAS_6": 5457, + "ILIAS_7": 5956, + "ILIAS_8": 6443, + "ILIAS_9": 7169, + "ILIAS_Page_Editor": 2141, + "ILIAS_Resource_Storage_Service": 6729, + "Individual_Assessment": 4226, + "Info_Page": 2095, + "Interfaces": 79, + "Item_Groups": 7968, + "JourFixe-2026-02-09": 8838, + "Jour_Fixe_Agendas": 391, + "LTI": 4335, + "Language_Handling": 211, + "Learning_Communities": 3741, + "Learning_History": 5454, + "Learning_Module_HTML": 135, + "Learning_Module_ILIAS": 33, + "Learning_Module_SCORM": 32, + "Learning_Sequence": 5557, + "Logging": 148, + "Login%2C_Auth_%26_Registration": 19, + "Mail": 36, + "Main_Menu": 6549, + "Maps": 2909, + "Media_Pools_and_Media_Objects": 83, + "Mediacast": 258, + "Metadata": 973, + "Mobile_Support": 3997, + "News_-_RSS_-_Webfeeds": 38, + "Notes_and_Comments": 31, + "Notifications": 1754, + "Object_Templates": 1394, + "Online_Help": 415, + "Organisational_Units": 2265, + "Other_Tools": 516, + "Overview": 1, + "PDF": 4837, + "Performance": 202, + "Permanent_Links": 575, + "Personal_Desktop": 472, + "Personal_and_Shared_Resources": 1338, + "Plugin_Slots": 470, + "Plugins": 2442, + "Poll": 2590, + "Portfolio": 353, + "Precondition_Handling": 126, + "Privacy%2C_Terms_of_Service_and_Data_Protection": 4995, + "Projects": 7126, + "RBAC": 2, + "Rating": 2784, + "Ready_for_Jour_Fixe": 8410, + "SCORM_Online_Editor": 2176, + "Search": 11, + "Security": 866, + "Session_%28Course_%26_Group%29": 2172, + "Setup": 40, + "Staff": 4829, + "Statistics_and_Learning_Progress": 189, + "Streamlining": 4005, + "Study_Programme": 3391, + "Suggestions": 8646, + "Survey": 27, + "System_Check": 2093, + "Tagging": 140, + "Task_Service": 5108, + "Taxonomy_Service": 2304, + "Test_%26_Assessment": 26, + "UI_Kitchen_Sink": 3852, + "Usability": 16, + "User_Interface": 29, + "User_Service": 332, + "WebDAV": 5484, + "Web_Services_Overview%3A_SOAP%2C_REST%2C_...": 186, + "Weblink": 1420, + "Who_is_online%3F": 293, + "Wiki": 34, + "Workflow_Engine": 3104, + "eLAIX": 6152, + "xAPI": 2921 +} \ No newline at end of file diff --git a/scripts/maintenance-overhaul/generate_maintenance_final.py b/scripts/maintenance-overhaul/generate_maintenance_final.py new file mode 100644 index 000000000000..5144f9ee9e18 --- /dev/null +++ b/scripts/maintenance-overhaul/generate_maintenance_final.py @@ -0,0 +1,1079 @@ +#!/usr/bin/env python3 +""" +Generates docs/development/maintenance.md. + +Authority source is always maintenance_trunk.md (never the generated output). +If a folder has no entry in maintenance_trunk.md, its maintenance.json is used +as fallback. The --branch flag controls only which branch appears in GitHub +links (e.g. release_10, release_11, trunk). +""" + +import argparse +import difflib +import json +import re +import sys +from collections import defaultdict +from pathlib import Path + +FUZZY_MATCH_RATIO_THRESHOLD = 0.82 +AUTHORITY_SOURCE_NAME = "maintenance_trunk.md" +OUTPUT_NAME = "maintenance.md" +GITHUB_REPO_TREE = "https://github.com/ILIAS-eLearning/ILIAS/tree" + +# ILIAS Kategorien-Mapping +ILIAS_CATEGORIES = { + 1: "General Topics", + 2: "Accessibility, Usability and User Interface", + 3: "ILIAS core", + 4: "General Services", + 5: "Container Objects", + 6: "Communication and Syndication", + 7: "Learning and Content Objects", + 8: "Evaluation, Feedback and Testing", + 9: "Administration" +} + +# Feature Wiki URLs für jede Kategorie +FEATURE_WIKI_URLS = { + 1: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#1_General_Topics", + 2: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#2_Accessibility_Usability_and_User_Interface", + 3: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#3_ILIAS_core", + 4: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#4_General_Services", + 5: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#5_Container_Objects", + 6: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#6_Communication_and_Syndication", + 7: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#7_Learning_and_Content_Objects", + 8: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#8_Evaluation_Feedback_and_Testing", + 9: "https://docu.ilias.de/ilias.php?baseClass=ilwikihandlergui&cmdNode=14x:rn:150&cmdClass=ilWikiPageGUI&cmd=preview&ref_id=1357&page=Overview#9_Administration" +} + +# ILIAS Unterkomponenten-Mapping (von Komponentenname zu Kategorie) +# Diese Liste basiert auf der ILIAS-Dokumentation +ILIAS_SUBCOMPONENTS = { + # 1. General Topics + "Development Support": 1, + "Guidelines": 1, + "Performance": 1, + "Privacy, Terms of Service and Data Protection (incl. Terms of Service)": 1, + "Privacy, Terms of Service and Data Protection": 1, + "Security (incl. Web Access Checker)": 1, + "Streamlining": 1, + + # 2. Accessibility, Usability and User Interface + "Accessibility": 2, + "Mobile Support": 2, + "UI Kitchen Sink": 2, + "Usability": 2, + "User Interface": 2, + + # 3. ILIAS core + "Components Framework": 3, + "Cron Service": 3, + "Database": 3, + "ILIAS Resource Storage Service": 3, + "Interfaces": 3, + "Language Handling": 3, + "Logging": 3, + "Object Templates": 3, + "Permanent Links": 3, + "RBAC and Permissions": 3, + "Web Services Overview: SOAP, REST, ...": 3, + "Web Services Overview": 3, + + # 4. General Services + "Background Tasks": 4, + "Badges": 4, + "Calendar": 4, + "Certificate": 4, + "Competence Management": 4, + "Contacts": 4, + "Dashboard": 4, + "ECS Interface – E-Learning Community Server": 4, + "ECS Interface": 4, + "Export": 4, + "Favourites": 4, + "Global Screen Service": 4, + "Global Cache": 4, + "ILIAS Page Editor": 4, + "Info Page": 4, + "Learning History": 4, + "Main Menu": 4, + "Maps": 4, + "Metadata": 4, + "Notes and Comments": 4, + "Online Help": 4, + "Organisational Units": 4, + "Personal and Shared Resources": 4, + "Portfolio": 4, + "Precondition Handling": 4, + "Rating": 4, + "Search": 4, + "Staff": 4, + "Statistics and Learning Progress": 4, + "Tagging": 4, + "Task Service": 4, + "Taxonomy Service": 4, + "User Service": 4, + "WebDAV": 4, + "Who is online?": 4, + + # 5. Container Objects + "Category and Repository": 5, + "Course Management": 5, + "Group": 5, + "Item Groups": 5, + "Learning Sequence": 5, + "Session (Course & Group)": 5, + "Session": 5, + "Study Programme": 5, + + # 6. Communication and Syndication + "Administrative Notifications": 6, + "Chat": 6, + "Forum": 6, + "Learning Communities": 6, + "Mail": 6, + "News - RSS - Webfeeds": 6, + "News": 6, + "Notification": 6, + "Notifications": 6, + + # 7. Learning and Content Objects + "Bibliographic List Item": 7, + "Blog": 7, + "Booking Pool": 7, + "Content Page": 7, + "Data Collection": 7, + "File": 7, + "Glossary": 7, + "Learning Module HTML": 7, + "Learning Module ILIAS": 7, + "Learning Module SCORM": 7, + "LTI": 7, + "Media Pools and Media Objects": 7, + "Mediacast": 7, + "Weblink": 7, + "Wiki": 7, + "xAPI": 7, + + # 8. Evaluation, Feedback and Testing + "Employee Talk": 8, + "Exercise": 8, + "Individual Assessment": 8, + "Poll": 8, + "Survey": 8, + "Test & Assessment": 8, + + # 9. Administration + "Administration": 9, + "Login, Auth & Registration": 9, + "Setup": 9, + "System Check": 9, + "User Administration": 9, +} + +# Mapping von folder-Namen zu Komponenten-Namen (basierend auf belong_to_component) +FOLDER_TO_COMPONENT = { + # Test & Assessment + "Test": "Test & Assessment", + "TestQuestionPool": "Test & Assessment", + + # Survey + "Survey": "Survey", + "SurveyQuestionPool": "Survey", + + # Login, Auth & Registration + "Authentication": "Login, Auth & Registration", + "AuthApache": "Login, Auth & Registration", + "AuthShibboleth": "Shibboleth Authentication", + "Registration": "Login, Auth & Registration", + "CAS": "Login, Auth & Registration", + "LDAP": "Login, Auth & Registration", + "OpenIdConnect": "Login, Auth & Registration", + "Saml": "SAML", + "SOAPAuth": "SOAP", + "Init": "Login, Auth & Registration", + + # Category and Repository + "Category": "Category and Repository", + "CategoryReference": "Category and Repository", + "Container": "Category and Repository", + "ContainerReference": "Category and Repository", + "Folder": "Category and Repository", + "Repository": "Category and Repository", + "RootFolder": "Category and Repository", + + # Course Management + "Course": "Course Management", + "CourseReference": "Course Management", + + # Group + "Group": "Group", + "GroupReference": "Group", + + # Chat (nur Chatroom + OnScreenChat; Notifications ist eigene Komponente) + "Chatroom": "Chat", + "OnScreenChat": "Chat", + + # Forum + "Forum": "Forum", + "Html": "Forum", + + # General Kiosk-Mode + "KioskMode": "General Kiosk-Mode", + "KioskMode_": "General Kiosk-Mode", + + # GlobalScreen + "GlobalScreen": "GlobalScreen", + "GlobalScreen_": "GlobalScreen", + + # Learning Module SCORM + "Scorm2004": "Learning Module SCORM", + "ScormAicc": "Learning Module SCORM", + + # My Workspace + "PersonalWorkspace": "My Workspace", + "WorkspaceFolder": "My Workspace", + "WorkspaceRootFolder": "My Workspace", + + # Administration + "Administration": "Administration", + "SystemFolder": "Administration", + + # ECS Interface + "RemoteCategory": "ECS Interface", + "RemoteCourse": "ECS Interface", + "RemoteFile": "ECS Interface", + "RemoteGlossary": "ECS Interface", + "RemoteGroup": "ECS Interface", + "RemoteLearningModule": "ECS Interface", + "RemoteTest": "ECS Interface", + "RemoteWiki": "ECS Interface", + + # Metadata + "ADT": "Metadata", + "AdvancedMetaData": "Metadata", + "MetaData": "Metadata", + + # Background Tasks + "BackgroundTasks": "Background Tasks", + "BackgroundTasks_": "Background Tasks", + + # Global Cache + "GlobalCache": "Global Cache", + "GlobalCache_": "Global Cache", +} + +def parse_maintenance_json(file_path): + """Parse eine maintenance.json Datei""" + try: + with open(file_path, 'r', encoding='utf-8') as f: + return json.load(f) + except Exception: + return None + +def normalize_name(name): + """Normalisiere einen Component-Namen für flexiblen Vergleich""" + if not name: + return "" + # Konvertiere zu lowercase, entferne Leerzeichen und Sonderzeichen + normalized = name.lower().strip() + # Entferne häufige Sonderzeichen und normalisiere Leerzeichen + normalized = re.sub(r'[_\s\-\.]+', '', normalized) + return normalized + + +def _fuzzy_match_folder_to_old_block(folder_name_normalized: str, old_format_blocks: list[tuple[str, list[str]]]) -> str | None: + """ + Finde den besten passenden Alter-Format-Block für einen Ordner (normalisierter Name). + old_format_blocks: Liste von (comment_name, [normalized_candidates]) – z. B. comment_name + component_name normalisiert. + Nutzt SequenceMatcher-Ratio; nur ein eindeutiger Treffer oberhalb FUZZY_MATCH_RATIO_THRESHOLD wird zurückgegeben. + """ + if not folder_name_normalized or not old_format_blocks: + return None + best_comment = None + best_ratio = FUZZY_MATCH_RATIO_THRESHOLD + second_ratio = 0.0 + for comment_name, candidates in old_format_blocks: + block_best = 0.0 + for c in candidates: + if not c: + continue + block_best = max(block_best, difflib.SequenceMatcher(None, folder_name_normalized, c).ratio()) + if block_best > best_ratio: + second_ratio = best_ratio + best_ratio = block_best + best_comment = comment_name + elif block_best > second_ratio: + second_ratio = block_best + # Eindeutig: bester Treffer mind. 0.05 besser als der zweite + if best_comment is not None and (best_ratio - second_ratio) >= 0.05: + return best_comment + return best_comment if best_comment is not None and second_ratio < FUZZY_MATCH_RATIO_THRESHOLD else None + +def extract_component_from_md(md_content): + """Extrahiere alle Components aus der maintenance.md""" + components = {} + + # Pattern für Component-Blöcke + pattern = r'\[//\]: # \(BEGIN (\w+)\)(.*?)\[//\]: # \(END \1\)' + + for match in re.finditer(pattern, md_content, re.DOTALL): + comment_name = match.group(1) + content = match.group(2) + + # Extrahiere Komponentenname + component_match = re.search(r'\* \*\*([^*]+)\*\*', content) + if not component_match: + continue + + component_name = component_match.group(1).strip() + + # Extrahiere Authorities + auth_data = { + 'conceptual': [], + 'code': [], + 'test_cases': [], + 'tester': [], + 'assign_authorities': [], + 'issues': [], + 'security_reports': [], + 'guidelines': "[LINK MISSING]('')" + } + + # Parse Authorities - verbesserte Version für mehrzeilige Authorities + # Verwende Regex, um alle Authorities direkt zu extrahieren + full_text = content + + # Conceptual Changes + conceptual_match = re.search(r'\* Authority to Sign off on Conceptual Changes:(.*?)(?=\* Authority|\* Tester|\* Assignee|\* Unit-specific|$)', full_text, re.DOTALL) + if conceptual_match: + auth_data['conceptual'] = extract_links_from_line(conceptual_match.group(1)) + + # Code Changes + code_match = re.search(r'\* Authority to Sign off on Code Changes:(.*?)(?=\* Authority|\* Tester|\* Assignee|\* Unit-specific|$)', full_text, re.DOTALL) + if code_match: + auth_data['code'] = extract_links_from_line(code_match.group(1)) + + # Test Cases (Links oder Fallback: Plain-Text wie "FH Aachen", "n.n., Uni Köln", "MISSING") + test_cases_match = re.search(r'\* Authority to Curate Test Cases:(.*?)(?=\* Authority|\* Tester|\* Assignee|\* Unit-specific|$)', full_text, re.DOTALL) + if test_cases_match: + raw = test_cases_match.group(1).strip().replace('\n', ' ').strip() + links = extract_links_from_line(raw) + auth_data['test_cases'] = links if links else ([raw] if raw else []) + + # Tester (eigenes Feld, getrennt von Authority to Curate Test Cases) + tester_match = re.search(r'\* Tester:(.*?)(?=\* Authority|\* Assignee|\* Unit-specific|\[//\]|$)', full_text, re.DOTALL) + if tester_match: + raw = tester_match.group(1).strip().replace('\n', ' ').strip() + links = extract_links_from_line(raw) + auth_data['tester'] = links if links else ([raw] if raw else []) + + # Assign Authorities + assign_match = re.search(r'\* Authority to \(De-\)Assign Authorities:(.*?)(?=\* Authority|\* Tester|\* Assignee|\* Unit-specific|$)', full_text, re.DOTALL) + if assign_match: + auth_data['assign_authorities'] = extract_links_from_line(assign_match.group(1)) + + # Issues (alle Links als Liste, z. B. Data/Refinery mit zwei Personen) + issues_match = re.search(r'\* Assignee for Issues:(.*?)(?=\* Authority|\* Tester|\* Assignee for Security|\* Unit-specific|$)', full_text, re.DOTALL) + if issues_match: + auth_data['issues'] = extract_links_from_line(issues_match.group(1)) + + # Security Reports (alle Links als Liste) + security_reports_match = re.search(r'\* Assignee for Security Reports:(.*?)(?=\* Authority|\* Assignee|\* Unit-specific|$)', full_text, re.DOTALL) + if security_reports_match: + auth_data['security_reports'] = extract_links_from_line(security_reports_match.group(1)) + + # Guidelines - wird später basierend auf folder_name gesetzt + guidelines_match = re.search(r'\* Unit-specific Guidelines[^:]*:(.*?)(?=\[//]|$)', full_text, re.DOTALL) + if guidelines_match: + extracted = extract_guidelines_from_line(guidelines_match.group(1)) + if extracted: + auth_data['guidelines'] = extracted + # Wenn LINK MISSING, wird es später durch Suche ersetzt oder entfernt + + # Ordner aus "Component Folders:" extrahieren – nur wenn dieser Block einen Ordner nennt, gilt er für diesen Ordner + folders_in_block = [] + component_folders_match = re.search(r'\*Component Folders\s*\*:\s*(.*?)(?=\n\* |\n\n|$)', content, re.DOTALL) + if component_folders_match and '(no dedicated folder' not in component_folders_match.group(1): + # Format: [`FolderName`](url) oder [`FolderName`](url), ... + for m in re.finditer(r'\[`([^`]+)`\]\([^)]+\)', component_folders_match.group(1)): + folders_in_block.append(m.group(1)) + + components[comment_name] = { + 'component_name': component_name, + 'component_name_normalized': normalize_name(component_name), + 'comment_name_normalized': normalize_name(comment_name), + 'authorities': auth_data, + 'folders': folders_in_block, + } + + return components + +def extract_links_from_line(line): + """Extrahiere alle Links aus einer Zeile""" + pattern = r'\[([^\]]+)\]\(([^\)]+)\)' + links = [] + for match in re.finditer(pattern, line): + links.append(f"[{match.group(1)}]({match.group(2)})") + return links + +def extract_single_link(line): + """Extrahiere einen einzelnen Link""" + links = extract_links_from_line(line) + return links[0] if links else None + +def extract_tester_from_line(line): + """Extrahiere Tester-Informationen""" + tester_text = line.replace('* Tester:', '').replace('* Testcases:', '').strip() + # Extrahiere Links + links = extract_links_from_line(tester_text) + if links: + return ', '.join(links) + # Extrahiere Text ohne Links + text_only = re.sub(r'\[([^\]]+)\]\([^\)]+\)', r'\1', tester_text) + return text_only.strip() if text_only.strip() else None + +def merge_tester(current, line): + """Merge Tester-Informationen""" + if isinstance(current, str): + current = current + else: + current = str(current) if current else "" + + line_clean = line.lstrip(',*').strip() + links = extract_links_from_line(line_clean) + if links: + if current: + return f"{current}, {', '.join(links)}" + return ', '.join(links) + + text_only = re.sub(r'\[([^\]]+)\]\([^\)]+\)', r'\1', line_clean) + if text_only.strip(): + if current: + return f"{current}, {text_only.strip()}" + return text_only.strip() + + return current + +# Mapping von component-Namen zu Guidelines-Dateien +COMPONENT_GUIDELINES = { + "Accessibility": "https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/docs/development/accessibility.md", + "User Interface": "https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/UI/docs/COMMUNITY.md", + "UI-Service": "https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/UI/docs/COMMUNITY.md", + "UI": "https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/UI/docs/COMMUNITY.md", + "UICore": "https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/UI/docs/COMMUNITY.md", + "UIComponent": "https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/UI/docs/COMMUNITY.md", +} + +def find_guidelines_file(folder_name, component_name, base_path): + """Suche nach Guidelines-Dateien für einen component""" + # Prüfe zuerst component-spezifisches Mapping + if component_name in COMPONENT_GUIDELINES: + return COMPONENT_GUIDELINES[component_name] + + # Prüfe ob COMMUNITY.md im component Ordner existiert + community_md = base_path / "components" / "ILIAS" / folder_name / "COMMUNITY.md" + if community_md.exists(): + return f"https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/{folder_name}/COMMUNITY.md" + + # Prüfe ob community.md existiert (lowercase) + community_md_lower = base_path / "components" / "ILIAS" / folder_name / "community.md" + if community_md_lower.exists(): + return f"https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/{folder_name}/community.md" + + # Prüfe ob docs/COMMUNITY.md existiert + community_docs = base_path / "components" / "ILIAS" / folder_name / "docs" / "COMMUNITY.md" + if community_docs.exists(): + return f"https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/components/ILIAS/{folder_name}/docs/COMMUNITY.md" + + # Keine Guidelines gefunden + return None + +def extract_guidelines_from_line(line): + """Extrahiere Guidelines-Link""" + pattern = r'\[LINK MISSING\]\([^\)]*\)|\[([^\]]+)\]\(([^\)]+)\)' + match = re.search(pattern, line) + if match: + if match.group(1): + return f"[{match.group(1)}]({match.group(2)})" + return None # LINK MISSING - wird später entfernt + return None + +# Erweiterte Mapping-Tabelle: folder_name -> ILIAS Unterkomponenten-Name +FOLDER_TO_ILIAS_COMPONENT = { + # 1. General Topics + "PrivacySecurity": "Privacy, Terms of Service and Data Protection (incl. Terms of Service)", + "TermsOfService": "Privacy, Terms of Service and Data Protection (incl. Terms of Service)", + "DataProtection": "Privacy, Terms of Service and Data Protection (incl. Terms of Service)", + "WebAccessChecker": "Security (incl. Web Access Checker)", + + # 2. Accessibility, Usability and User Interface + "Accessibility": "Accessibility", + "UI": "User Interface", + "UICore": "User Interface", + "UIComponent": "User Interface", + "UI_": "User Interface", + + # 3. ILIAS core + "Component": "Components Framework", + "Cron": "Cron Service", + "Database": "Database", + "ResourceStorage": "ILIAS Resource Storage Service", + "Language": "Language Handling", + "Logging": "Logging", + "DidacticTemplate": "Didactic Templates", + "PermanentLink": "Permanent Links", + "AccessControl": "RBAC and Permissions", + "WebServices": "Web Services Overview: SOAP, REST, ...", + + # 4. General Services + "BackgroundTasks": "Background Tasks", + "BackgroundTasks_": "Background Tasks", + "Badge": "Badges", + "Calendar": "Calendar", + "Certificate": "Certificate", + "Skill": "Competence Management", + "Contact": "Contacts", + "Dashboard": "Dashboard", + "RemoteCategory": "ECS Interface – E-Learning Community Server", + "RemoteCourse": "ECS Interface – E-Learning Community Server", + "RemoteFile": "ECS Interface – E-Learning Community Server", + "RemoteGlossary": "ECS Interface – E-Learning Community Server", + "RemoteGroup": "ECS Interface – E-Learning Community Server", + "RemoteLearningModule": "ECS Interface – E-Learning Community Server", + "RemoteTest": "ECS Interface – E-Learning Community Server", + "RemoteWiki": "ECS Interface – E-Learning Community Server", + "Export": "Export", + "Favourites": "Favourites", + "GlobalScreen": "Global Screen Service", + "GlobalScreen_": "Global Screen Service", + "GlobalCache": "Global Cache", + "GlobalCache_": "Global Cache", + "COPage": "ILIAS Page Editor", + "InfoScreen": "Info Page", + "LearningHistory": "Learning History", + "MainMenu": "Main Menu", + "Maps": "Maps", + "MetaData": "Metadata", + "ADT": "Metadata", + "AdvancedMetaData": "Metadata", + "Notes": "Notes and Comments", + "Help": "Online Help", + "OrgUnit": "Organisational Units", + "PersonalWorkspace": "Personal and Shared Resources", + "WorkspaceFolder": "Personal and Shared Resources", + "WorkspaceRootFolder": "Personal and Shared Resources", + "Portfolio": "Portfolio", + "Conditions": "Precondition Handling", + "Rating": "Rating", + "Search": "Search", + "MyStaff": "Staff", + "Tracking": "Statistics and Learning Progress", + "Tagging": "Tagging", + "Tasks": "Task Service", + "Taxonomy": "Taxonomy Service", + "User": "User Service", + "WebDAV": "WebDAV", + "Awareness": "Who is online?", + + # 5. Container Objects + "Category": "Category and Repository", + "Repository": "Category and Repository", + "Container": "Category and Repository", + "Folder": "Category and Repository", + "RootFolder": "Category and Repository", + "CategoryReference": "Category and Repository", + "ContainerReference": "Category and Repository", + "Course": "Course Management", + "CourseReference": "Course Management", + "Group": "Group", + "GroupReference": "Group", + "ItemGroup": "Item Groups", + "LearningSequence": "Learning Sequence", + "Session": "Session (Course & Group)", + "StudyProgramme": "Study Programme", + "StudyProgrammeReference": "Study Programme", + + # 6. Communication and Syndication + "AdministrativeNotification": "Administrative Notifications", + "Chatroom": "Chat", + "OnScreenChat": "Chat", + "Notifications": "Notifications", # eigene Komponente (Plural), nicht mit Chat zusammenfassen + "Notification": "Notification", # eigene Komponente (Singular) + "Forum": "Forum", + "Html": "Forum", + "Mail": "Mail", + "News": "News - RSS - Webfeeds", + "Feeds": "News - RSS - Webfeeds", + + # 7. Learning and Content Objects + "Bibliographic": "Bibliographic List Item", + "Blog": "Blog", + "BookingManager": "Booking Pool", + "ContentPage": "Content Page", + "DataCollection": "Data Collection", + "File": "File", + "Glossary": "Glossary", + "HTMLLearningModule": "Learning Module HTML", + "LearningModule": "Learning Module ILIAS", + "Scorm2004": "Learning Module SCORM", + "ScormAicc": "Learning Module SCORM", + "LTIProvider": "LTI", + "LTIConsumer": "LTI Consumer", + "MediaPool": "Media Pools and Media Objects", + "MediaObjects": "Media Pools and Media Objects", + "MediaCast": "Mediacast", + "WebResource": "Weblink", + "Wiki": "Wiki", + "CmiXapi": "xAPI", + + # 8. Evaluation, Feedback and Testing + "EmployeeTalk": "Employee Talk", + "Exercise": "Exercise", + "IndividualAssessment": "Individual Assessment", + "Poll": "Poll", + "Survey": "Survey", + "SurveyQuestionPool": "Survey", + "Test": "Test & Assessment", + "TestQuestionPool": "Test & Assessment", + + # 9. Administration + "Administration": "Administration", + "SystemFolder": "Administration", + "Authentication": "Login, Auth & Registration", + "AuthApache": "Login, Auth & Registration", + "AuthShibboleth": "Shibboleth Authentication", + "Registration": "Login, Auth & Registration", + "CAS": "Login, Auth & Registration", + "LDAP": "Login, Auth & Registration", + "OpenIdConnect": "Login, Auth & Registration", + "Saml": "SAML", + "SOAPAuth": "SOAP", + "Init": "Login, Auth & Registration", + "Setup": "Setup", + "SystemCheck": "System Check", +} + +def get_component_name_from_folder(folder_name, belong_to_component): + """Bestimme den ILIAS-Unterkomponenten-Namen für einen folder""" + # Explizites Ordner-Mapping hat Vorrang (korrigiert ggf. veraltete belong_to in maintenance.json) + if folder_name in FOLDER_TO_ILIAS_COMPONENT: + return FOLDER_TO_ILIAS_COMPONENT[folder_name] + # Wenn belong_to_component gesetzt ist und nicht "None", prüfe ob es ein ILIAS-Unterkomponenten-Name ist + if belong_to_component and belong_to_component != 'None': + if belong_to_component in ILIAS_SUBCOMPONENTS: + return belong_to_component + if belong_to_component in FOLDER_TO_ILIAS_COMPONENT.values(): + return belong_to_component + + # Fallback: Verwende altes Mapping + if folder_name in FOLDER_TO_COMPONENT: + component_name = FOLDER_TO_COMPONENT[folder_name] + # Prüfe ob es ein ILIAS-Unterkomponenten-Name ist + if component_name in ILIAS_SUBCOMPONENTS: + return component_name + + # Fallback: Verwende folder_name als Komponentenname + return folder_name + +def get_category_for_component(component_name): + """Bestimme die Kategorie für eine Komponente""" + # Prüfe ILIAS Unterkomponenten + if component_name in ILIAS_SUBCOMPONENTS: + return ILIAS_SUBCOMPONENTS[component_name] + + # Fallback: Verwende folder_name Mapping + # (wird später implementiert) + return 3 # Default: ILIAS core + +def all_authorities_none(auth_data): + """Prüfe ob alle Authorities NONE sind""" + if not auth_data: + return True + + def is_none_or_empty(value): + if value is None: + return True + if isinstance(value, list): + # Prüfe ob Liste leer ist oder nur leere Strings enthält + if len(value) == 0: + return True + # Filtere leere Strings und prüfe ob Liste dann leer ist + filtered = [item for item in value if item and str(item).strip()] + return len(filtered) == 0 + if isinstance(value, str): + return value.strip() == '' or value.strip().upper() == 'NONE' + return False + + # Prüfe alle relevanten Authorities + return ( + is_none_or_empty(auth_data.get('conceptual')) and + is_none_or_empty(auth_data.get('code')) and + is_none_or_empty(auth_data.get('test_cases')) and + is_none_or_empty(auth_data.get('tester')) and + is_none_or_empty(auth_data.get('assign_authorities')) and + is_none_or_empty(auth_data.get('issues')) and + is_none_or_empty(auth_data.get('security_reports')) + ) + +def format_authorities(auth_data, is_unmaintained=False): + """Formatiere Authorities für Markdown""" + if is_unmaintained or not auth_data: + return { + 'conceptual': 'NONE', + 'code': 'NONE', + 'test_cases': 'NONE', + 'tester': 'NONE', + 'assign_authorities': 'NONE', + 'issues': 'NONE', + 'security_reports': 'NONE', + 'guidelines': None # Keine Guidelines für unmaintained + } + + def format_list(items): + if not items: + return None + filtered = [item for item in items if item] + if not filtered: + return None + if len(filtered) == 1: + return filtered[0] + return ', '.join(filtered) + + def format_single_or_list(val): + if val is None: + return None + if isinstance(val, list): + return format_list(val) + return val + + formatted = { + 'conceptual': format_list(auth_data.get('conceptual', [])), + 'code': format_list(auth_data.get('code', [])), + 'test_cases': format_list(auth_data.get('test_cases', [])), + 'tester': format_list(auth_data.get('tester', [])), + 'assign_authorities': format_list(auth_data.get('assign_authorities', [])), + 'issues': format_single_or_list(auth_data.get('issues')), + 'security_reports': format_single_or_list(auth_data.get('security_reports')), + 'guidelines': auth_data.get('guidelines') + } + + # Wenn alle formatierten Werte None sind, setze sie auf 'NONE' + if all(formatted.get(k) is None for k in ['conceptual', 'code', 'test_cases', 'tester', 'assign_authorities', 'issues', 'security_reports']): + formatted.update({ + 'conceptual': 'NONE', + 'code': 'NONE', + 'test_cases': 'NONE', + 'tester': 'NONE', + 'assign_authorities': 'NONE', + 'issues': 'NONE', + 'security_reports': 'NONE' + }) + + return formatted + +# Stabile Feature-Wiki-URLs: wpage_ID_1357 (aus feature_wiki_wpage_ids.json, erzeugt via extract_feature_wiki_wpage_ids.py) +_FEATURE_WIKI_WPAGE_IDS = None + +def _load_feature_wiki_wpage_ids(): + """Lädt page_name -> wpage_id aus feature_wiki_wpage_ids.json (falls vorhanden).""" + global _FEATURE_WIKI_WPAGE_IDS + if _FEATURE_WIKI_WPAGE_IDS is not None: + return _FEATURE_WIKI_WPAGE_IDS + json_path = Path(__file__).resolve().parent / "feature_wiki_wpage_ids.json" + if json_path.is_file(): + try: + _FEATURE_WIKI_WPAGE_IDS = json.loads(json_path.read_text(encoding="utf-8")) + except Exception: + _FEATURE_WIKI_WPAGE_IDS = {} + else: + _FEATURE_WIKI_WPAGE_IDS = {} + return _FEATURE_WIKI_WPAGE_IDS + +def get_feature_wiki_link(component_name): + """Erstelle Feature Wiki Link für eine Komponente (stabile URL wenn Mapping vorhanden).""" + import urllib.parse + + component_to_page = { + "Privacy, Terms of Service and Data Protection (incl. Terms of Service)": "Privacy%2C_Terms_of_Service_and_Data_Protection", + "Privacy, Terms of Service and Data Protection": "Privacy%2C_Terms_of_Service_and_Data_Protection", + "Security (incl. Web Access Checker)": "Security", + "Web Services Overview: SOAP, REST, ...": "Web_Services_Overview%3A_SOAP%2C_REST%2C_...", + "Web Services Overview": "Web_Services_Overview%3A_SOAP%2C_REST%2C_...", + "ECS Interface – E-Learning Community Server": "ECS_Interface", + "ECS Interface": "ECS_Interface", + "Session (Course & Group)": "Session_%28Course_%26_Group%29", + "Session": "Session_%28Course_%26_Group%29", + "News - RSS - Webfeeds": "News_-_RSS_-_Webfeeds", + "News": "News_-_RSS_-_Webfeeds", + "Test & Assessment": "Test_%26_Assessment", + "Login, Auth & Registration": "Login%2C_Auth_%26_Registration", + "User Service (incl. Personal Profile)": "User_Service", + "User Service": "User_Service", + "User Administration": "User_Service", + "Who is online?": "Who_is_online%3F", + "RBAC and Permissions": "RBAC", + } + + if component_name in component_to_page: + page_name = component_to_page[component_name] + else: + page_name = component_name.replace(' ', '_') + page_name = urllib.parse.quote(page_name, safe='_') + + wpage_ids = _load_feature_wiki_wpage_ids() + wpage_id = wpage_ids.get(page_name) + if wpage_id is not None: + return f"https://docu.ilias.de/go/wiki/wpage_{wpage_id}_1357" + # Kein eigener Wiki-Eintrag: stabile Link zur allgemeinen Feature-Wiki-Übersicht + return "https://docu.ilias.de/go/wiki/wpage_1_1357" + +def format_folder_section(folder_name, belongs_to_name, auth_data, is_unmaintained, tree_branch): + """Formatiere einen einzelnen Ordner-Block für die Ausgabe.""" + github_link = f"{GITHUB_REPO_TREE}/{tree_branch}/components/ILIAS/{folder_name}" + formatted = format_authorities(auth_data, is_unmaintained) + status_line = "\n**Status:** Unmaintained / NONE\n" if is_unmaintained else "" + wiki_link = get_feature_wiki_link(belongs_to_name or folder_name) + display_name = belongs_to_name or folder_name + belongs_to_line = f"\n*Belongs to:* [{display_name}]({wiki_link})\n" + + result = f"""[//]: # (BEGIN {folder_name}) + +#### [{folder_name}]({github_link}) +{status_line}{belongs_to_line} +* Authority to Sign off on Conceptual Changes: {formatted['conceptual'] or 'NONE'} +* Authority to Sign off on Code Changes: {formatted['code'] or 'NONE'} +* Authority to Curate Test Cases: {formatted['test_cases'] or 'NONE'} +* Authority to (De-)Assign Authorities: {formatted['assign_authorities'] or 'NONE'} +* Assignee for Issues: {formatted['issues'] or 'NONE'} +* Assignee for Security Reports: {formatted['security_reports'] or 'NONE'}""" + + result += f""" + +[//]: # (END {folder_name}) +""" + return result + +def _parse_user(user_str): + """Parse 'username(id)' -> Markdown link.""" + if not user_str: + return None + match = re.match(r'^([^(]+)\((\d+)\)$', user_str.strip()) + if match: + return f"[{match.group(1)}](https://docu.ilias.de/go/usr/{match.group(2)})" + return user_str + + +def _authorities_from_json(json_data, folder_name, component_name, base_path): + """Build authorities dict from a maintenance.json entry.""" + model = json_data.get('maintenance_model', 'Classic') + first_maintainer = json_data.get('first_maintainer', '') + second_maintainer = json_data.get('second_maintainer', '') + tester = json_data.get('tester', '') + testcase_writer = json_data.get('testcase_writer', '') + + code_changes = [] + if first_maintainer: + code_changes.append(_parse_user(first_maintainer)) + if second_maintainer: + code_changes.append(_parse_user(second_maintainer)) + code_changes = [c for c in code_changes if c and str(c).strip()] + + if not code_changes: + return {} + + test_cases_list = [] + if testcase_writer and str(testcase_writer).strip(): + u = _parse_user(testcase_writer) + if u: + test_cases_list.append(u) + if not test_cases_list and model == 'Classic': + test_cases_list = code_changes + + tester_list = [] + if tester and str(tester).strip(): + u = _parse_user(tester) + if u: + tester_list.append(u) + + auth = { + 'conceptual': code_changes, + 'code': code_changes, + 'test_cases': test_cases_list, + 'tester': tester_list, + 'assign_authorities': code_changes, + 'issues': code_changes, + 'security_reports': code_changes, + 'guidelines': None, + } + gl = find_guidelines_file(folder_name, component_name, base_path) + if gl: + auth['guidelines'] = f"[Guidelines]({gl})" + return auth + + +def _build_md_folder_mapping(md_components): + """Build folder_name -> comment_name mapping from parsed MD blocks.""" + md_folder_to_comment = {} + old_format_blocks = [] + for comment_name, md_data in md_components.items(): + folders_in_block = md_data.get('folders', []) + if folders_in_block: + for f in folders_in_block: + md_folder_to_comment[f] = comment_name + else: + if comment_name not in md_folder_to_comment: + md_folder_to_comment[comment_name] = comment_name + comp_norm = normalize_name(md_data['component_name']) + if comp_norm and comp_norm not in md_folder_to_comment: + md_folder_to_comment[comp_norm] = comment_name + cands = [normalize_name(comment_name), comp_norm] + old_format_blocks.append((comment_name, [c for c in cands if c])) + return md_folder_to_comment, old_format_blocks + + +def _find_md_comment(folder_name, md_folder_to_comment, old_format_blocks): + """Resolve folder_name to a comment_name via exact, normalised, or fuzzy match.""" + comment = md_folder_to_comment.get(folder_name) or md_folder_to_comment.get(normalize_name(folder_name)) + if not comment and old_format_blocks: + comment = _fuzzy_match_folder_to_old_block(normalize_name(folder_name), old_format_blocks) + return comment + + +def _clean_intro(intro_text): + """Remove generated artefacts from the intro section.""" + t = re.sub(r'\n## Current Maintainerships\s*\n', '\n', intro_text.rstrip()) + t = re.sub(r'\n## Unmaintained Components.*?(?=\n##|\Z)', '', t, flags=re.DOTALL) + t = re.sub(r'\nThe following directories are currently unmaintained:.*?(?=\n##|\Z)', '', t, flags=re.DOTALL) + t = re.sub(r'\n?Die folgende Struktur basiert auf der \[offiziellen ILIAS-Komponentenstruktur\]\([^)]+\)\.?\s*', '\n', t) + t = re.sub(r'\n?The following structure is based on the \[official ILIAS component structure\]\([^)]+\)\.?\s*', '\n', t) + # Tester und Unit-specific Guidelines werden nicht mehr ausgegeben (TB-Entscheidungen Juli 2026) + t = re.sub(r'\n\* \*\*"Tester"\*\*:[^\n]*\n', '\n', t) + t = re.sub(r'\n\* \*\*"Unit-specific Guidelines, Rules, and Regulations"\*\*:\n(?: [^\n]*\n)+', '\n', t) + return t + + +def main(): + parser = argparse.ArgumentParser(description="Generate maintenance.md from maintenance_trunk.md.") + parser.add_argument( + "--branch", "-b", + required=True, + help="Branch name for GitHub component links (e.g. release_10, release_11, trunk).", + ) + parser.add_argument("--refresh-wiki-links", action="store_true", help="Refresh Feature-Wiki wpage IDs before generating.") + args = parser.parse_args() + tree_branch = args.branch + + base_path = Path(__file__).parent.parent.parent + script_dir = Path(__file__).resolve().parent + if args.refresh_wiki_links: + overview_html = base_path / "onlylocal" / "Seite: Feature Wiki: Overview: DOCU.html" + if overview_html.exists(): + import subprocess + subprocess.run([sys.executable, str(script_dir / "extract_feature_wiki_wpage_ids.py"), str(overview_html)], cwd=str(base_path)) + else: + print("Hinweis: Overview-HTML nicht gefunden, ueberspringe --refresh-wiki-links.", file=sys.stderr) + + dev_dir = base_path / "docs" / "development" + authority_path = dev_dir / AUTHORITY_SOURCE_NAME + output_path = dev_dir / OUTPUT_NAME + components_path = base_path / "components" / "ILIAS" + + if not authority_path.exists(): + print(f"Error: {AUTHORITY_SOURCE_NAME} not found in {dev_dir}", file=sys.stderr) + sys.exit(1) + + md_content = authority_path.read_text(encoding='utf-8') + print(f"Authority source: {AUTHORITY_SOURCE_NAME}") + print(f"GitHub links branch: {tree_branch}") + + # ---- Extract intro ---- + md_clean = re.sub(r'^## Current Maintainerships\s*\n\s*## Current Maintainerships', '## Current Maintainerships', md_content, flags=re.MULTILINE) + md_clean = re.sub(r'\n## Unmaintained Components.*?\n## Current Maintainerships', '\n## Current Maintainerships', md_clean, flags=re.DOTALL) + intro_match = re.search(r'^(.*?)## Current Maintainerships', md_clean, re.DOTALL) + if intro_match: + intro = intro_match.group(1).rstrip() + elif "# Components and Related Authorities" in md_clean: + intro = md_clean.split("# Components and Related Authorities", 1)[0].rstrip() + else: + intro = md_clean.split('## Current Maintainerships')[0].rstrip() + + # ---- Parse authority blocks from MD ---- + content_for_authorities = md_content + if "## Current Maintainerships" in md_content: + content_for_authorities = md_content.split("## Current Maintainerships", 1)[-1] + md_components = extract_component_from_md(content_for_authorities) + print(f"Extracted {len(md_components)} blocks from {AUTHORITY_SOURCE_NAME}") + + # ---- Collect component folders and their maintenance.json ---- + components = {} + for folder in components_path.iterdir(): + if not folder.is_dir(): + continue + folder_name = folder.name + mj = folder / "maintenance.json" + if mj.exists(): + json_data = parse_maintenance_json(mj) + if json_data: + components[folder_name] = { + 'belong_to_component': json_data.get('belong_to_component', 'None'), + 'maintenance_json': json_data, + 'has_json': True, + } + continue + components[folder_name] = {'belong_to_component': 'None', 'maintenance_json': None, 'has_json': False} + + # ---- Determine "belongs to" group per folder ---- + folder_to_group = {} + for folder_name, data in components.items(): + folder_to_group[folder_name] = get_component_name_from_folder(folder_name, data.get('belong_to_component', 'None')) + + # ---- Resolve authorities per folder (MD first, then JSON fallback) ---- + md_folder_map, old_blocks = _build_md_folder_mapping(md_components) + authorities_dict = {} + for folder_name, data in components.items(): + group_name = folder_to_group.get(folder_name, folder_name) + comment = _find_md_comment(folder_name, md_folder_map, old_blocks) + if comment: + auth = md_components[comment]['authorities'].copy() + gl = find_guidelines_file(folder_name, group_name, base_path) + if gl: + auth['guidelines'] = f"[Guidelines]({gl})" + elif auth.get('guidelines') == "[LINK MISSING]('')": + auth['guidelines'] = None + authorities_dict[folder_name] = auth + elif data.get('has_json') and data.get('maintenance_json'): + authorities_dict[folder_name] = _authorities_from_json(data['maintenance_json'], folder_name, group_name, base_path) + else: + gl = find_guidelines_file(folder_name, group_name, base_path) + authorities_dict[folder_name] = {'guidelines': f"[Guidelines]({gl})"} if gl else {} + + # ---- Count stats ---- + unmaintained_count = sum(1 for fn in components if all_authorities_none(authorities_dict.get(fn, {}))) + + # ---- Build output ---- + intro_clean = _clean_intro(intro) + output_lines = [ + intro_clean, "", + "## Current Maintainerships", "", + "Components are listed alphabetically by their folder name in `components/ILIAS/`.", + "", + ] + + for folder_name in sorted(components.keys(), key=str.lower): + auth = authorities_dict.get(folder_name, {}) + is_unmaintained = all_authorities_none(auth) + group_name = folder_to_group.get(folder_name, folder_name) + section = format_folder_section(folder_name, group_name, auth, is_unmaintained, tree_branch) + output_lines.append(section) + output_lines.append("") + + output_path.write_text('\n'.join(output_lines), encoding='utf-8') + + print(f"\nGenerated: {output_path}") + print(f"Folders: {len(components)} | Unmaintained: {unmaintained_count} | MD blocks: {len(md_components)}") + + +if __name__ == "__main__": + main() diff --git a/scripts/maintenance-overhaul/test_maintenance_md.py b/scripts/maintenance-overhaul/test_maintenance_md.py new file mode 100644 index 000000000000..366becc1007f --- /dev/null +++ b/scripts/maintenance-overhaul/test_maintenance_md.py @@ -0,0 +1,345 @@ +#!/usr/bin/env python3 +""" +Tests für docs/development/maintenance.md: +- Alle Feature-Wiki-Links sind stabil (go/wiki/wpage_XXX_1357), keine gotoPage-URLs +- docu.ilias.de-Links nutzen erlaubte Formate (wiki, usr, pg) +- Komponenten-Blöcke sind vollständig (BEGIN/END, Pflicht-Authority-Zeilen) +- Optional: Abgleich mit maintenance_old.md (gleiche Komponenten, inhaltlich Maintainer etc.) + +Ausführung: + python test_maintenance_md.py # nur Struktur/Links + python test_maintenance_md.py --compare-old # gleiche Komponenten (comment_name) in new + python test_maintenance_md.py --compare-content # Maintainer/Authorities pro Komponente old vs new + # (nur bei gleichem Komponentennamen; Abweichungen = FAIL) +""" + +import re +import sys +from pathlib import Path + +SCRIPT_DIR = Path(__file__).resolve().parent +REPO_ROOT = SCRIPT_DIR.parent.parent +MAINTENANCE_MD = REPO_ROOT / "docs" / "development" / "maintenance.md" +MAINTENANCE_OLD_MD = REPO_ROOT / "docs" / "development" / "maintenance_old.md" + +# Erlaubte docu.ilias.de-Link-Formate +STABLE_WIKI_PATTERN = re.compile(r"https://docu\.ilias\.de/go/wiki/wpage_\d+_1357") +USER_LINK_PATTERN = re.compile(r"https://docu\.ilias\.de/go/usr/\d+") +PG_LINK_PATTERN = re.compile(r"https://docu\.ilias\.de/go/pg/\d+_\d+") +CAT_LINK_PATTERN = re.compile(r"https://docu\.ilias\.de/go/cat/\d+") +# Instabile / verbotene Links +GOTO_PAGE_PATTERN = re.compile(r"https://docu\.ilias\.de/ilias\.php\?[^)]*gotoPage") +ANY_DOCU_LINK = re.compile(r"https://docu\.ilias\.de/[^\s)\]]+") + +COMPONENT_BLOCK = re.compile(r"\[//\]: # \(BEGIN (\w+)\)(.*?)\[//\]: # \(END \1\)", re.DOTALL) +REQUIRED_AUTHORITY_LINES = [ + "Authority to Sign off on Conceptual Changes", + "Authority to Sign off on Code Changes", + "Authority to Curate Test Cases", + "Authority to (De-)Assign Authorities", + "Assignee for Issues", + "Assignee for Security Reports", +] + + +def test_no_unstable_wiki_links(content: str) -> list[str]: + """Keine ilias.php?gotoPage-Links.""" + errors = [] + for m in GOTO_PAGE_PATTERN.finditer(content): + errors.append(f"Instabiler Wiki-Link: {m.group(0)[:80]}...") + return errors + + +def test_all_docu_links_stable(content: str) -> list[str]: + """Alle docu.ilias.de-Links müssen erlaubte Formate haben (wiki: wpage_ nur).""" + errors = [] + for m in ANY_DOCU_LINK.finditer(content): + url = m.group(0).rstrip(")") + if GOTO_PAGE_PATTERN.search(url): + errors.append(f"Verbotener gotoPage-Link: {url[:90]}") + continue + if "/go/wiki/" in url and not re.search(r"/go/wiki/wpage_\d+_1357", url): + errors.append(f"Wiki-Link nicht stabil (wpage_XXX_1357): {url[:90]}") + return errors + + +def test_component_blocks_structure(content: str) -> list[str]: + """Jeder Komponenten-Block (mit Component Folders) hat alle Pflicht-Zeilen.""" + errors = [] + for m in COMPONENT_BLOCK.finditer(content): + comment_name, block = m.group(1), m.group(2) + # Nur echte Komponenten-Einträge prüfen (mit *Component Folders:*), nicht z.B. "Authorities"-Intro + if "*Component Folders:*" not in block: + continue + for line_label in REQUIRED_AUTHORITY_LINES: + if line_label not in block: + errors.append(f"Komponente {comment_name}: fehlende Zeile '{line_label}'") + return errors + + +def test_component_blocks_balanced(content: str) -> list[str]: + """BEGIN/END-Kommentare sind ausgeglichen.""" + begins = set(re.findall(r"\[//\]: # \(BEGIN (\w+)\)", content)) + ends = set(re.findall(r"\[//\]: # \(END (\w+)\)", content)) + missing_end = begins - ends + missing_begin = ends - begins + errors = [] + if missing_end: + errors.append(f"BEGIN ohne END: {sorted(missing_end)}") + if missing_begin: + errors.append(f"END ohne BEGIN: {sorted(missing_begin)}") + return errors + + +def normalize_component_name(name: str) -> str: + """Komponentenname für Vergleich normalisieren (lowercase, keine Sonderzeichen inkl. Unicode-Bindestriche).""" + if not name: + return "" + n = name.lower().strip() + n = re.sub(r"[_\s\-\.&,()\u2010-\u2015]+", "", n) # ASCII- und Unicode-Bindestriche (en-dash etc.) + return n + + +def normalized_component_name_variants(name: str) -> set[str]: + """Alle Vergleichsvarianten (z. B. 'X (aka Y)' → {norm(X), norm(Y)}; 'A, B and C' → norm(A and C)).""" + if not name: + return set() + variants = {normalize_component_name(name)} + # "COPage (aka ILIAS Page Editor)" → auch "ILIAS Page Editor" normalisiert + aka = re.search(r"\(aka\s+([^)]+)\)", name, re.IGNORECASE) + if aka: + variants.add(normalize_component_name(aka.group(1).strip())) + # "Category, Category Reference and Repository" → "Category and Repository" + if ", " in name and " and " in name: + parts = [p.strip() for p in name.split(", ")] + last = parts[-1] + if " and " in last: + last = last.split(" and ")[-1].strip() + if parts[0] and last: + variants.add(normalize_component_name(f"{parts[0]} and {last}")) + # "X and Y Reference" → "X and Y" bzw. "X" + if " and " in name and " reference" in name.lower(): + short = re.sub(r"\s+and\s+[\w\s]+reference\s*$", "", name, flags=re.IGNORECASE).strip() + if short: + variants.add(normalize_component_name(short)) + return variants + + +def normalize_authority_value(raw: str) -> str: + """Wert einer Authority-Zeile vergleichbar machen: NONE/MISSING vereinheitlichen, Links → sortierte Link-Texte.""" + if not raw: + return "NONE" + raw = raw.replace("\n", " ").strip() + upper = raw.upper() + if upper in ("NONE", "MISSING") or "AUTHOR MISSING" in upper or "[MISSING]" in upper: + return "NONE" + # Alle [text](url) extrahieren, Text-Teile sortiert joinen + links = re.findall(r"\[([^\]]+)\]\([^)]+\)", raw) + if links: + return ",".join(sorted(t.strip() for t in links)) + return raw.strip()[:80] + + +AUTHORITY_KEYS = [ + "conceptual", + "code", + "test_cases", + "assign_authorities", + "issues", + "security_reports", +] +AUTHORITY_PATTERNS = [ + (r"\* Authority to Sign off on Conceptual Changes:(.*?)(?=\* Authority|\* Assignee|\* Unit-specific|$)", "conceptual"), + (r"\* Authority to Sign off on Code Changes:(.*?)(?=\* Authority|\* Assignee|\* Unit-specific|$)", "code"), + (r"\* Authority to Curate Test Cases:(.*?)(?=\* Authority|\* Assignee|\* Unit-specific|$)", "test_cases"), + (r"\* Authority to \(De-\)Assign Authorities:(.*?)(?=\* Authority|\* Assignee|\* Unit-specific|$)", "assign_authorities"), + (r"\* Assignee for Issues:(.*?)(?=\* Authority|\* Assignee for Security|\* Unit-specific|$)", "issues"), + (r"\* Assignee for Security Reports:(.*?)(?=\* Authority|\* Assignee|\* Unit-specific|$)", "security_reports"), +] + + +def parse_authorities_from_block(block: str) -> dict[str, str]: + """Aus einem Komponenten-Block die 6 Authority-Werte (normalisiert) extrahieren.""" + out = {k: "NONE" for k in AUTHORITY_KEYS} + for pattern, key in AUTHORITY_PATTERNS: + m = re.search(pattern, block, re.DOTALL) + if m: + out[key] = normalize_authority_value(m.group(1)) + return out + + +def get_component_name_from_block(block: str) -> str: + """Komponentenname aus Block: #### [Name](url) oder * **Name**.""" + m = re.search(r"####\s*\[([^\]]+)\]", block) + if m: + return m.group(1).strip() + m = re.search(r"\* \*\*([^*]+)\*\*", block) + if m: + return m.group(1).strip() + return "" + + +def extract_components_with_authorities(content: str, only_with_folders: bool = True) -> dict[str, dict]: + """normalized_component_name -> {component_name, authorities dict}.""" + out = {} + for m in COMPONENT_BLOCK.finditer(content): + block = m.group(2) + if only_with_folders and "*Component Folders:*" not in block: + continue + # Old-MD hat ggf. kein Component Folders, aber * **Name** + name = get_component_name_from_block(block) + if not name: + continue + norm = normalize_component_name(name) + out[norm] = { + "component_name": name, + "authorities": parse_authorities_from_block(block), + } + return out + + +def extract_components_from_md(content: str) -> dict: + """Comment_name -> {component_name, ...} aus maintenance.md.""" + out = {} + for m in COMPONENT_BLOCK.finditer(content): + comment_name = m.group(1) + block = m.group(2) + component_name = get_component_name_from_block(block) + if not component_name and "*Component Folders:*" not in block: + name_match = re.search(r"\* \*\*([^*]+)\*\*", block) + component_name = name_match.group(1).strip() if name_match else "" + out[comment_name] = {"component_name": component_name} + return out + + +def _old_component_matched_in_new(old_variants: set[str], new_variants: set[str], min_substring_len: int = 8) -> bool: + """Prüft, ob eine alte Komponente (via Varianten) in new vorkommt (exakt oder sinnvolles Substring).""" + if old_variants & new_variants: + return True + for ov in old_variants: + for nv in new_variants: + if len(nv) >= min_substring_len and (nv in ov or ov in nv): + return True + return False + + +# Alte Komponenten, die in new in einem anderen Block aufgehen oder bewusst entfallen +OLD_COMPONENTS_MERGED_IN_NEW: set[str] = { + "Data Protection", # in new: Privacy… (BEGIN enthält Punkt, wird von COMPONENT_BLOCK nicht erfasst) + "TermsOfService (aka Terms of Services)", +} + +# Bekannte Umbenennungen/Strukturänderungen: alter Anzeigename → normalisierte Namen in maintenance.md +OLD_DISPLAY_NAME_ACCEPTED_NEW_NORMALIZED: dict[str, set[str]] = { + "Category, Category Reference and Repository": {"categoryandrepository"}, + "Chatroom": {"chat"}, + "ECS Interface": {"ecsinterface", "ecsinterfaceelearningcommunityserver"}, + "Feed (aka Web Feeds)": {"newsrsswebfeeds"}, + "News": {"newsrsswebfeeds"}, + "Course and Course Reference": {"coursemanagement"}, + "CSS / Templates": {"style"}, + # Didactic Templates: Korrekt als "Didactic Templates" im Generator (kein Mapping nötig) + "Favourites": {"favourites", "categoryandrepository"}, # ggf. unter Repository + "GlobalCache": {"cache"}, + "Global Screen": {"globalscreenservice"}, + "Group and Group Reference": {"group"}, + "Init (aka Initialisation Service)": {"loginauthregistration"}, + "ItemGroup": {"itemgroups"}, + "LTI Provider": {"lti"}, + "MathJax": {"math"}, + "Object Service": {"iliasobject"}, # in new als ILIASObject + "Open ID Connect": {"loginauthregistration"}, + "RBAC / Access Control": {"rbacandpermissions"}, + "Scorm (aka Learning Module SCORM 1.2 and 2004)": {"learningmodulescorm"}, + "Tasks": {"taskservice"}, + "Taxonomy": {"taxonomyservice"}, + "UICore": {"userinterface"}, + "Web Access Checker": {"securityinclwebaccesschecker"}, + "Webservices": {"webservicesoverviewsoaprest"}, + "xAPI/cmi5": {"xapi"}, +} + + +def test_compare_with_old(md_content: str, old_content: str) -> list[str]: + """Alle Komponenten aus old sind in new vorhanden (Vergleich über normalisierte Namen inkl. aka-/Substring-Varianten und bekanntes Mapping).""" + old_by_name = extract_components_with_authorities(old_content, only_with_folders=False) + new_by_name = extract_components_with_authorities(md_content, only_with_folders=True) + new_variants = set() + for data in new_by_name.values(): + new_variants.update(normalized_component_name_variants(data["component_name"])) + errors = [] + for norm_name, old_data in old_by_name.items(): + if old_data["component_name"] in OLD_COMPONENTS_MERGED_IN_NEW: + continue + old_variants = normalized_component_name_variants(old_data["component_name"]) + if _old_component_matched_in_new(old_variants, new_variants): + continue + accepted = OLD_DISPLAY_NAME_ACCEPTED_NEW_NORMALIZED.get(old_data["component_name"]) + if accepted and (accepted & new_variants): + continue + errors.append(f"Komponente aus maintenance_old fehlt in maintenance.md: {old_data['component_name']}") + return errors + + +def test_compare_content_with_old(md_content: str, old_content: str) -> list[str]: + """ + Inhaltlicher Vergleich: Für Komponenten, die in beiden Dateien vorkommen (gleicher + normalisierter Name), müssen die Maintainer/Authorities übereinstimmen. + Komponenten nur in old (andere Struktur/Umbenennung) führen nicht zu Fehlern. + """ + old_by_name = extract_components_with_authorities(old_content, only_with_folders=False) + new_by_name = extract_components_with_authorities(md_content, only_with_folders=True) + errors = [] + for norm_name, old_data in old_by_name.items(): + if norm_name not in new_by_name: + continue # Nur in old: andere Struktur/Name, kein Fehler + new_data = new_by_name[norm_name] + for key in AUTHORITY_KEYS: + old_val = old_data["authorities"].get(key, "NONE") + new_val = new_data["authorities"].get(key, "NONE") + if old_val != new_val: + errors.append( + f"{old_data['component_name']} / {key}: old={old_val!r} vs new={new_val!r}" + ) + return errors + + +def run_tests(compare_old: bool = False) -> bool: + if not MAINTENANCE_MD.is_file(): + print(f"Datei nicht gefunden: {MAINTENANCE_MD}", file=sys.stderr) + return False + + content = MAINTENANCE_MD.read_text(encoding="utf-8") + all_errors = [] + + all_errors.extend(test_no_unstable_wiki_links(content)) + all_errors.extend(test_all_docu_links_stable(content)) + all_errors.extend(test_component_blocks_balanced(content)) + all_errors.extend(test_component_blocks_structure(content)) + + compare_content = "--compare-content" in sys.argv + if (compare_old or compare_content) and MAINTENANCE_OLD_MD.is_file(): + old_content = MAINTENANCE_OLD_MD.read_text(encoding="utf-8") + if compare_old: + all_errors.extend(test_compare_with_old(content, old_content)) + if compare_content: + all_errors.extend(test_compare_content_with_old(content, old_content)) + elif compare_old or compare_content: + print("Hinweis: maintenance_old.md nicht gefunden, Vergleich übersprungen.", file=sys.stderr) + + if all_errors: + for e in all_errors: + print(f" FAIL: {e}", file=sys.stderr) + print(f"\n{len(all_errors)} Fehler gefunden.", file=sys.stderr) + return False + print("Alle Prüfungen bestanden.") + return True + + +def main() -> int: + compare_old = "--compare-old" in sys.argv + return 0 if run_tests(compare_old=compare_old) else 1 + + +if __name__ == "__main__": + sys.exit(main())