TRightProfilManager (class)

De Wiki1000

Cette façade métier permet à l'Application métier de configurer les profils de droits pour un utilisateur.

Lorsque le profil de droit est chargé, les valeurs des paramètres de ce profil sont définis avec le paramétrage défini pour cette utilisateur.

La façade permet de définir les valeurs des paramètres au chargement de l'application en remplacement (ou en complément) du paramétrage de l'utilisateur.

Ceci permet d'implémenter une gestion plus sophistiquée du paramétrage, sous le contrôle de l'Application métier.

Cette façade doit avoir l'interface suivante :

Type
  TRightProfilManager = Class(TitObject)
  public
    Class Function ConfigureParameter(const iProfilName:string; const iParameterName:string; const iClassName:string; const iOperator:string; const iAttribute:string; var aValue:variant):boolean;
  end;

ConfigureParameter

Paramètre Usage
iProfilName Nom du profil de droit
iParameterName Nom du paramètre
iClassName Nom de la classe sur lequel porte le droit
iOperator Opérateur du droit
iAttribute Nom de l'attribut sur lequel porte le droit
aValue Valeur du droit à appliquer

La fonction ConfigureParameter est appelée pour chaque paramètre.

  • Valeur de retour False
Le paramètre n'est pas configuré et sera configuré par la configuration de l'utilisateur
  • Valeur de retour True
Le paramètre est configuré par la valeur retournée dans aValue

aValue doit être correctement formaté.

Exemple :

unit genConfiguration;
interface
 
Type
  TRightProfilManager = Class(TitObject)
  public
    Class Function ConfigureParameter(const iProfilName:string; const iParameterName:string; const iClassName:string; const iOperator:string; const iAttribute:string; var aValue:variant):boolean;
  end;
 
Implementation
 
{TRightProfilManager}
 
Class Function TRightProfilManager.ConfigureParameter(const iProfilName:string; const iParameterName:string; const iClassName:string; const iOperator:string; const iAttribute:string; var aValue:variant):boolean;
//Class Function ConfigureParameter(const iParameterName:string; const iClassName:string; const iOperator:string; const iAttribute:string; var aValue:variant):boolean;
begin
  Result := False;
 
  if Pos('%ETABLISSEMENT',iParameterName)=1 then
   begin
     aValue := QuotedStr('BDX');
     if iOperator='in' then aValue := Format('(%s)',[aValue]);
     Result := True;
   end;
 
  if Pos('%SITE',iParameterName)=1 then
   begin
     aValue := QuotedStr('BDX');
     if iOperator='in' then aValue := Format('(%s)',[aValue]);
     Result := True;
   end;
 
  if Pos('%DEPOT',iParameterName)=1 then
   begin
     aValue := QuotedStr('BDX')+','+QuotedStr('MTL');
     if iOperator='in' then aValue := Format('(%s)',[aValue]);
     Result := True;
   end;
end;
end.
Outils personnels