Dans cet article, nous explorons les détails de l'utilisation des rôles pour déterminer les autorisations dans ActivityInfo. Dans ActivityInfo, vous pouvez créer des rôles pour contrôler les données auxquelles les utilisateurs peuvent accéder et les actions que vous autorisez les utilisateurs à effectuer dans votre base de données.
Dans cet article, vous pouvez découvrir les concepts clés et voir des exemples liés à la façon dont vous pouvez utiliser les rôles pour définir les autorisations des utilisateurs.
Concepts clés
Ressources
Les ressources font référence aux formulaires, aux dossiers, aux rapports et aux bases de données dans ActivityInfo.
Opérations
Les opérations font référence à toute action effectuée sur les ressources et les utilisateurs, telles que :
- Autorisations au niveau de l'enregistrement, telles que l'affichage, l'ajout, la modification ou la suppression d'enregistrements.
- Autorisations liées aux opérations, telles que la gestion des utilisateurs, l'ajout ou la modification de formulaires et la gestion des verrous.
Pour plus d'informations sur toutes les opérations possibles dans ActivityInfo, consultez la liste complète des opérations.
Accès
Un accès identifie la ressource spécifique sur laquelle les opérations qu'un utilisateur est autorisé à effectuer sont appliquées. Les accès peuvent être appliqués à tout type de ressource.
Les accès sont hérités par toutes les ressources contenues. Un accès appliqué à un dossier applique les paramètres à tous les formulaires/dossiers de ce dossier, tandis qu'un accès appliqué à une base de données entière applique les paramètres à toutes les ressources de cette base de données. Les accès hérités peuvent également être « remplacés » sur une ressource contenue en appliquant un nouvel accès sur cette ressource, si vous le souhaitez.

Ce diagramme illustre la façon dont les accès sont hérités par les ressources contenues dans une autre ressource à laquelle un accès explicite est accordé.

