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 :

BreakRoleInheritance ne fonctionne pas avec les listes de type annonce


Sujet :

SharePoint .NET

  1. #1
    Membre à l'essai
    Inscrit en
    mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut BreakRoleInheritance ne fonctionne pas avec les listes de type annonce
    utilise WSS3.0 SP1.

    j'ai développé un composant webpart pour la création des sites.



    cette partie du code casse l'héritage des roles pour les listes de types document et de type annonce.

    [
    foreach (SPList list in newSite.Lists)

    {

    if (list.BaseTemplate == SPListTemplateType.DocumentLibrary || list.BaseTemplate == SPListTemplateType.Announcements)

    {

    if (!list.HasUniqueRoleAssignments)

    {

    newSite.AllowUnsafeUpdates = true;

    list.BreakRoleInheritance(false);

    }

    }

    }

    ]
    Avec ce code, l'héritage est uniquement cassé pour les listes de type documents et non pour les listes d'annonces.

    Pouvez vous tester et m'aider à contourner ce probleme bloquant.

    Merci

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    cela fonctionne parfaitement. Quand tu dis ça ne fonctionne pas, obtiens-tu une erreur?

  3. #3
    Membre à l'essai
    Inscrit en
    mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Pas d'erreur,
    mais lorsque j'exécuse le code et je reviens sur mon site et je regarde au niveau des listes d'annonces, l'héritage n'est pas cassé.
    Cependant, l'héritage des roles est cassé pour les biblitohèques de documents.

  4. #4
    Membre à l'essai
    Inscrit en
    mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Plz, je suis bloqué sur ce problème,
    qui as une solution? un contournement ou autre ...

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Cela me paraît complètement incongru. Es-tu bien certain que toutes tes listes d'annonces sont bien parcourues?

    L'utilisateur exécutant ce code a-t-il bien les droits "Manage List" sur tes fameuses listes d'annonces?

    chez moi ça fonctionne en tous cas....

  6. #6
    Membre à l'essai
    Inscrit en
    mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    aprés exécution du code:
    en regardant les autorisations pour une bibilothèque de doc, on vois que l'héritage des droits est déja cassé ( des cases à cocher sont à coté des groupes).
    en regardant, les autorisations pour une liste d'annonce, on vois que les droits sont hérités du site parent ( pas de cases à cocher à coté des groupes).
    Pouvez vous verifier ces deux points svp?
    L'utilisateur exécutant le code à le droit total sur l'application. Le code se termine normalement et la fonction est bien exécute pour les annonces mais sans effet ( peut etre génère une exeception interne et donc elle ne se termine pas pour les annonces).

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Et comme ça ? Même si ton code est censé fonctionner...je ne sais pas dans quel contexte tu utilises cela mais j'ajouterais un Console.WriteLine(List.Title) ou un writer.Write(List.Title) ou encore un MessageBox.Show(List.Title), bref le but étant de voir si ton code passe bien par tes fameuses listes....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SPListCollection Lists = newSite.Lists;
    foreach(SPList List in Lists)
    {
    	if((List.BaseTemplate == SPListTemplateType.DocumentLibrary
    	|| List.BaseTemplate == SPListTemplateType.Announcements) 
    	&& !List.HasUniqueRoleAssignments)
    	{
    	   List.BreakRoleInheritance(false);
    	   List.Update();
    	}
    }
    Chez moi le code fonctionne mais je suis sur un MOSS et non un WSS mais je ne pense pas que cela change grand chose dans ce cas-ci.

  8. #8
    Membre à l'essai
    Inscrit en
    mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    J'utilise mon code dans le contexte de créer un nouveau site, de créer des nouveaux groupes et d'appliqeur des droites spécifiques pour chaque liste.
    Pour voir l'effect de mon code aprés l'exécuter:
    dans la liste
    Je clique sur Paramètre ==> paramètres -
    ensuite sur le lien "Autorisations pour : ..."
    et ensuite dans cette page des autorisations je vois :
    - pour le cas d'une liste de type bibliothèque de documents: les cases à cochets sont présents et les lients des groupes sont éditables : signifie l'héritage est bien cassé
    - Pour les autres listes de types annonces: les groupes ne sont pas éditables : signifie l'héritage n'est pas cassé ( tu peux cliquer sur "actions ==>modifier les autorisations", pour casser l'héritage manuellement.
    Tu vois?

  9. #9
    Membre à l'essai
    Inscrit en
    mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Aussi j'ai testé que la valeur de HasUniqueRoleAssignments passe à true pour les listes de type annonce mais malgré sa l'héritage des roles n'est pas cassé
    et donc je reste bloqué ...

  10. #10
    Membre expert

    Profil pro
    Inscrit en
    septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Citation Envoyé par rafikfareh Voir le message
    Tu vois?
    Oui ça ne fait jamais que la troisième fois que tu expliques ton problème, donc oui j'ai compris . Je comprends bien que lorsque tu vérifies si l'héritage est bien cassé, il ne l'est pas.

    Comme chez moi j'arrive tout à fait à casser l'héritage d'une liste d'annonces, je me dis que c'est un autre problème.

    Ecoute, je peux pas debugger à ta place, je te suggère de mettre un breakpoint, tu vas au pas à pas et tu vois déjà si tes listes d'annonces sont bien prises en compte par ton code, si oui et si l'héritage n'est pas cassé, alors faut voir avec Microsoft ce qui se passe

  11. #11
    Membre à l'essai
    Inscrit en
    mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Merci pour vos réponses et vos explications, vraiment je pense que c un Bug MS caché comme d'habitude
    J'espère trouver un contournement

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    août 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2007
    Messages : 107
    Points : 127
    Points
    127
    Par défaut
    Vérifie juste que dans ton code tu fais bien ton update comme le montre le code de Stephane
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SPListCollection Lists = newSite.Lists;
    foreach(SPList List in Lists)
    {
    	if((List.BaseTemplate == SPListTemplateType.DocumentLibrary
    	|| List.BaseTemplate == SPListTemplateType.Announcements) 
    	&& !List.HasUniqueRoleAssignments)
    	{
    	   List.BreakRoleInheritance(false);
    	   List.Update();
    	}
    }

Discussions similaires

  1. Mon htaccess ne fonctionne pas avec les sous-domaines
    Par pierrot10 dans le forum Apache
    Réponses: 3
    Dernier message: 04/06/2012, 09h54
  2. Réponses: 0
    Dernier message: 17/02/2011, 15h51
  3. Réponses: 4
    Dernier message: 04/11/2009, 23h31
  4. Réponses: 10
    Dernier message: 13/03/2007, 12h38
  5. Réponses: 7
    Dernier message: 24/01/2006, 12h03

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