Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

SFK a un mécanisme pour éviter la surcharge du serveur avec des demandes de calcul trop fréquentes.
S’il y a moins de 5 minutes entre une demande de calcul et la précédente, alors SFK refuse le calcul de droit d’accès. La propriété optionnelle foreceUpdate permet d’obliger le recalcul.
En standard, à la connexion (aussi valable avec F5), on utilise la demande de calcul sans forcer. Par contre lors d’une création ou avec à l’utilisation du bouton de la barre de notification qui permet de mettre à jour les droits d’accès, on force le calcul.

Bouton pour forcer le recalcul de rowaccess

Pour un projet, il est possible d’activer un bouton dans la barre de notification avec la variable RowAccess.ManualRefresh.Enabled.

...

Ce bouton permet de lancer un recalcul manuel sans tenir compte du délai du cache de tous les rowaccess.
Ce bouton est disponible depuis la version 5.5.

Application du rowaccess

A partir du moment où l’on a une demande de calcul dans la table sw_sys_rowaccessstatus pour une table, cette table sera alors soumise à un droit d’accès. Et tous les comptes qui n’ont pas de ligne pour la table dans sw_sys_rowaccess n’ont aucun accès pour cette table.
Note : c’est valable aussi pour les comptes externes (Extranet). Donc lorsqu’on ajoute un rowaccess, il faut s’assurer que les comptes externes ne sont pas altérés.

...

  • un formulaire (crud)
    Si le crud utilise un datasource de type “table” dont la table est soumise à un rowaccess, les droits d’accès sont automatiquement gérés. Il faut alors avoir accès à l’ID pour accéder au que les données soient chargées dans le formulaire.

  • dans n’importe quel datasource avec une requête SQL (utilisé par une grid, un graph, une combobox, …)
    Si l’on utilise la syntaxe {{TABLE(<nom_de_table>, <alias_de_table>)}} avec une table soumise à un rowaccess alors la requête va intègrer un filtre avec sw_sys_rowaccess.
    Note : la syntaxe peut être utilisé pour les clauses FROM et INNER JOIN.

  • un élément dans une liste d’entité (entityviews)
    Si l’entité est une table soumise à un rowaccess, alors la requête pour construire la liste va intégrer un filtre avec sw_sys_rowaccess.
    Si la propriété Data.ApplyRestrictions est utilisée sur une colonne de type foreign dont le schema est définit sur une table soumise à un rowaccess alors la requête pour construire la liste va intégrer un filtre avec sw_sys_rowaccess.

...