Ce diagramme illustre la façon dont les accès hérités peuvent être remplacés en accordant un accès explicite à une ressource spécifiée contenue dans une autre ressource.
Accès optionnels
Un accès peut être défini comme optionnel, ce qui signifie que vous pouvez choisir d'activer ou non l'accès pour chaque utilisateur que vous invitez dans votre base de données.
Conditions
Les conditions vous permettent de définir des règles qui déterminent les enregistrements sur lesquels un utilisateur peut effectuer des opérations. Les règles sont toujours exprimées sous forme de formule qui prend la valeur VRAI ou FAUX. Le générateur de règles vous aide à écrire les types de formules les plus courants, notamment pour déterminer si :
- Un enregistrement est lié à un paramètre
- Un champ spécifique correspond à une valeur ou un ensemble de valeurs spécifié
- Un enregistrement est attribué à l'utilisateur
Cependant, vous pouvez toujours utiliser l'éditeur de formules pour écrire vos propres formules, y compris celles qui font référence à des champs liés ou à des sous-enregistrements.
Par exemple, vous souhaitez limiter la visibilité des enregistrements relatifs aux mineurs au personnel autorisé. Dans votre formulaire « Cas », vous avez un champ intitulé « ÂGE ». En créant une condition avec une règle où l'opération « AFFICHER » n'est autorisée que lorsque la formule « ÂGE>18 » est VRAIE, vous vous assurez que les utilisateurs auxquels cette condition s'applique ne pourront afficher que les enregistrements où la valeur du champ ÂGE est supérieure à 18.
Plusieurs règles peuvent être combinées pour former une condition sur une opération spécifique, et vous pouvez décider si toutes les règles sont requises ou non pour que la condition soit remplie. De plus, vous pouvez définir différentes conditions sur différentes opérations. Par exemple, vous pouvez définir une condition qui permet à un utilisateur d'AFFICHER tous les enregistrements d'un formulaire et une autre condition qui permettrait aux utilisateurs de MODIFIER uniquement les enregistrements qui leur sont attribués.
Paramètres
Les paramètres sont des attributs qui sont attribués à un utilisateur et qui peuvent être utilisés dans des conditions pour contrôler les opérations au niveau de l'enregistrement qu'il est autorisé à effectuer.
Les paramètres sont liés à un formulaire de référence, tel que « Régions », qui fournit les valeurs possibles qui peuvent être attribuées à un utilisateur. Lorsque vous invitez un utilisateur dans votre base de données, vous attribuez une valeur de paramètre spécifique à cet utilisateur, ce qui associe effectivement cet utilisateur à l'enregistrement correspondant dans le formulaire de référence.
Les paramètres peuvent ensuite être utilisés dans le cadre d'une règle dans une condition pour définir l'ensemble des enregistrements sur lesquels les opérations sont autorisées. Lorsque des paramètres sont utilisés dans une condition, vous limitez les enregistrements sur lesquels un utilisateur serait autorisé à effectuer des actions aux enregistrements qui font référence à la valeur de paramètre spécifique attribuée à l'utilisateur. Par exemple, si un utilisateur a été affecté à « Ouest » pour le paramètre « Régions », une condition peut être configurée pour permettre à cet utilisateur d'AJOUTER uniquement les enregistrements liés à la région « Ouest ».
IMPORTANT : Pour activer les conditions basées sur des paramètres, votre formulaire doit avoir un champ de référence pointant vers le formulaire qui contient les valeurs de paramètre possibles. Si vous avez un rôle où vous activez des conditions sur les opérations au niveau de l'enregistrement qui dépendent d'un paramètre, les utilisateurs affectés à ce rôle ne pourront pas effectuer ces opérations au niveau de l'enregistrement sur les formulaires qui n'ont pas de champ de référence pointant vers le formulaire contenant les valeurs de paramètre possibles.
Rôle
Un rôle est une certaine combinaison d'accès et de paramètres que vous attribuez à un groupe spécifique d'utilisateurs. Les rôles sont donc le principal moyen par lequel vous contrôlez les actions que vous autorisez les utilisateurs à effectuer dans votre base de données. Lorsque vous invitez un utilisateur dans votre base de données, vous spécifiez à quel rôle disponible il doit être affecté, et toutes les actions qu'il est autorisé à entreprendre seront limitées par les accès et les autorisations que vous avez définis pour ce rôle.
De combien de rôles ai-je besoin ?
En général, vous pouvez définir un rôle pour chaque groupe d'utilisateurs qui effectuent le même ensemble de tâches dans votre base de données. Très souvent, cela peut correspondre aux différentes fonctions au sein de votre organisation. Par exemple, vous pouvez définir un rôle pour les chargés de projet, un autre rôle pour les chefs de secteur et un autre rôle pour les responsables du suivi et de l'évaluation.
Vous pouvez utiliser les accès et les paramètres pour permettre une certaine flexibilité dans les actions que différents utilisateurs peuvent entreprendre et réduire au minimum le nombre de rôles que vous devez créer. Par exemple, plutôt que de créer un rôle distinct pour chacun de vos partenaires de reporting (ce qui sera difficile à gérer si vous en avez beaucoup), vous pouvez créer un seul rôle appelé « Partenaire de reporting », qui a un paramètre pour « Partenaire ». Le paramètre « Partenaire » peut ensuite être utilisé dans le cadre d'une condition pour garantir que vos partenaires de reporting ne peuvent effectuer des actions que sur les enregistrements associés à leur propre organisation.
Dans certains cas, les bases de données sont organisées par dossier selon les lignes de cluster, ou selon les types de programme. Dans le cas de la coordination humanitaire, vous pourriez avoir des dossiers pour la santé, l'EAH et les NFI par exemple. Vous pourriez également avoir trois rôles différents selon la fonction d'une personne au sein du cluster, tels que chef de cluster, IMO de cluster et membre de cluster. Afin d'éviter d'avoir 3 x 3 = 9 rôles pour membre du cluster santé, membre du cluster EAH, etc., vous pouvez utiliser des accès optionnels pour n'avoir que trois rôles. Lorsque vous attribuez un rôle de « membre de cluster » à un utilisateur, vous choisissez également les ressources spécifiques au secteur auxquelles vous lui donnez accès.

Ce diagramme illustre les relations entre les différents concepts liés aux autorisations. Les rôles peuvent avoir plusieurs accès qui permettent d'accéder à diverses ressources dans votre base de données. Chaque accès spécifie les opérations autorisées pour la ressource sélectionnée. Les opérations au niveau de l'enregistrement peuvent avoir des conditions qui leur sont attachées. Enfin, les rôles peuvent avoir plusieurs paramètres définis, qui peuvent ensuite être appliqués dans des conditions à travers les accès selon les besoins.
Exemples
Dans cette section, vous pouvez voir quelques exemples de différents rôles avec différents niveaux d'autorisations.
Limiter l'accès aux enregistrements en fonction d'un paramètre
Scénario
Supposons que vous dirigez un programme national où le personnel du programme sert des bénéficiaires dans diverses régions. Vous avez un formulaire appelé « Registre des bénéficiaires » où vous avez un enregistrement contenant les informations personnelles de chaque bénéficiaire individuel servi par le programme. Votre personnel de programme est affecté à servir les bénéficiaires uniquement dans leur région assignée. Pour assurer la protection des données personnelles sensibles, vous aimeriez vous assurer que le personnel du programme ne puisse accéder qu'aux enregistrements des bénéficiaires qui vivent dans leur région assignée. Pour répondre à ces exigences, vous pouvez ajouter un rôle avec les paramètres suivants.
Rôle
Vous créez un seul rôle appelé « Chargé de programme ».
Paramètres
Dans le rôle « Chargé de programme », vous créez un paramètre appelé « Région » qui pointe vers un formulaire de référence « Régions » qui contient les valeurs possibles suivantes : « Nord », « Est », « Sud » et « Ouest ».
Accès
Vous spécifiez que ce rôle de « Chargé de programme » doit avoir accès au formulaire « Registre des bénéficiaires » où vous sélectionnez « Afficher les enregistrements », « Ajouter des enregistrements » et « Modifier les enregistrements » comme opérations autorisées.
Dans cet accès, vous ajoutez une condition avec une règle où les opérations AFFICHER, AJOUTER et MODIFIER ne sont autorisées que sur les enregistrements qui sont liés à la valeur du paramètre « Région » attribuée à l'utilisateur.
De cette façon, les utilisateurs qui sont affectés au rôle de « Chargé de programme » et qui reçoivent la valeur de paramètre « Région » de « Nord » ne pourront afficher, ajouter et modifier que les enregistrements dans le formulaire Registre des bénéficiaires où le champ Région a été défini sur Nord.
Limiter l'accès aux enregistrements en fonction de plusieurs conditions
Scénario
Imaginez que vous gérez une base de données pour une réponse humanitaire coordonnée avec des interventions mises en œuvre dans divers secteurs. Vous avez plusieurs organisations partenaires qui ajoutent des enregistrements à la base de données, et vous voulez contrôler l'accès et les actions en fonction de l'organisation partenaire de l'utilisateur et du secteur dans lequel il opère. Pour assurer l'intégrité des données soumises par les partenaires, vous voulez restreindre les actions de saisie de données afin que les utilisateurs ne puissent ajouter ou modifier que les enregistrements associés à leur propre organisation partenaire. Cependant, pour faciliter la coordination entre les partenaires, vous aimeriez permettre la visibilité des enregistrements soumis par tous les partenaires dans un certain secteur. Pour répondre à ces exigences, vous pouvez ajouter un rôle avec les paramètres suivants.
Rôle
Vous créez un seul rôle pour tous les partenaires, et vous le nommez « Partenaire de reporting ».
Paramètres
Vous définissez deux paramètres : un pour « Partenaire » qui pointe vers votre liste d'organisations partenaires et un autre pour « Secteur » qui pointe vers votre liste de secteurs (par exemple, « Santé », « Éducation », « EAH »).
Accès
Vous spécifiez que ce rôle doit avoir accès au formulaire « Activités » où vous sélectionnez « Afficher les enregistrements », « Ajouter des enregistrements » et « Modifier les enregistrements » comme opérations autorisées.
Vous ajoutez ensuite deux conditions dans cet accès :
- Condition 1 : AFFICHER uniquement les enregistrements où le champ « Secteur » correspond à la valeur du paramètre « Secteur » attribuée à l'utilisateur
- Condition 2 : AJOUTER et MODIFIER uniquement les enregistrements où le champ « Partenaire » correspond à la valeur du paramètre « Partenaire » attribuée à l'utilisateur
Limiter l'accès aux enregistrements en fonction de l'utilisateur affecté
Scénario
Supposons que vous gérez une base de données de gestion de cas où chaque cas est attribué à un seul travailleur social. Étant donné que votre base de données contient des informations très sensibles, vous voulez vous assurer que les travailleurs sociaux ne puissent accéder qu'aux enregistrements des cas qui leur sont attribués.
Rôle
Vous créez un seul rôle appelé « Travailleur social ».
Accès
Vous spécifiez que ce rôle doit avoir accès au formulaire « Cas » où vous sélectionnez « Afficher les enregistrements », « Ajouter des enregistrements » et « Modifier les enregistrements » comme opérations autorisées.
Dans cet accès, vous ajoutez une condition avec une règle où les opérations AFFICHER, AJOUTER et MODIFIER ne sont autorisées que sur les enregistrements qui sont attribués à l'utilisateur. Pour ce rôle, vous ajouterez une autre condition avec une formule en utilisant le générateur de règles. Cela créerait une règle avec une formule qui vous permet de faire correspondre des enregistrements spécifiques à un utilisateur actuel. Vous sélectionnerez la condition « Enregistrement attribué à l'utilisateur », et avec la formule, vous attribuerez « Travailleur social == @user.
Avec ce rôle, les travailleurs sociaux ne pourraient accéder et interagir qu'avec les enregistrements appartenant aux cas qui leur sont attribués.
Le générateur de règles contient une formule prédéfinie qui filtre les enregistrements en fonction du fait que la valeur sélectionnée dans un champ utilisateur du formulaire correspond à l'utilisateur actuel.