IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SharePoint .NET Discussion :

Contournement de la fonctionnalité "Target audiences" [SP-2010]


Sujet :

SharePoint .NET

  1. #1
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut Contournement de la fonctionnalité "Target audiences"
    Hello,

    je souhaitais utiliser la fonctionnalité "Target audiences" (filtrer une WebPart selon l'appartenance de l'utilisateur à un certain groupe).
    Or mon environnement SharePoint est en version Foundation, donc cette fonctionnalité est désactivées.

    Quelqu'un a-t-il une solution pour filtrer une WebPart selon un groupe d'utilisateurs ?


    Samuel

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

  2. #2
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    Citation Envoyé par Samuel_ Voir le message
    Quelqu'un a-t-il une solution pour filtrer une WebPart selon un groupe d'utilisateurs ?
    Tu peux utiliser le SPSecurityTrimmedControl dans ton layout, cela te permet d'afficher/masquer du contenu en fonction du niveau de droits de la personne connecté.
    Sinon il te faudra développer des webparts custom...
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  3. #3
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ludojojo Voir le message
    Tu peux utiliser le SPSecurityTrimmedControl dans ton layout, cela te permet d'afficher/masquer du contenu en fonction du niveau de droits de la personne connecté.
    J'ai trouvé un topic sur le sujet (http://www.paperblog.fr/1599151/util...ns-sharepoint/).
    Je pense que la valeur "ViewPages" peut convenir pour l'attribut "PermissionString".
    En revanche je ne sais pas si l'on peut spécifier un groupe d'utilisateurs pour l'attribut "PermissionMode" ...

    Citation Envoyé par ludojojo Voir le message
    Sinon il te faudra développer des webparts custom...
    J'ai bien peur qu'il ne me reste que cette solution ...

    J'ai tenté d'injecter du code JavaScript mais je n'ai pas l'impression que cela fonctionne ...

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

  4. #4
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Samuel_ Voir le message
    J'ai tenté d'injecter du code JavaScript mais je n'ai pas l'impression que cela fonctionne ...
    Du CSOM ?
    Ca devrait fonctionner pourtant.
    Est-ce que tu peux nous montrer le code que tu utilises ?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  5. #5
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut
    Voilà mon code :

    Je place dans une balise "<script>" le code JS suivant :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    var webPartN1 = document.getElementById('WebPartN1');
    var webPartN2 = document.getElementById('WebPartN2');
    var webPartN3 = document.getElementById('WebPartN3');
     
    var siteUrl = 'http://mon/site/sharepoint';
     
    var clientCtxt = new SP.ClientContext(siteUrl);
     
    //get all site group
    var allGroup = clientCtxt.get_web().get_siteGroups();
     
    //get n1, n2 and n3 support group
    var n1Group = allGroup.getByName('Groupe1');
    var n2Group = allGroup.getByName('Groupe2');
    var n3Group = allGroup.getByName('Groupe3');
     
    //get all users of n1, n2 and n3 support group
    var allUserN1 = n1Group.get_users();
    var allUserN2 = n2Group.get_users();
    var allUserN3 = n3Group.get_users();
     
    //get the current user LoginName 
    var currentUser = SP.Utilities.PrincipalInfo.get_loginName();
     
    if (allUserN1.getByLoginName(currentUser) != null) {
        webPartN1.setAttribute('style', style='font-style:italic;color:#696969;font-size:13pt');
    }
    if (allUserN2.getByLoginName(currentUser) != null) {
         webPartN2.setAttribute('style', style='font-style:italic;color:#696969;font-size:13pt');
    }
    if (allUserN3.getByLoginName(currentUser) != null) {
         webPartN3.setAttribute('style', style='font-style:italic;color:#696969;font-size:13pt');
    }

    Dans la variable "$stream" j'ai placé mon code HTML et mon JS via la balise "<script>".
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #create empty wiki page
    $wikiItem = $wikiPage.Item
     
    #inject html code in wiki page
    $wikiItem[[Microsoft.SharePoint.SPBuiltInFieldId]::WikiField] = $stream
     
    #update wiki page
    $wikiItem.UpdateOverwriteVersion()

    Le code HTML est bien inséré dans la page Wiki. En revanche pas de code JS ...

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

  6. #6
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Les champs de type publishing avec contenu riche sont parsé au moment de la savegarde, il n'est donc pas possible de mettre du JS dedans.
    Je te propose d'essayer d'ajouter une webpart de type content editor dans ta page, et de l'utiliser pour insérer ton script JS.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  7. #7
    Membre expert
    Avatar de Samuel_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 376
    Points : 3 177
    Points
    3 177
    Billets dans le blog
    1
    Par défaut
    Merci ludojojo pour toutes ces infos.

    Cela fonctionne. Il ne reste que quelques détails à terminer.
    Je me rend compte que la discussion est en doublon (http://www.developpez.net/forums/d14...i/#post7897152).
    Je clos celle-ci et je poste mes problèmes liés à JS dans l'autre.

    Ne pas oublier mais aussi

    "L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai "

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo