Project

General

Profile

Feature #11354

Usage restreint

Added by Nicolas Eysseric 8 months ago. Updated about 20 hours ago.

Status:
Integration in progress...
Priority:
High
Category:
Messagerie instantanée
Start date:
02/14/2020
Due date:
% Done:

0%

Estimated time:

Description

Actuellement, lorsqu'elle est installée, la messagerie instantanée est disponible pour l'ensemble des utilisateurs.

L'objectif de cette évolution est de pouvoir restreindre son usage à un (ou plusieurs) groupe(s) d'utilisateurs.
Un utilisateur nouvellement ajouté au groupe doit pouvoir utiliser la messagerie instantanée.
Un utilisateur supprimé du groupe ne doit plus pouvoir utiliser la messagerie instantanée.

De la même manière, cette évolution doit permettre aussi de limiter la création d'un salon (discussion de groupe) à une liste d'utilisateurs.
Cette liste sera facilement gérée grâce à un groupe. Seuls les utilisateurs appartenant à ce groupe seront en mesure de créer un groupe de discussion.

Les groupes seront déclarés dans un fichier properties. Deux paramètres distincts doivent donc être gérés.
Chaque paramètre peut spécifier une liste de groupes.

#1

Updated by Nicolas Eysseric 5 months ago

  • Status changed from New to Assigned
  • Assignee set to Miguel Moquillon
#2

Updated by Nicolas Eysseric 5 months ago

  • Description updated (diff)
#3

Updated by Miguel Moquillon 23 days ago

  • Status changed from Assigned to In progress...
#4

Updated by Miguel Moquillon 23 days ago

Pour information

Le ou les groupes d'utilisateurs qui peuvent accéder au service de chat est donné par la propriété

chat.xmpp.domain.groups

dans le fichier de propriétés org/silverpeas/chat/settings/chat.properties. Cette propriété accepte comme valeur une liste, séparée par des virgules, d'identifiants uniques de groupes d'utilisateurs dans Silverpeas.

Si un groupe d'utilisateurs, référencé par cette propriété, venait à être supprimé, rien n'est fait : les comptes des utilisateurs présents sur le serveur ne sont pas supprimés. De même si un utilisateur venait à être retiré d'un groupe référencé par la propriété. En effet, un utilisateur retiré (pour cause de suppression de groupe ou pour cause de retrait explicite) à un moment peut se retrouver à nouveau dans un groupe éligible et il serait mal venue qu'il perde son historique, son roster, et autres informations liées à son compte XMPP.

Toutefois, le mécanisme de création des comptes utilisateurs auprès du service XMPP a été revue. Désormais, le compte XMPP d'un utilisateur est créé que si et seulement si il fait partie d'un des groupes pour lequel le chat a été activé et qu'il fait partie d'un domaine d'utilisateurs pour lequel une association avec un domaine XMPP existe. Ceci a pour conséquence que si un utilisateur est ajouté dans un des groupes référencés par la propriété (soit directement, soit par le biais d'un groupe parent) alors automatiquement son compte XMPP est crée auprès du serveur (s'il ne l'est déjà et si son domaine est associé avec un domaine XMPP).

#5

Updated by Miguel Moquillon 19 days ago

Pour information

Dans SilverChat

Avec la version 1.5.0, SilverChat supporte l'ACL qui permet d'indiquer ce que l'utilisateur courant a droit ou non. Pour l'instant, une seule ACE est supportée et ceci dans le cadre de cette feature : la possibilité de créer un groupe de discussion et par conséquent d'inviter des contacts à ce groupe. L'ACL est spécifiée lors de l'initialisation de SilverChat par le biais des options d'initialisation. L'ACL est un objet qui comprend, pour chaque attribut, un contexte qui regroupe les ACE vis à vis de ce contexte. Chaque ACE accepte un booléen comme valeur. Ainsi, dans notre cas, l'autorisation ou non de pouvoir créer un groupe de discussion se fait avec l'ACE acl.groupchat.creation. Par défaut, les ACE sont toutes vraies et donc toutes les fonctionnalités sont accessibles à l'utilisateur courant. Voici un exemple donné ci-dessous d'initialisation avec une restriction sur la création de groupes de discussion :

SilverChat.init({
        ...
        // l'ACL
        acl : {
          // le contexte : ici les groupes de discussion
          groupchat : {
             // l'ACE pour la création
             creation: false
          }
        },
        ...
}).start();

Dans Silverpeas

Cette nouvelle fonctionnalité de SilverChat est utilisée ici pour restreindre la possibilité de créer des groupes de discussions à un ou plusieurs groupes d'utilisateurs dans Silverpeas. Pour ce faire, une nouvelle propriété a été introduite dans le fichier de propriétés org/silverpeas/chat/settings/chat.properties :

chat.acl.groupchat.creation

Cette propriété accepte comme valeur une liste, séparée par des virgules, d'identifiants uniques de groupes d'utilisateurs dans Silverpeas. Seuls les groupes spécifiés avec cette propriété sont à même de pouvoir créer des groupes de discussion et d'inviter des utilisateurs à ces groupes. Si la propriété n'est pas valorisée, alors c'est le comportement par défaut qui est adopté : tout le monde peut créer des groupes de discussion.

Attention, il n'y a pas de vérification de l’existence ou non du ou des groupes d'utilisateurs indiqués. Ainsi, il est possible de désactiver la fonctionnalité de créer des groupes de discussion pour l'ensemble des utilisateurs de Silverpeas en spécifiant un identifiant de groupe inexistant comme unique valeur à cette propriété. Aussi, au regard de ceci, si un groupe d'utilisateurs, référencé par cette propriété, venait à être supprimé, il peut arriver que plus aucun utilisateur ait la capacité de pouvoir créer des groupes de discussions. Il faudra donc à l'administrateur ou au gestionnaire de porter une attention particulière sur ce point.

Rappel : seul le créateur d'un groupe de discussion peut inviter un contact.

#6

Updated by Miguel Moquillon 19 days ago

  • Status changed from In progress... to Resolved
#7

Updated by Yohann Chastagnier about 20 hours ago

  • Status changed from Resolved to Integration in progress...

Also available in: Atom PDF