PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Stocker les paramétrages généraux du client et ceux des utilisateurs
Stocker les paramétrages généraux du client et ceux des utilisateurs
Iniciado por Ferbak, 04,mar. 2019 13:18 - 7 respuestas
Miembro registrado
50 mensajes
Publicado el 04,marzo 2019 - 13:18
Bonjour à tous,

Je voudrais stocker des paramètres,
Propres à chaque client : Adresse du serveur, coefficient de calculs, des montants forfaites...
Propres à un utilisateur : Niveau de zoom, afficher ou pas certains types d’éléments,...

En sachant qu'idéalement, ces infos doivent être protégées, et donc pas stockée dans un fichier lisible.

Est-ce qu'il y a une méthode spécifiquement destinée à cet usage ou plusieurs façon de procéder?

J'ai bien pensé à créer des tables "Config_general" avec un seul enregistrement, et "Config_user" avec plusieurs enregistrement, mais je préfère m'informer avant d'avancer dans cette voie.

Merci d'avance pour vos retours,

Ferbak
Miembro registrado
1.640 mensajes
Publicado el 04,marzo 2019 - 14:47
Hello,

J'aurais fais pareil si ça peux te rassurer dans ton choix ;)
Miembro registrado
86 mensajes
Publicado el 04,marzo 2019 - 15:18
Bonjour,

Nous avons créé une table PARAMS qui s'alimente comme un fichier INI. On a donc pris les mêmes syntaxes que les fonctions InitLit et IniEcrit.
La table a donc 5 colonnes.
- Identifiant unique
- Paramfile : COMMON pour les paramètres communs ou USER-xx (xx étant un id) pour les paramètres des utilisateurs
- SectionWord
- KeyWord
- KeyValue

Si tu veux, tu peux tout crypter pour le plaisir.

--
Benoit Neve
Publicado el 04,marzo 2019 - 16:05
Idem pour nous, on utilise un fichier de paramètres en clé-valeur à la place d'un fichier ini
Miembro registrado
50 mensajes
Publicado el 04,marzo 2019 - 21:41
Bonsoir à tous et merci pour vos retours. Je vais tester tout ça :)
Publicado el 05,marzo 2019 - 10:36
Ferbak a écrit :
Bonjour à tous,

Je voudrais stocker des paramètres,
Propres à chaque client : Adresse du serveur, coefficient de calculs, des
montants forfaites...
Propres à un utilisateur : Niveau de zoom, afficher ou pas certains types
d’éléments,...

En sachant qu'idéalement, ces infos doivent être protégées, et donc pas
stockée dans un fichier lisible.

Est-ce qu'il y a une méthode spécifiquement destinée à cet usage ou plusieurs
façon de procéder?

J'ai bien pensé à créer des tables "Config_general" avec un seul
enregistrement, et "Config_user" avec plusieurs enregistrement, mais je
préfère m'informer avant d'avancer dans cette voie.

Merci d'avance pour vos retours,

Ferbak


On peut également utiliser le registry et crypter les données.
Miembro registrado
86 mensajes
Publicado el 05,marzo 2019 - 11:06
Philippe Lienart a écrit :
Ferbak a écrit :
Bonjour à tous,

Je voudrais stocker des paramètres,
Propres à chaque client : Adresse du serveur, coefficient de calculs, des
montants forfaites...
Propres à un utilisateur : Niveau de zoom, afficher ou pas certains types
d’éléments,...

En sachant qu'idéalement, ces infos doivent être protégées, et donc pas
stockée dans un fichier lisible.

Est-ce qu'il y a une méthode spécifiquement destinée à cet usage ou plusieurs
façon de procéder?

J'ai bien pensé à créer des tables "Config_general" avec un seul
enregistrement, et "Config_user" avec plusieurs enregistrement, mais je
préfère m'informer avant d'avancer dans cette voie.

Merci d'avance pour vos retours,

Ferbak


On peut également utiliser le registry et crypter les données.


Le registry peut être pratique pour l'adresse du serveur et ce qui touche à la machine qui se connecte. Je préfère cependant le fichier INI qui lui est transportable.
Par contre, stocker les informations de l'utilisateur est pour moi une erreur. S'il change de poste, il perd ses paramètres. Pire encore pour les utilisateurs nomades...
Et je ne parle même pas des paramètres de la société du type coefficient de calcul, montants forfaitaires, etc... qui eux donneront de violents effets de bord s'ils sont stockés sur chaque machine.

--
Benoit Neve
Miembro registrado
50 mensajes
Publicado el 05,marzo 2019 - 11:20
J'ai finalement opté pour
- un fichier d'analyse interne à l'appli pour la config générale. Une fenêtre s'ouvre au lancement si certaines valeurs n'ont pas été encodées.
- un fichier d’analyse interne à l'appli pour la config utilisateur. Le nom d'utilisateur est récupéré après l'ouverture du groupware, et un enregistrement est créé si il n'existe pas, sinon lu
- Enfin, un fichier ini sur le pc, avec le nom du client et le mot de passe d'accès, ce qui redirige vers le bon serveur.

Dans l'ordre donc (j'en profite pour avoir votre avis sur ma manip):

- On vérifier si un fichier ini de config "liaison serveur" existe,
si oui, on ouvre la connexion au serveur en question
si non, une fenêtre demande l'identifiant général et le mot de passe de connexion au serveur (pas forcément le même que le mot de passe réel)
- Si la connexion est ok, on vérifie le nom d'utilisateur et on créé un enregistrement dans le fichier "paramètres user" si besoin
- On vérifie la config des paramètre d'application et au besoin on ouvre la fenêtre de config pour éviter que du code soit effectué avec des valeurs à 0
- L'application se lance définitivement

De la sorte, à la première connexion sur une machine, il faut entrer une fois la config serveur, peu importe l'utilisateur.
Une fois la config générale des paramètres de l'application par une personne, sur n'importe quelle machine, c'est utilisable pour tout le monde
La config d'un user est sauvée peu importe son poste de travail (à condition qu'on ne change pas son nom dans le groupware bien sûr).

Je ne sais pas ce que vous en pensez, mais après quelques tests et recherches, c'est ce qui me semble le plus propre. Si vous avez des remarques, n'hésitez pas, c'est toujours bienvenu ;)

Ferbak