Comment puis-je restreindre l'affichage d'une liste personnalisée par groupe dans Sharepoint 2007?

0

Je suis un nouveau venu dans Sharepoint et ce que je voudrais faire, c'est créer une énorme liste de contrôle de tous nos employés, puis faire différentes "vues" sur cette personne en fonction du groupe de personnes.

Par exemple:

Un nouvel employé pourrait avoir

  • Info salaire
  • Informations de sécurité
  • Informations sur le personnel
  • Informations sur le contrat

Je voudrais avoir tout cela dans une rangée (par employé), mais quand quelqu'un du groupe HR se connecte, il ne peut voir que Personnel et Salary ou quelque chose comme ça.

Si ce n'est pas une option, existe-t-il un moyen de lier des tables entre différentes listes?

Crash893
la source

Réponses:

2

Facile. 1 liste. Plusieurs vues différentes pour cette liste, basées sur des métadonnées - département, bâtiment, peu importe. Vous pouvez afficher différents colonnes dans chaque vue. Par exemple ... pour les ressources humaines, vous affichez le col salaire ainsi que le nom col. Pour les personnes ordinaires, une autre vue qui n’indique PAS le salaire.

Maintenant, nous créons quelques pages Web. Sur chaque page de composant WebPart, mettez un composant WebPart qui affiche notre liste. Mais il ne montre qu’une vue de cette liste, sans aucun moyen réel d’en arriver aux autres.

Nous limitons désormais les autorisations pour chacune de ces pages de composants WebPart au (x) groupe (s) que vous souhaitez voir.

So - pages de composants Web qui affichent différentes vues de la même liste et restrictions d’autorisation sur ces pages de composants Web.

SharePointAdminGuy
la source
Je suis totalement d'accord avec SharePointAdminGuy. Cependant, en tant que développeur de l' autorisation de colonne SharePoint , je ne pense pas que vous puissiez cacher une colonne à des individus.
user63078
3

Solution sans code asp:

Vous aurez besoin de deux bibliothèques javascript:
- Jquery
- SPServices - http://spservices.codeplex.com/

Dans SharePoint, créez une bibliothèque non publique appelée "bibliothèques Jquery" et téléchargez-y votre jquery et vos services SPS.

Dans Sharepoint Designer, créez une copie de AllItems.aspx.

Dans SharePoint Designer, éditez le fichier AllItems.aspx. Effacer tout le code et insérer ce code javascript.

        <script language="javascript" type="text/javascript" src="PATH-TO-YOUR-JQUERY-FILE"></script>
<script language="javascript" type="text/javascript" src="PATH-TO-YOUR-SPSERVICES-FILE"></script>

<script type="text/javascript">
$(document).ready(function() {
    //Get current username
    userName = $().SPServices.SPGetCurrentUser({
        fieldName: "Name",
        debug: false
    });

    //get user's group
    $().SPServices({
        operation: "GetGroupCollectionFromUser",
        userLoginName: userName,
        async: false,
        completefunc: function(xData, status){

            $(xData.responseXML).find("Group").each(function(){
                if(status == "success"){
                    var nomeGrupo = $(this).attr('Name');
                    //if user is in group 1 redirect to page 1. If user is in group 2 redirect to page 2 etc...
                    if(nomeGrupo=="Grupo sergio"){
                             window.location.replace("PATH-TO-PAGE-1/SomeItems.aspx");
                    }else{
                        window.location.replace("/PATH-TO-PAGE-2/ViewAll.aspx");
                    }

                }else{
                    alert("Falha na comunicação com o Sharepoint");
                }
            });
        }
    });
});
</script>

Ce code redirige l'utilisateur vers d'autres pages contenant une vue Web-parts-view personnalisée.

Dans la conception sharepoint, renommez le AllItems.aspx en SomeItems.aspx (par exemple).

Vous pouvez créer plusieurs copies de ce fichier et suivre l'étape suivante pour le personnaliser.

Modifiez ce fichier et supprimez le composant WebPart principal situé sur PlaceHolderMain (Astuce: vous pouvez cliquer sur et supprimer si vous êtes en vue fractionnée (coder une conception) dans SharePoint).

Ensuite, vous pouvez insérer une vue WebPart personnalisée pour votre liste. Dans cette vue personnalisée, vous pouvez filtrer les données ou ne pas afficher certaines colonnes.

Sergio Henrique
la source
Je vais essayer ceci
Crash893
1

Bonjour, j'ai réussi à masquer un champ par programmation, voir ci-dessous. Le champ Approuver est maintenant masqué dans l'écran d'édition de la liste.

SPField Appprove = bdcList.Fields.GetField("Approved");
                        Appprove.ShowInEditForm = false;
                        Appprove.ShowInDisplayForm = true;
                        Appprove.ShowInNewForm = false;
                        Appprove.Update();
Grahame
la source