Projet

Général

Profil

Actions

Bug #4393

fermé

Manque d'informations sur la création d'un domaine SQL avec espaces et/ou accents

Ajouté par David Lesimple il y a presque 12 ans. Mis à jour il y a plus de 11 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
Catégorie:
Administration
Début:
15/03/2013
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Tous
Votre version de Silverpeas:
5.11.1
Système d'exploitation:
Votre base de données:
Toutes
Livraison en TEST:
Livraison en PROD:

Description

Lors de la création du domaine SQL, la saisie devrait être mieux controlée, car il est impossible de saisir un nom de domaine
comportant des espaces et/ou des caractères spéciaux.

C'est concevable, mais cette limitation devrait être complétée par un texte d'explication indiquant qu'il est ensuite possible
de renommer le nom du domaine une fois crée.

Mis à jour par Nicolas Eysseric il y a plus de 11 ans

  • Statut changé de New à Assigned
  • Assigné à mis à Cécile Bonin
  • Version cible mis à Version 5.13

Il faut en fait remplacer les caractères spéciaux utilisés pour le nom du domaine par des caractères simples (remplacer les caractères accentués par leurs versions sans accent, supprimer les espaces) lors de la création des fichiers sur le serveur.
L'utilisateur ne doit pas être tributaire des contraintes imposées par le serveur de fichiers.

Mis à jour par Cécile Bonin il y a plus de 11 ans

  • Statut changé de Assigned à In progress...

Mis à jour par Cécile Bonin il y a plus de 11 ans

  • % réalisé changé de 0 à 100

- Lors de la création d'un domaine (SQL ou externe) dont le nom existe déjà pour un autre domaine, un message d'erreur explicite "Le nom de domaine existe déjà" est renvoyé à l'utilisateur

- Lors de la création d'un domaine SQL, le nom de domaine saisi par l'utilisateur est stocké en base dans la table st_domain et est affiché dans l'interface, ceci quelque soient les caractères spéciaux que ce nom comporte.

Si ce nom comporte des caractères spéciaux, celui-ci doit être transformé en vue de la création des fichiers properties de domain et authentication, et la création des 3 tables en base de données, de la facon suivante :
Si le nom du domaine comporte des caractères accentués, ceux-ci sont remplacés par leur équivalent non accentués.
De plus, si le nom du domaine comporte des espaces ou des caractères non alphanumériques, ceux-ci sont remplacés par le caractère '_'
Enfin, le nom du domaine comporte plus de 42 caractères, celui-ci est tronqué à 42 caractères (sinon sql exception lors de la création de la table Domain_[nom]_Group_User_Rel)

Exemple : le nom toto et tata ²&é"'(-è_çà)=^$ù,;:! titi <~#{[|`\^@]}¨£%µ?./§>¤ sera transformé en toto_et_tata____e____e_ca____u_____titi__

Mis à jour par Cécile Bonin il y a plus de 11 ans

  • Statut changé de In progress... à Resolved

Mis à jour par Yohann Chastagnier il y a plus de 11 ans

Des limitations de taille des noms de table ou de colonne existent selon les bases de données, et de ce fait, quelques modifications sont apportées au travail déjà réalisé.

Parmi les bases de données prises en charge par Silverpeas, Oracle est la plus restrictive en n'autorisant pas plus de 30 caractères pour les noms de table ou de colonne.

Sur ces 30 caractères, 21 d'entre eux sont utilisés par la mécanique interne de Silverpeas (notamment pour les tables du domaine dans la base de données).

De ce fait, le traitement qui permet d'obtenir un nom technique commun aux fichiers de propriétés et aux tables de la base de données est modifié afin d'obtenir un nom unique et compatible, malgré le peu de caractères à disposition :
  • suppression des accents (inchangé)
  • transformation des exposants en alphanumériques, exemple ² devient 2 (ajouté)
  • les caractères non alphanumériques sont supprimés (modifié)
  • le résultat final correspond à la concaténation de l'identifiant technique d'un domaine (un entier positif unique) avec la chaîne de caractère obtenu via l'application des points précédents. Si ce résultat dépasse la longueur maximale possible, alors il est tronqué.
    Ainsi, pour reprendre l'exemple de Cécile et en considérant que le prochain identifiant de domaine est 27, pour le nom fonctionnel toto et tata ²&é"'(-è_çà)=^$ù,;:! titi <~#{[|`\^@]}¨£%µ?./§>¤ est calculé le nom technique 27totoett, ou encore pour éq : E = mc² est calculé 27eqEmc2.

Mis à jour par Yohann Chastagnier il y a plus de 11 ans

  • Version cible changé de Version 5.13 à Version 5.12.2

Mis à jour par Nicolas Eysseric il y a plus de 11 ans

  • Statut changé de Resolved à Closed

OK. Validé et intégré.

Actions

Formats disponibles : Atom PDF