Bug 27458 - App Center
App Center
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC - App-Center
UCS 3.0
Other Linux
: P1 enhancement (vote)
: UCS 3.1
Assigned To: Dirk Wiesenthal
Florian Best
: interim-3
Depends on:
Blocks: 28599
  Show dependency treegraph
 
Reported: 2012-06-06 09:24 CEST by Stefan Gohmann
Modified: 2012-12-12 21:08 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional): Release Goal
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Gohmann univentionstaff 2012-06-06 09:24:59 CEST
Für UCS 3.1 soll eine einfache Möglichkeit bestehen Applikationen über ein UMC Modul anzuzeigen und zu installieren. Die Applikationen sollen dabei von dem Hersteller der Applikation hochgeladen werden.
Comment 1 Alexander Kläser univentionstaff 2012-07-20 10:04:21 CEST
Über diesen Bug werden die grundsätzlichen Funktionalitäten implementiert. Dazu gehören u.a.:

* Struktur und Auslesen der Metadaten über Anwendungen und Kategorien
* Struktur der Übersetzungsinformationen
* ggf. lokales Caching der Metadaten
* Grundlegende Installation von Anwendungen
* Suchmaske zunächst mit ComboBox und einfachem Suchfeld
* Anzeige der Suchergebnisse als Icons mit kurzer Beschreibung und Kategorie, alphabetisch sortiert

Weitere Details werden über weitere Bugs behandelt.
Comment 2 Stefan Gohmann univentionstaff 2012-08-27 11:00:54 CEST
Partner Software:
 https://hutten.knut.univention.de/mediawiki/index.php/App_Center_Partner
