2009-07-08 8 views
5

Napisałem funkcję (zasięg witryny), która dodaje niestandardowe pozycje menu do nowych menu i EditControlBlock biblioteki dokumentów programu SharePoint 2007. Te pozycje menu powinny być wyświetlane tylko wtedy, gdy użytkownik ma uprawnienia do dodawania i edycji dla tej biblioteki dokumentów. Działa to świetnie, z wyjątkiem jednego szczególnego przypadku, w którym użytkownik ma uprawnienia tylko do odczytu dla witryny nadrzędnej, ale ma pełną kontrolę nad biblioteką dokumentów. W takim przypadku pozycje menu pod EditControlBlock są wyświetlane poprawnie, ale pozycje menu w menu New nie pojawiają się. Ustawiłem te same prawa dla wszystkich pozycji menu. Poniżej znajdują się przykładowe wpisy w pliku manifestu elementu i elementu:Problem programu SharePoint podczas dodawania niestandardowego elementu menu w bibliotece dokumentów

<?xml version="1.0" encoding="utf-8" ?> 
<Feature 
    Id="59bba8e7-0cfc-46e3-9285-4597f8085e76" 
    Title="My Custom Menus" 
    Scope="Site" 
    xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <ElementManifests> 
    <ElementManifest Location="Elements.xml" /> 
    </ElementManifests> 
</Feature> 


<?xml version="1.0" encoding="utf-8" ?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 

<CustomAction Id="EditMenu1" RegistrationType="FileType" RegistrationId="txt" Location="EditControlBlock" Sequence="106" ImageUrl="/_layouts/images/PPT16.GIF" Title="My Edit Menu" Rights="AddListItems,EditListItems"> 
    <UrlAction Url="javascript:var surl='{SiteUrl}'; window.location='/test/mypage.aspx?siteurl='+surl+'&amp;itemurl={ItemUrl}&amp;itemid={ItemId}&amp;listid={ListId}&amp;Source='+window.location" /> 
    </CustomAction> 

<CustomAction Id="NewMenu1" GroupId="NewMenu" RegistrationType="List" RegistrationId="101" Location="Microsoft.SharePoint.StandardMenu" Sequence="1002" ImageUrl ="/_layouts/images/DOC32.GIF" Title="My New Menu" Rights="AddListItems,EditListItems"> 
    <UrlAction Url="javascript:var surl='{SiteUrl}'; window.location='/test/mypage.aspx?siteurl='+surl+'&amp;listid={ListId}&amp;Source='+window.location" /> 
    </CustomAction> 
</Elements> 

Czy brakuje mi czegoś? Proszę o poradę.

Pozdrawiam, Jagannath

+2

Interesujący problem, jestem po prostu próbuje dowiedzieć się, dlaczego, niech pan wiedzieć, czy mogę cokolwiek. – Kusek

Odpowiedz

-1

może trzeba spróbować i podwyższenie swoich uprawnień w kodzie.

SPSecurity.RunWithElevatedPrivileges(delegate() 
{ 
    using (SPSite site = new SPSite(web.Site.ID)) 
    { 
    // implementation details omitted 
    } 
}); 

run with elevated permissions

+0

Jaki kod? Jak jest to związane z powyższym pytaniem – Shoban

Powiązane problemy