Groupe 2D (outils de communication)

Date de création : 30 avril 2004
Dernière modification :
Diffusion : internet

Canal « Annonces »

 

1. Généralités

Le canal "Annonces" a été développé par Columbia University. Ce canal sert aussi bien à la gestion qu'à la consultation d'annonces (ou actualités). Il fait appel à deux canaux en mode servant pour la gestion de groupes et des permissions.

Vous pouvez télécharger le canal original sur le site https://www.mis4.udel.edu/JasigCH/

Les annonces sont groupées par thèmes (topics). Les droits de souscription sont associés aux thèmes. Les permissions sur les activités liées au thème (publication des annonces, définition des propriétés du thème, ...) peuvent être attribuées individuellement par l'administrateur à une personne ou à un groupe.

En ce qui concerne la gestion :

Pour ce qui a trait à la consultation :

IL est possible de publier plusieurs instances du canal à partir de la version announcements-esup-1-RC2.

1.1. Les raisons pour modifier ce canal

L'inconvénient de ce canal réside dans le fait qu'il permet à tout utilisateur ayant droit de s'allouer à ce canal d'initier un nouveau thème et de publier des annonces (réf. la partie "Points négatifs" du document écrit par Julien Marchal ).

Au travers du canal en mode servant de gestion de permissions (ou de groupes), l'utilisateur pourrait accéder éventuellement à des données sensibles (suivant les configurations) de l'objet IPerson, ce qui constitue un autre point faible.

Le rendu de la sortie est assez sommaire, les messages sont affichés sous une forme compacte, les tags html et le retour à la ligne ne sont pas pris en compte.

Et le canal parle la langue de Shakespeare ...

A noter qu'il est facile de restreindre à un seul groupe (Portal Administrator) la création des thèmes sans modifier les codes sources. Comme "Portal Administrator" est le "super utilisateur" du socle, nous avons préféré créer un autre groupe lui permettant la gestion de ce canal.

1.2. Les modifications apportées

A partir de la version announcement-esup-1.1-RC1 :

Les sources sont disponibles : announcement-esup-1.1-RC3.zip

1.3. Ce que vous pouvez faire avec ce canal

 

1.4 Pour personnaliser le rendu

2. Installation et configuration du canal

Pré-requis

L'administrateur (compte admin) doit se familiariser avec le canal de gestion des groupes.

2.1 Création de deux groupes "TopicAdminGroup" et "rootGroupSubscribers"

Avec le compte admin (ou un compte faisant partie du groupe Admin), vous pouvez créer les deux groupes "TopicAdminGroup" et "rootGroupSubscriber" sous le groupe "toutes personnes" (everyone) à l'aide du canal de gestion de groupes.

Remarquez que dans la figure ci-dessus, nous avons tapé "AnnonceAdminTopic" comme nom pour le groupe "TopicAdminGroup".
De même, nous avons entré "rootAnnSubscribers" comme nom pour le groupe "rootGroupSubscriber".

Vous pouvez utiliser un outil externe tels que DbVisualizer (pour toute base de données, il existe une version gratuite) ou phpMyAdmin (uniquement pour MySQL) pour visualiser les enregistrements créés dans la table "UP_GROUP" :


Vous pouvez donner le nom que vous voulez pour le champ "GROUP_NAME". Remarquez que la valeur du champ "ENTITY_TY_ID" est égale à "2" correspondant au type d'entité "IPerson" (i.e. "groupe des utilisateurs" et non "groupe des canaux"). Notez bien les valeurs du champ "GROUP_ID" de ces deux groupes pour paramétrer le fichier de config.

2.2 Installation

Dézipper le fichier announcement-esup-1.1-RC1.zip, un répertoire "announcement-esup-1.1-RC2" sera créé.

fichier build.properties

modifier le fichier build.properties pour l'adapter à votre chemin et configurer les paramètres suivants :

fichier de configuration

modifier le fichier properties/announcements/CAnnouncements.properties pour paramétrer le groupe "rootGroupSubscriber" créé :

# Properties for CAnnouncements channel
#The class which is responsible for generating an authoritative set of all
  topics available to th system
TopicStoreAuthority=TopicStore.RDBM

#true or false - use to enable or disable permission checking (should always be true in production)
usePermissions=true

# A Read-only topic store which pulls topic XML from a remote source over an http connection
# Note that local topics, if saved with servlet publication on,
# can be accessed via 'CAnnouncements.jsp?topicID={int}'
TopicStore.HTTP=edu.columbia.ais.portal.channels.announcements.HTTPTopicStore