Comment 3 Alexander Kläser univentionstaff 2012-09-25 13:45:51 CEST
(In reply to comment #1)
> Über diesen Bug werden die grundsätzlichen Funktionalitäten implementiert. Dazu
> gehören u.a.:
> 
> * Struktur und Auslesen der Metadaten über Anwendungen und Kategorien
> * Struktur der Übersetzungsinformationen
> * ggf. lokales Caching der Metadaten
> * Grundlegende Installation von Anwendungen
> * Suchmaske zunächst mit ComboBox und einfachem Suchfeld
> * Anzeige der Suchergebnisse als Icons mit kurzer Beschreibung und Kategorie,
> alphabetisch sortiert
> 
> Weitere Details werden über weitere Bugs behandelt.

Das ist soweit alles umgesetzt. Es wird ein Screenshot angezeigt, der bei Klick vergrößert wird. Repository-Einstellungen und Komponentenverwaltung wurden zusammengeführt auf einen Untertab. Es wird nach Komponenten gesucht unter:

  http://{repository/app_center/server}/meta-inf/{version/version}/*.ini 

Default für den App-Center-Server ist appcenter.software-univention.de. Die .ini-Dateien enthalten Meta-Informationen über die jeweilige Komponente, bspw.:

====================
[Application]
ID=mycomponent
Name=My Component  
Version=7.1
Description=This is my component.
LongDescription=This is my own component.
Categories=Groupware,Mail
EmailRequired=False
Screenshot=mycomponent_screenshot.jpeg

DefaultPackages=imagemagick-doc
DefaultPackagesMaster=
ConflictedApps=
ConflictedSystemPackages=
ServerRole=domaincontroller_master

Vendor=Me
Website=http://www.me.com
Contact=sales@me.com

[de]
Description=Das ist meine Komponente.
LongDescription=Das ist meine eigene Komponente.
====================

Eine .png-Datei unter gleichen Namen wie die .ini-Datei wird als Logo eingebunden.

→ univention-management-console-module-packages (2.0.20-1)
Comment 4 Alexander Kläser univentionstaff 2012-09-25 15:12:25 CEST
Übersetzungen für Kategorien werden von der folgenden Adresse geladen:

http://{repository/app_center/server}/meta-inf/categories.ini

Die einzelnen Sections werden bezeichnen die Lokalisierung (bpsw. "de", "fr").
Comment 5 Alexander Kläser univentionstaff 2012-09-25 16:54:18 CEST
Zur Schemainstallation auf Mastern/Backups gibt es jetzt ein kleines Helper-Tool (univention-add-app), das das Setzen der entsprechenden UCR-Variablen für die Repository-Komponenten sowie die Installation der entsprechenden Pakete vereinfacht: 

 univention-updater (8.0.13-1) unstable; urgency=low
 .
   * added script univention-add-app; Bug #27458
Comment 6 Alexander Kläser univentionstaff 2012-10-05 13:43:33 CEST
Ein Eintrag "LicenseFile" ist noch hinzugekommen. Wird er angegeben, dann wird beim erstmaligen Installieren ein Lizenzdialog angezeigt, dem zugestimmt werden muss. Eine dokumentierte Beispiel-Ini-Datei liegt unter:

http://wiki.univention.de/index.php?title=App_Center_-_.ini-Datei
Comment 7 Florian Best univentionstaff 2012-10-17 12:16:08 CEST
Generell finde ich es nicht so toll, den Apache Directory Index zu parsen (der ist ja auch anpassbar (FancyIndexing usw.)) aber da führt wohl kein einfacher Weg vorbei.

Ich glaube es fehlt hier noch ein html unescape!?
app_center.py
285 »   »   »   »   »   »   ifilename = m.group('name')
286 »   »   »   »   »   »   iurl = url + '/' + ifilename
Comment 8 Florian Best univentionstaff 2012-10-17 13:17:02 CEST
Es fehlt noch ein Hinweis auf ungejointen systemen, falls eine App deswegen nicht installiert werden kann.
Comment 9 Florian Best univentionstaff 2012-10-17 13:28:06 CEST
Es fehlt ein html escape der Einträge aus den .ini Dateien
Comment 10 Florian Best univentionstaff 2012-10-19 09:34:01 CEST
Im Grund fehlt im pacakges modul auch noch eine Einstellungsmöglichkeit des Repository servers für die APP's… Aber das kann denke ich ausgelagert werden.
Comment 11 Florian Best univentionstaff 2012-10-19 09:35:44 CEST
(In reply to comment #10)
> Im Grund fehlt im pacakges modul auch noch eine Einstellungsmöglichkeit des
> Repository servers für die APP's… Aber das kann denke ich ausgelagert werden.
→ Ok, das soll doch nicht.
Comment 12 Florian Best univentionstaff 2012-10-19 11:40:41 CEST
Im Wiki fehlt noch der Eintrag für EmailRequired:
http://wiki.univention.de/index.php?title=App_Center_-_.ini-Datei
Comment 13 Stefan Gohmann univentionstaff 2012-11-09 20:20:44 CET
(In reply to comment #12)
> Im Wiki fehlt noch der Eintrag für EmailRequired:
> http://wiki.univention.de/index.php?title=App_Center_-_.ini-Datei

NotifyVendor ist mittlerweile drin.

Wenn ich es richtig sehe, dann sind noch diese beiden Punkte offen:

(In reply to comment #8)
> Es fehlt noch ein Hinweis auf ungejointen systemen, falls eine App deswegen
> nicht installiert werden kann.

(In reply to comment #9)
> Es fehlt ein html escape der Einträge aus den .ini Dateien
Comment 14 Dirk Wiesenthal univentionstaff 2012-11-12 19:20:16 CET
(In reply to comment #13)
> Wenn ich es richtig sehe, dann sind noch diese beiden Punkte offen:
> 
> (In reply to comment #8)
> > Es fehlt noch ein Hinweis auf ungejointen systemen, falls eine App deswegen
> > nicht installiert werden kann.
> 
> (In reply to comment #9)
> > Es fehlt ein html escape der Einträge aus den .ini Dateien

Hinweis wurde hinzugefügt.

Besser kein HTML-Escape der Einträge. Hersteller könnten Auszeichnungen in den Texten wollen (Listen, Links, Italics...). Die .ini-Dateien zählen in dem Sinne nicht nicht als "User-Input".

univention-management-console-module-appcenter 2.0.69-1.15.201211121918
Comment 15 Florian Best univentionstaff 2012-11-19 10:23:46 CET
(In reply to comment #7)
> Ich glaube es fehlt hier noch ein html unescape!?
> app_center.py
> 285 »   »   »   »   »   »   ifilename = m.group('name')
> 286 »   »   »   »   »   »   iurl = url + '/' + ifilename
Wenn eine .ini Datei z.B. 'foo & bar.ini' heißt wird sie nicht ausgewertet. → REOPENED

(In reply to comment #14)
> (In reply to comment #13)
> > Wenn ich es richtig sehe, dann sind noch diese beiden Punkte offen:
> > 
> > (In reply to comment #8)
> > > Es fehlt noch ein Hinweis auf ungejointen systemen, falls eine App deswegen
> > > nicht installiert werden kann.
> > 
> > (In reply to comment #9)
> > > Es fehlt ein html escape der Einträge aus den .ini Dateien
> 
> Hinweis wurde hinzugefügt.
Ja das funktioniert. Der Installationsbutton ist dann auch nicht vorhanden.
Die Formulierung sollte eventuell angepasst werden ("Treten Sie einer Domäne bei…" ist direkte Anrede außerdem soll das System und nicht die Person einer Domäneb beitreten).

> Besser kein HTML-Escape der Einträge. Hersteller könnten Auszeichnungen in den
> Texten wollen (Listen, Links, Italics...). Die .ini-Dateien zählen in dem Sinne
> nicht nicht als "User-Input".
> 
> univention-management-console-module-appcenter 2.0.69-1.15.201211121918
hmm… In Angaben wie Name, Version, Screenshot, Website und so sollte definitiv kein HTML möglich sein. Sonst muss in jeder XML Datei bedacht werden, dass diese Zeichen dort schon escaped sind.
Comment 16 Stefan Gohmann univentionstaff 2012-11-19 14:44:31 CET
(In reply to comment #15)
> (In reply to comment #7)
> > Ich glaube es fehlt hier noch ein html unescape!?
> > app_center.py
> > 285 »   »   »   »   »   »   ifilename = m.group('name')
> > 286 »   »   »   »   »   »   iurl = url + '/' + ifilename
> Wenn eine .ini Datei z.B. 'foo & bar.ini' heißt wird sie nicht ausgewertet. →
> REOPENED

Wir sollten irgendwo die erlaubten Zeichen aufführen. Das müssen wir nicht im Code prüfen, die Namen können wir selbst bestimmen.
Comment 17 Dirk Wiesenthal univentionstaff 2012-11-20 12:02:12 CET
(In reply to comment #15)
> (In reply to comment #7)
> > Ich glaube es fehlt hier noch ein html unescape!?
> > app_center.py
> > 285 »   »   »   »   »   »   ifilename = m.group('name')
> > 286 »   »   »   »   »   »   iurl = url + '/' + ifilename
> Wenn eine .ini Datei z.B. 'foo & bar.ini' heißt wird sie nicht ausgewertet. →
> REOPENED
> 
> (In reply to comment #14)
> > (In reply to comment #13)
> > > Wenn ich es richtig sehe, dann sind noch diese beiden Punkte offen:
> > > 
> > > (In reply to comment #8)
> > > > Es fehlt noch ein Hinweis auf ungejointen systemen, falls eine App deswegen
> > > > nicht installiert werden kann.
> > > 
> > > (In reply to comment #9)
> > > > Es fehlt ein html escape der Einträge aus den .ini Dateien
> > 
> > Hinweis wurde hinzugefügt.
> Ja das funktioniert. Der Installationsbutton ist dann auch nicht vorhanden.
> Die Formulierung sollte eventuell angepasst werden ("Treten Sie einer Domäne
> bei…" ist direkte Anrede außerdem soll das System und nicht die Person einer
> Domäneb beitreten).
> 
> > Besser kein HTML-Escape der Einträge. Hersteller könnten Auszeichnungen in den
> > Texten wollen (Listen, Links, Italics...). Die .ini-Dateien zählen in dem Sinne
> > nicht nicht als "User-Input".
> > 
> > univention-management-console-module-appcenter 2.0.69-1.15.201211121918
> hmm… In Angaben wie Name, Version, Screenshot, Website und so sollte definitiv
> kein HTML möglich sein. Sonst muss in jeder XML Datei bedacht werden, dass
> diese Zeichen dort schon escaped sind.

Fixed in
  univention-management-console-module-appcenter 2.0.76-1.22.201211201155
Comment 18 Florian Best univentionstaff 2012-11-20 12:32:05 CET
(In reply to comment #17)
> (In reply to comment #15)
> > (In reply to comment #7)
> > > Ich glaube es fehlt hier noch ein html unescape!?
> > > app_center.py
> > > 285 »   »   »   »   »   »   ifilename = m.group('name')
> > > 286 »   »   »   »   »   »   iurl = url + '/' + ifilename
> > Wenn eine .ini Datei z.B. 'foo & bar.ini' heißt wird sie nicht ausgewertet. →
> > REOPENED
OK

> > (In reply to comment #14)
> > > (In reply to comment #13)
> > > > Wenn ich es richtig sehe, dann sind noch diese beiden Punkte offen:
> > > > 
> > > > (In reply to comment #8)
> > > > > Es fehlt noch ein Hinweis auf ungejointen systemen, falls eine App deswegen
> > > > > nicht installiert werden kann.
> > > > 
> > > > (In reply to comment #9)
> > > > > Es fehlt ein html escape der Einträge aus den .ini Dateien
> > > 
> > > Hinweis wurde hinzugefügt.
> > Ja das funktioniert. Der Installationsbutton ist dann auch nicht vorhanden.
> > Die Formulierung sollte eventuell angepasst werden ("Treten Sie einer Domäne
> > bei…" ist direkte Anrede außerdem soll das System und nicht die Person einer
> > Domäneb beitreten).
OK

> > > Besser kein HTML-Escape der Einträge. Hersteller könnten Auszeichnungen in den
> > > Texten wollen (Listen, Links, Italics...). Die .ini-Dateien zählen in dem Sinne
> > > nicht nicht als "User-Input".
> > > 
> > > univention-management-console-module-appcenter 2.0.69-1.15.201211121918
> > hmm… In Angaben wie Name, Version, Screenshot, Website und so sollte definitiv
> > kein HTML möglich sein. Sonst muss in jeder XML Datei bedacht werden, dass
> > diese Zeichen dort schon escaped sind.
OK

Changelog OK
Comment 19 Stefan Gohmann univentionstaff 2012-12-12 21:08:11 CET
UCS 3.1-0 has been released: 
 http://forum.univention.de/viewtopic.php?f=54&t=2125

If this error occurs again, please use "Clone This Bug".