Page 1 sur 1
Acces simultanés

Publié:
01 Déc 2010 à 17:14
par seroa
Bonjour,
J'ai une application ou les utilisateurs se connectent afin de remplir un formulaire.
Au moment de la sauvegarde (dans le webQuerySave), un agent s'exécute et calcule un solde pour cet utilisateur.
Je voudrais interdire les accès simultanés d'un même utilisateur afin d'éviter à l'utilisateur de fausser le solde.
C'est à dire que s'il ouvre 2 pages web sur l'appli, qu'il ne puisse pas sauvegarder les 2 formulaire en meme temps. Cela entrainerait des erreurs.
Donc il faudrait que le second save attente la fin du premier.
Merci.

Publié:
01 Déc 2010 à 20:39
par roubech
ce solde, il est stocké dans un autre doc que celui qui est en cours de sauvegarde ?
sinon, je ne comprend pas le pb. Si le même user créé 2 docs différents, en quoi le calcul est faussé ?
si tu as un doc Solde par user et que la sauvegarde d'un autre doc entraine la maj du doc solde alors, tu peux essayer de créer un doc de vérouillage au début du WebQuerySave s'il n'en existe pas déjà un et à la fin une fois que ton solde est mis à jour tu supprime le doc verrou. Le plus délicat, c'est si un doc verrou existe dejà il faut bloquer la sauvegarde du second doc sans pour autant perdre les données postées par le user (en web, t'as pas le doc encore ouvert à l'écran).
Penser aussi un dévérouillage automatique si un pb survient

Publié:
02 Déc 2010 à 08:25
par seroa
Merci pour ta réponse,
oui, ce solde est stocké dans un document, le document user, il y a bien un solde par user.
Aucun doc verrou n'existe pour l'instant. Peut tu m'en dire plus sur la création de doc verrou ?

Publié:
02 Déc 2010 à 11:05
par Michael DELIQUE
salut
ben c'est simple,
quand tu ouvre un document, tu as une fonction qui va regarder si un document de verrouillage existe.
si existe pas, le créé et vérrouille, met le nom de l'utilisateur et renvois non vérouillé
si existe vérifie que le nom de l'utilisateur en renseigné
si vide le met et vérrouille et renvois non vérouillé
si pas vide regarde si le nom est différent de celui de l'utilisateur en cours
si identique ne fait rien et renvois non vérrouillé
si différent ne fait rien et renvois verrouillé
quand on ferme le document, une fonction va dévérrouillé (cad retirer lenom du doc de verrouillage ou carrement le supprimé)
bon ca dois être adapté à ton besoin. mais l'idée est la

Publié:
02 Déc 2010 à 16:47
par seroa
Salut,
Dans mon cas, cela ne va pas aller. Car c'est le même utilisateur qui va poster deux fois de suite.
Imaginons que l'utilisateur ouvre la même appli dans deux fenêtres différentes. Il sauvegarde 2 documents l'un à la suite de l'autre.
Lors de la première sauvegarde, le document de verrou sera crée, mais lors de la seconde, mais le document de verrou n'aura pas eu le temps de se créer que la seconde sauvegarde sera lancée.
Du coup je risque d'avoir deux doc de verrou.
Je voudrais empêcher cette possibilité de "tricher"
Merci.

Publié:
02 Déc 2010 à 16:51
par abertisch
Salut,
Combien de fois par jour l'utilisateur peut-il ouvrir ce formulaire ?

Publié:
02 Déc 2010 à 16:52
par Michael DELIQUE
tu pose le verrou a l'ouverture du document pas à la sauvegarde.
et tu le ferme a la fermeture du document
ensuite tu n'est pas obligé d'utilisé le nom de l'utilisateur tu peux prendre une autre valeur.

Publié:
02 Déc 2010 à 17:00
par seroa
Salut abertish, il peut l'ouvrir autant de fois qu'il le souhaite.
Je vais tester de mettre le verrou à l'ouverture du document. Mais s'il ouvre l'appli dans 2 fenêtres différentes et ouvre deux fois le formulaire, le verrou n'aura pas eu le temps de se créer que le deuxième formulaire sera déjà ouvert.

Publié:
02 Déc 2010 à 17:08
par Michael DELIQUE
normalement si !
si tu passe par le webqueryopen
sauf si l'utilisateur peut faire la même manip simultanément sur 2 pc différents

Publié:
02 Déc 2010 à 17:21
par seroa
J'ai bien peur que si. C'est des petits malins...
Mais j'ai pensé à un truc, si à l'ouverture je créer un document lock avec le nom de l'utilisateur.
Si l'utilisateur arrive quand même à passer outre, je fais cette verif à la sauvegarde :
A la vauvegarde je verifie qu'il n'y a pas plus de 1 document lock au nom de cette personne.
S'il y a plus d'un, j'interdit la sauvegarde.
Qu'est-ce que vous en pensez ?

Publié:
02 Déc 2010 à 17:22
par Michael DELIQUE
oui tu peux vérrifier le lock a la sauvegarde plus plus de sécurité
a toi ensuite de bien gérer le cas ou le gars en locké