# A topic store which utilizes a database
TopicStore.RDBM=edu.columbia.ais.portal.channels.announcements.RDBMTopicStore

#The default refresh period for topics - must be hourly, daily, weekly, monthly or yearly
Refresh.Period=hourly

#The default refresh frequency for topics - must be an integer, 1-12
Refresh.Frequency=12

# added # le nom du groupe est "local." suivi de numéro identifiant du groupe (la valeur du champ "GROUP_ID" de la table "UP_GROUP") rootGroupSubscriber=local.131 # Par défaut lors de chaque modification, l'auteur de l'annonce change. Pour garder l'auteur initial, mettre la valeur du paramètre updateSender=F
updateSender=T

Attention : à partir de la version announcement-esup-1-RC2, le paramètre "TopicAdminGroup" sera configuré comme paramètre du canal lors de la publication du canal.

base de données

Le canal utilise deux tables principales : UPC_CU_ANN_TOPIC, UPC_CU_ANN_MESSAGE (et les autres tables existantes liées à la gestion de groupes et de permissions)

Ces deux tables UPC_CU_ANN_TOPIC, UPC_CU_ANN_MESSAGE sont enregistrées dans la même base de données que uPortal.

Pour faire un update du canal (version précédente) déjà publié :

ajouter des champs supplémentaires "TITLE", "MESSAGE_SUMMARY" dans la table UPC_CU_ANN_MESSAGE, et mettre un titre par défaut pour les annonces existantes :

update UPC_CU_ANN_MESSAGE set TITLE = 'titre par defaut';

Remarque :

si vous utilisez MySQL comme base de données :

la clef primaire de la table "UPC_CU_ANN_MESSAGE" est (MESSAGE_ID, TOPIC_ID), et la taille maximale d'une clef pour mysql est de 500, il faut modifier dans le fichier "announcements_tables.xml" la taille des champs "MESSAGE_ID" et "TOPIC_ID" en 250 au lieu de 255.

<column>
<name>MESSAGE_ID</name>

<type>VARCHAR</type>

<param>250</param>
</column>

<column>
<name>TOPIC_ID</name>

<type>VARCHAR</type>

<param>250</param>
</column>

.....

<primary-key>MESSAGE_ID</primary-key>

<primary-key>TOPIC_ID</primary-key>

Vous pouvez créer ces deux tables dans la base uPortal "à la main". Vous trouverez le script SQL dans le répertoire "db" du package.

Déploiement du canal

Allez dans le répertoire du package announcement décompressé (ex: cd announcement-esup-1.1-RC1) :

un fichier announcement-esup.jar sera installé dans le répertoire {portal-context}/WEB-INF/lib

A noter que le fichier CAnnouncements.jsp est également déployé dans le répertoire {portal-context}, les feuilles de style associées à ce fichiers sont copiées dans le répertoire {portal-context}/WEB-INF/classes/org/jasig/portal/channels/CGenericXSLT/Announcements et le répertoire {portal-context}

 

3. Publication du canal

Publier le canal "Annonces"

Choisissez le type de canal : custom channel

la classe du canal : edu.columbia.ais.portal.channels.announcements.CAnnouncements

les paramètres du canal :

paramètre : instance (la valeur de ce paramètre doit être unique lors de chaque publication du canal)

paramètre : TopicAdminGroup (la valeur = groupe autorisé à gérer les annonces de cette instance du canal)

 

4. Utilisation du canal

4.1 Ajouter des administrateurs

Vous pouvez via le canal de gestion de groupe ajouter les utilisateurs comme membres du groupe "TopicAdminGroup" (ici on a nommé le nom du groupe : AnnonceAdminTopic):

Au cas où vous désigneriez un groupe issu de LDAPGroupStore comme "TopicAdminGroup" groupe, la valeur doit être ldap.xxx (où xxx désigne group-key défini dans le fichier de config. du LDAPGroupStore). Vous pouvez aussi ajouter des membres dans le groupe "Portal Administrator". Attention, ils ont un droit supérieur que celui des membres du groupe "TopicAdminGroup".

4.2 Création d'un thème

Un thème est caractérisé par des méta-données telles que le titre, la description, le langage, le type du thème, le cadence de rafraîchissement.

Type du thème

Cadence de rafraîchissement

Lors de la définition du thème, vous pouvez indiquer le cadence de rafraîchissement du thème. Par défaut, le rafraîchissement se fait toutes les 5 minutes (paramétré dans le fichier de config.). Pour un thème du type local (le canal "Annonces"), cela signifie que toutes les 5 minutes le canal va vérifier s'il y a de nouvelle annonce enregistrée dans la base de données. Pour un thème du type à distance, cela désigne que le client (l'url) doit aller récupérer (technique de pull) les informations toutes les 5 minutes sur le serveur distant.

