0

현재 일부 SharePoint 브랜딩을 처음으로 작업하고 있습니다. SharePoint Foundation 2010을 사용하고 있습니다. "관리자"그룹에 속하지 않은 모든 사용자를 위해 빠른 실행 섹션을 페이지에서 제거하려고했습니다. 지금, 기능 또는 웹 파트를 작성하는 시도하면 다음과 같은 C# 코드로이 작업을 수행합니다 :권한을 기반으로 Sharepoint QuickLaunch 제거

SPWeb web = SPContext.GetContext(this.Context).Web.ParentWeb; 
web.AllowUnsafeUpdates = true; 
web.QuickLaunchEnabled = false; 
web.Update(); 

이 실제 패널 자체를 제거하고 왼쪽으로 주 콘텐츠를 통해 이동하지 않았다. 나는 이것을 Jquery 경로에서 시도하기로 결정했다. 내 코드가 아래에 복사됩니다. 그러나 마스터 페이지에서이 작업을 시도하면 페이지가 완전히로드 된 다음 패널이 제거됩니다. 나는 페이지가 실제로로드되기 전에 이것을 발생 시켜서 사용자가 페이지 팝업을 보지 못하게하고 바꾼다. 나는 JQuery가 갈 길이라고 100 % 확신하지는 않는다. 나는 이것으로 고민하고있다.

$(document).ready(function(){ 
    $().SPServices({ 
    operation: "GetGroupCollectionFromUser", 
    userLoginName: $().SPServices.SPGetCurrentUser(), 
    async: false, 
    completefunc: function(xData, Status) { 
     if($(xData.responseXML).find("Group[Name='Administrator']").length == 1) 
     {} 
     else{ 

     var quicklaunchpanel = document.getElementById('s4-leftpanel'); 
    quicklaunchpanel.style.display="none"; 
    var maincontent = document.getElementById('MSO_ContentTable'); 
    maincontent.style.cssText = "margin-left:0px;"; 

     } 
     } 

});

참고 : $ (document) .load() 및 $ ('# s4-leftpanel'). load()도 시도했지만 이로 인해 지금까지 수행 된 작업이 없습니다.

TIA!

답변

0

나는이 작업을 수행하는 사용자에게 SPSecurityTrimmedControl 수 있었다 : 나는 원래 S4-leftpanel에 표시 속성을 설정

"없음"과 나는 또한 MSO_ContentTable.I의 여백에 대해 동일한을 performaned 0 픽셀하도록 설정하고 해당 사업부 후이 코드를 실행

<Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask"> 
     <script type="text/javascript"> 
      document.getElementById("s4-leftpanel").style.display = "block"; 
     </script> 
     </Sharepoint:SPSecurityTrimmedControl> 

: 다음이 패널 뒤에 코드 블록을했다

 <Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask"> 
     <script type="text/javascript"> 
      document.getElementById("MSO_ContentTable").style.marginLeft = "155px"; 
     </script> 
     </Sharepoint:SPSecurityTrimmedControl> 
+0

이 코드를 document.ready 기능 등에 넣지 않아도 되겠습니까? –

관련 문제