sub Defect_Initialization { my($actionname, $actiontype) = @_; # $actionname a la forme d'un scalaire chaîne # $actiontype a la forme d'un scalaire long # l'action est Verrouiller l'enregistrement # le nom du type d'enregistrement est Défaut # C'est ici que se configure l'action. $entity->LockRecord(0); }
sub Defect_LockRecord { my($result); my($param) = @_; # le nom du type d'enregistrement est Défaut $entity->LockRecord(0); return $result; }
Perl
sub Defect_Unlock { my($result); my($param) = @_; # le nom du type d'enregistrement est Défaut $result = ""; my $locked_by = $entity->GetLockOwner(); if ($locked_by ne "") { my $do_unlock = $session->IsUserSuperUser(); if (! $do_unlock) { # Si l'utilisateur en cours détient le verrou, laissez-le retirer ce verrou. my $username = $session->GetUserLoginName(); if ($username =~ /^$locked_by$/i) { $do_unlock = 1; } } if (! $do_unlock) { # Options complémentaires d'"autorisation" du déverrouillage : # 1) donner l'autorisation à la condition que l'utilisateur soit membre d'un groupe "déverrouillage" # obtenir les groupes de l'utilisateur et vérifier si ce sont des groupes "déverrouillage" # 2) donner l'autorisation à des utilisateurs privilégiés, comme l'administrateur de sécurité # vérifier dans la session le privilège choisi par l'utilisateur # 3) bien d'autres possibilités # # if ( user-should-be-allowed-to-unlock-the-record ) { # $do_unlock = 1; # } } if ($do_unlock) { $entity->UnlockRecord(); } else { $result = "Vous n'êtes pas autorisé à déverrouiller cet enregistrement."; } } return $result; }
VBScript
Function Defect_Unlock(param) ' param As Variant ' le nom tu type d'enregistrement est Defect REM add your hook code here Dim result Dim session Dim locked_by ' Récupérez la session set session = GetSession locked_by = GetLockOwner if (locked_by <> "") then Dim do_unlock do_unlock = session.IsUserSuperUser if (NOT do_unlock) then ' Si l'utilisateur actuel met en attente le verrouillage, demandez le déverrouillage. Dim username username = session.GetUserLoginName if (username = locked_by) then do_unlock = true end if end if if (NOT do_unlock) then ' Options supplémentaires visant à "autoriser" le déverrouillage : ' ' 1) autorisez-le si l'utilisateur est un membre d'un groupe "unlock" ' récupérez les groupes de l'utilisateur, vérifiez s'il est membre ' ' 2) autorisez certains utilisateurs privilégiés, par exemple l'administrateur de la sécurité ' contrôlez la session en matière de privilège sélectionné ' ' 3) de nombreuses autres possibilités end if if (do_unlock) then UnlockRecord else result = "Vous n'êtes pas autorisé à déverrouiller cet enregistrement." end if end if End Function