Après 4 mois de silence, à peine entrecoupés de quelques éléments de roadmap, j’ai le plaisir de vous annoncer la sortie de Typo 5.0.3.98.1, plus simplement appelé Typo 5.0.4 bêta 2, mais Rubyforge exige des numéros de version numériques. Ne vous fiez pas à son numéro de version, il s’agit bien d’une version majeure du blogware historique en Ruby on Rails qui fait tourner ce site, et bien d’autre encore.

Pourquoi une bêta 2 avant l’annonce de la bêta 1 ? C’est une bonne question, et je vous remercie pas de me l’avoir posée. Quelques heures après la sortie de Typo 5.0.4 bêta, Michael Morin nous signalait une vulnérabilité de sécurité critique affectant l’ensemble des versions de Typo inférieures à la 5.0.3.98.1. Cette vulnérabilité critique permet, dans certains cas, d’exécuter arbitrairement du code sur l’installation cible. Le proof of concept fourni par Michael s’est montré particulièrement convainquant.

Il est maintenant temps de détailler les principaux changements de cette nouvelle version.

Les rôles multiples, enfin !

Grâce au travail de Davide D’Agostino et de Cyril Mougel, Typo dispose supporte enfin des utilisateurs aux profils différents. Les profils existants sont administrateur, et rédacteur, centré sur les fonctions de publication.

Le système de gestion des rôles développé par Davide est particulièrement astucieux.

Chaque partie de l’administration, définie par un contrôleur, ou un contrôleur et un ensemble de méthodes, est stockée dans un module. Ces derniers sont définis dans un initializer et chargés au démarrage de Typo.

À chaque profil, défini en base de données, est assigné un certain nombre de modules. On peut donc facilement rajouter des profils disposant de droits fonctionnels plus ou moins restreints, ce qui ajoute une grande souplesse au système.

Au lancement de l’application, des classes et méthodes sont générées à la volée en fonction des modules spécifiés plus haut. Chaque fois qu’un utilisateur va vouloir accéder à un espace de l’administration, les modules auxquels il a accès seront comparés au module correspondant. C’est aussi simple que cela.

Nous travaillons encore sur des rôles plus ciblés, comme la possibilité de n’avoir de visibilité que sur son propre contenu, mais cela ne sera malheureusement pas présent sur cette version.

Un nouveau thème par défaut

Nous souhaitions offrir à Typo une identité bien à lui, qui se démarque des thèmes bleus et blancs passe partout fournis sur Wordpress ou Dotclear pour ne citer qu’eux.

La société française O2sources, très engagée dans le monde de l’open source, nous a proposé un nouveau thème privilégiant les couleurs chaudes, la simplicité, et une interface fluide… jusqu’à un certain point. Le travail d’Hélène ayant recueilli l’unanimité parmi nous, Typographic est devenu notre nouvelle identité.

typographic

Dirtylicious et Standard Issue, proposés depuis la version 5.0 ont été retirés et sont désormais disponibles en téléchargement sur Typogarden.

Un back office refondu

L’administration proposée depuis la 5.0 était décidément trop lourde, et méritait une refonte aussi bien graphique que fonctionnelle. C’est maintenant chose faite, et le résultat est des plus satisfaisants. Une très grande partie du code a été supprimée ou allégée, au profit d’une interface unifiée. Cette dernière est bien plus simple et plus légère à utiliser, et l’on commence enfin à s’éloigner du modèle CRUD hérité des premières versions de Typo.

L’interface de publication a été entièrement repensée pour devenir bien plus simple d’utilisation. L’éditeur live preview a été supprimé car il surchargeait le serveur de requêtes AJAX.

Typo dispose enfin d’une page d’administration des tags, ainsi que de l’autocomplétion sur ces derniers. Cette zone de gestion évoluera elle aussi avec le temps : suggestion de tags semblables, fusion…

Le retour de la gem

La gem Typo et son installateur automatisé sont de retour, et Typo n’a jamais été aussi simple à déployer :

  # gem install typo
  # typo install /some/path

Et voilà, Typo tourne désormais avec un serveur Mongrel et une base de données SQLite.

Nous ne recommandons cependant pas cette configuration pour une installation en production. Bien qu’il existe un grand nombre de manières de faire tourner une application Ruby on Rails, nous conseillons l’utilisation de mod_rails avec une base MySQL comme la manière la plus simple et robuste de faire tourner Typo.

That’s all folks, comme on dit. Rendez-vous le 21 juillet pour la version finale. D’ici là, amusez-vous bien.

Perry the Platypus wants you to subscribe now! Even if you don't visit my site on a regular basis, you can get the latest posts delivered to you for free via Email: