Projet open source : SharePoint List Security - Introduction

Dans cet article je vais introduire le projet open source nommé SharePoint List Security réalisé par l'équipe SharePoint de IP-TECH, et disponible sous codeplex.

 

Cet article fait partie de la série de post suivante :

Projet open source : SharePoint List Security - Introduction (le présent post)

Projet open source : SharePoint List Security - Création de l'interface

Projet open source : SharePoint List Security - Obtention des champs d'une liste

Projet open source : SharePoint List Security - Gestion de la persistance de données

Projet open source : SharePoint List Security - Filtrage des formulaires d'édition

Projet open source : SharePoint List Security - Identification des groupes d'un utilisateur

Projet open source : SharePoint List Security - Sécurité des accès à travers Office

Projet open source : SharePoint List Security - Filtrage des e-mails de notification

Projet open source : SharePoint List Security - Création du programme d'installation

Projet open source : SharePoint List Security - Migration vers SharePoint 2013

Projet open source : SharePoint List Security - Rétrospective et conclusion

 

Introduction et contextE

Les listes sont un composant essentiel de SharePoint, elles sont le principal moyen utilisé pour la sauvegarde et le partage d'informations.  

Les listes sont omniprésentes dans toutes les solutions SharePoint, on les touve aussi bien dans les simples sites de collaboration créés par des utilisateurs finaux, que dans les solutions les plus complexes créées pars des développeurs SharePoint professionnels. Les listes sont tout simplement incontournables pour tout développement SharePoint.

 

A son essense une liste SharePoint est un mécanisme de persistance assimilable à une table de base de données, mais la comparaison s'arrête là, car SharePoint associe à ce mécanisme une multitude de fonctionnalités extrêmement puissant tout en restant facile à utiliser et très configurable. Notons à titre d'indication les fonctionnalités suivantes :

  • Création simple à partir d'une interface web.

  • Différents types de colonnes extensibles et associées à des éditeurs de contenus (avec gestion de l'ordre, indexation...).

  • Composant d'affichage permettant le tri, le groupement et le filtrage.

  • Formulaires Web d'ajout, d'édition, et de consultation.

  • Possibilité de création de diverses vues pour une même liste.

  • Possibilité de groupement des enregistrements d'une liste en dossier.

  • Gestion des documents attachés.

  • Système de gestion de version intégré.

  • Possibilité d'intégration aux sources de données externes.

  • Gestion d'approbation de contenu.

  • Association à des types de contenu.

  • Gestion des permissions de lecture et d'édition des enregistrements.

  • Intégration de contenu dans les résultats de recherche.

Ces fonctionnalités sont à l'origine du succès des listes auprès des utilisateurs finaux et des développeurs SharePoint, mais ce succès a un prix. La facilité d'utilisation des listes amène les utilisateurs à les intégrer dans des scénarios complexes, et des processus métiers élaborés nécessitant des fonctionnalités non présentes par défaut, comme la possibilité de configurer des règles d'accès aux colonnes d'une liste par utilisateur connecté (sujet de notre article).

 

Prenons un exemple simpliste pour illustrer la problématique. Une société de services informatiques "contoso" utilise un site d'équipe SharePoint pour l'organisation de son activité commerciale.

La société "contoso" utilise une liste SharePoint nommées offres pour le partage des offres de services qu'elle entreprend. Un workflow est associé à cette liste pour gérer le cycle de vie des offres de services comme suit :

  • Un commercial initie le workflow en insérant un enregistrement dans la liste offres, avec le nom du client, l'échéance de l'offre, le cahier des charges, et le statut "réponse technique".

  • Un membre de l'équipe technique étudie le cahier des charges, crée un document de réponse technique, et un document d'estimation de charge qu'il associe à l'enregistrement, il met à jour le champ estimation et délai puis change le statut de l'offre à "réponse commerciale".

  • Un commercial crée un document d'offre commerciale qu'il attache à l'offre et met à jour le champ prix avec l'offre de prix, puis change le statut à "soumise client".

La liste SharePoint offres et le workflow permettent d'automatiser le processus de l'offre commerciale en utilisant les formulaires d'édition de listes par défaut de SharePoint et les mécanismes de notification par e-mail. La solution mise en oeuvre donne entière satisfaction mais possède une faille importante : les utilisateurs du département informatique impliqués dans l'élaboration de l'offre technique ont accès aux données confidentielles de prix.

 

Les écrans de configuration standard de SharePoint permettent par défaut de définir qui a le droit de consulter une liste, et qui a le droit de consulter et éditer un enregistrement d'une liste. Il n'est pas possible de définir des droits d'accès individuels aux colonnes (ou champs des formulaires d'édition). Tel est l'objet du projet SharePoint List Security.

 

OBJECTIF

Deux motivations ont été à l'origine de la création du projet SharePoint List Security : une motivation technique, et une motivation fonctionnelle.

 

La motivation technique est d'explorer les aspects de développement avancés de SharePoint. En effet, SharePoint List Security est une extension horizontale de SharePoint qui propose des fonctionnalités génériques pouvant être utilisées dans n'importe quelle solution indépendamment du métier ou du contexte technique. Le développement d'une telle extension constitue un challenge technique de taille et un excellent moyen d'explorer les rouages de SharePoint.

 

La motivation fonctionnelle est de simplifier nos développements et de fournir une solution générique à un besoin récurrent consommateur de temps et source de frustration. Notre périmètre initial se résume aux objectifs suivants :

FonctionnelLement

  • Permettre la définition des paramètres d'accès au niveau colonnes pour les listes SharePoint, et ce pour des utilisateurs ou des groupes (SharePoint ou Active Directory)

  • Définition de permissions de type autoriser / bloquer pour les formulaires de consultation (afficher/cacher champs), formulaires d'édition (afficher/cacher éditer/lecture seule), et formulaires d'ajout (afficher/cacher).

  • Application des paramètres de sécurité à l'affichage tabulaire des listes (cacher les colonnes selon la configuration du formulaire de consultation).

  • Application des paramètres de sécurité lors de l'édition en ligne (inline edit) des enregistrements d'une liste.

  • Application des paramètres de sécurité lors de l'accès aux listes à travers des outils externes (Office, SharePoint designer...)

  • Application des paramètres de sécurité aux e-mails de notification.

ErgonomiquEment

  • Offrir une interface utilisateur simple et intuitive ayant le "look and feel" des pages d'administration de SharePoint.

  • Permettre aux utilisateurs d'avoir une vue de synthèse des permissions des colonnes d'une liste SharePoint.

  • Garantir un niveau de performance optimal de l'extension.

  • Offrir un mécanisme de déploiement simple, utilisable par une personne non technique.

aperçu du produit fini

 

Lien d'accès à la sécurité des colonnes à partir de l'écran d'administration d'une liste 

 

 

Lien d'accès à la sécurité des colonnes à partir du ruban d'une liste

 

 

Ecran résumé des permissions d'une liste

 

 

Ecran d'édition des autorisations d'une colonne

 

 

Ecran du programme d'installation permettant le choix des applications et collections de sites

pour le déploiement de la solution

LE MAKING OF

Voilà c'était juste une introduction et une mise en contexte du projet nécessaires à la compréhension de la suite d'articles décrivant le "making of" de "SharePoint List Security", et les aspects techniques les plus intéressants rencontrés durant cette expérience de développement. Stay tuned...