Project

General

Profile

Actions

Bug #4393

closed

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

Added by David Lesimple over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Administration
Start date:
03/15/2013
Due date:
% Done:

100%

Estimated time:
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.

Actions #1

Updated by Nicolas Eysseric over 8 years ago

  • Status changed from New to Assigned
  • Assignee set to Cécile Bonin
  • Target version set to 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.

Actions #2

Updated by Cécile Bonin over 8 years ago

  • Status changed from Assigned to In progress...
Actions #3

Updated by Cécile Bonin over 8 years ago

  • % Done changed from 0 to 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__

Actions #4

Updated by Cécile Bonin over 8 years ago

  • Status changed from In progress... to Resolved
Actions #5

Updated by Yohann Chastagnier over 8 years ago

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.
Actions #6

Updated by Yohann Chastagnier over 8 years ago

  • Target version changed from Version 5.13 to Version 5.12.2
Actions #7

Updated by Nicolas Eysseric over 8 years ago

  • Status changed from Resolved to Closed

OK. Validé et intégré.

Actions

Also available in: Atom PDF