Groupe Souscripteurs

Lorsqu'un thème est créé, un nouveau groupe nommé "intitulé_du_thème souscripteurs" sera automatiquement créé comme membre du groupe "rootGroupSubscriber" (ici nous avons nommé ce groupe "rootAnnSubscribers) :

L'administrateur qui a ajouté ce thème est membre de ce groupe créé s'il souscrit à ce thème.

4.3 Gérer les thèmes

Les différentes activités associées à un thème :

 

4.4 Attribution des droits

Forcer les souscriptions

Lorsque le thème intitulé "Evolution du portail" a été créé, un groupe nommé "Evolution du portail souscripteurs" est automatiquement créé et attaché sous le groupe "rootGroupSubscribers". Toute personne appartenant à ce groupe a le droit de souscrire à ce thème. Si un utilisateur est membre direct de ce groupe, il aura le choix de souscrire ou non à ce thème. En revanche, si l'utilisateur est membre d'un groupe qui est lui-même membre du groupe "Evolution du portail souscripteurs", l'utilisateur aura le droit de souscription par héritage, dans ce cas, la souscription à ce thème pour lui est automatique sans qu'il en fasse la demande (souscription forcée).

Ainsi pour forcer la souscription à un thème pour un groupe de personnes, il suffit de l'ajouter comme membre du groupe lié au thème. Dans l'exemple ci-dessous, toute personne appartenant au groupe "Presidence" a la souscription forcée pour le thème "Evolution du portail".

Assigner des permissions

L'administrateur peut attribuer les permissions individuellement sur les activités liées à un thème à une personne ou à un groupe.

Ici l'administrateur donne droit au personnel de la présidence de publier un brouillon dans le thème "Actus présidence UHP".

4.5 Souscrire à des thèmes

un utilisateur peut souscrire ou se désabonner à des thèmes proposés.

Le symbole "X" indique l'administrateur lui a forcé la souscription pour ce thème. L'utilisateur ne peut pas se désabonner à ce thème.

 

4.6 Ajouter une annonce

Le nombre maxi. de caractères autorisés à saisir pour le résumé est paramétré dans le fichier de config (par défaut, 500 caractères).

Deux editeurs wysiwyg ont été intégrés pour faciliter la mise en page des annonces. Vous pouvez choisir l'un ou l'autre, et saisir votre message en mode wysiwyg ou en mode texte.

Attention :

Pour que les tags html soient pris en compte lors de rendu, il faut configurer un paramètre dans le fichier portal.properties :

org.jasig.portal.serialize.BaseMarkupSerializer.allow_disable_output_escaping=yes

Les paramètres d'une annonce :

Priorité : L'ordre d'affichage des annonces est trié par leurs priorités et les dates.

Date d'apparition et date d'expiration : Le cycle de vie d'une annonce est géré par les dates d'apparition et d'expiration du message. En l'absence d'indication de la date d'expiration, l'annonce sera expirée dans un mois à partir de la date d'apparition.

 

4.7 publier un thème comme un canal indépendant

Le fichier CAnnouncements.jsp est livré avec la distribution.

Choisissez le type de channel "XML Transformation" pour publier un thème comme un canal indépendant :

URI XML : http://host:port/contexte_du_portail/CAnnouncements.jsp?topicID=xx

xx est le numéro identifiant (la valeur du champ "TOPIC_ID" de la table "upc_cu_ann_topic") du thème.

 

Attention :

Dans ce cas, il faut avoir coché la case "rendre le thème disponible pour les portails à distance" lors de la définition du thème.

4.8 publier un thème en flux RSS

Ce flux RSS est bien entendu accessible de l'extérieur par http://portail.univ.fr/CAnnouncements.jsp?topicID=1&type=rss

Attention :

Dans ce cas, il faut également avoir coché la case "rendre le thème disponible pour les portails à distance" lors de la définition du thème.

4.9 le rendu d'une annonce

4.10 les rendus de deux canaux

Notez que le thème "Evolution du portail" a été publié comme un canal indépendant, le même thème se trouve également dans le canal "Annonces".


Remarques :

Lorsque vous avez besoin de manipuler les groupes (ajout, suppression de groupe...), pour respecter l'intégrité de données, évitez de les faire directement dans la base de données, utilisez toujours le canal de gestion des groupes.

Lors d'édition d'un groupe, l'entité est verrouillée pour éviter la création des groupes circulaires. Après l'édition, pensez à cliquer sur l'icône "terminer édition" pour libérer le verrou.