2011-07-14 56 views
3

我在功能區中具有自定義操作,並且僅噹噹前用戶有權編輯項目(Contribute角色)時才需要啓用該按鈕。我有一個PageComponent告訴用戶界面是否可以處理命令,但我可以弄清楚如何檢查用戶在javascript中的權限。SharePoint 2010 - 僅當用戶有權編輯所選項目時才啓用自定義功能區按鈕

這是在我的PageComponent:

 canHandleCommand: function (commandId) { 
      switch (commandId) { 
       case 'Command1': 
        var ids = getSelectedIds(); // gets an array of selected ids 

        var selectionChanged = false; 
        if (ids.length != this.previousIds.length) { 
         selectionChanged = true; 
        } else { 
         for (var index in ids) { 
          if (ids[index] != this.previousIds[index]) { 
           selectionChanged = true; 
          } 
         } 
        } 

        if (selectionChanged) { 
         this.enabledStatusChecked = false; 
        } 

        this.previousIds = ids; 

        if (!this.enabledStatusChecked) { 
         this.checkIsEnabled(ids); 
        } 

        return this.isEnabled; 
      } 

      return false; 
     }, 
     checkIsEnabled: function (ids) { 
      this.enabledStatusChecked = true; 
      this.isEnabled = false; 

      if (ids.length != 1) { 
       return; 
      } 

      var id = ids[0]; 

      var context = SP.ClientContext.get_current(); 
      var web = context.get_web(); 

      var list = web.get_lists().getById(SP.ListOperation.Selection.getSelectedList()); 
      var item = list.getItemById(id); 

      context.load(item); 
      context.executeQueryAsync(Function.createDelegate(this, function() { 
       var contentTypeId = item.get_item('ContentTypeId').toString(); 
       if (!contentTypeId.lastIndexOf(Constants.InternalNormContentTypeId, 0)) { 
        this.isEnabled = true; 
        // !! need to check permissions here !! 
       } 
       RefreshCommandUI(); 
      }), Function.createDelegate(this, function() { 
       RefreshCommandUI(); 
      })); 
     }, 

該代碼使得僅當1個項目被選擇的按鈕,如果它是指定的內容的類型。有誰知道如何通過JavaScript檢查權限?

回答

1

從我的角度來看。你有兩種方式,在HTML /母版頁第一個添加標籤: http://buyevich.blogspot.com/2010/08/hide-ribbon-from-visitorsanonimus-users_31.html 或創建ASP的控制,並把它帶到頁: http://dicemastersharespoint.blogspot.com/2011/02/hiding-buttonscontrols-on-sharepoint.html

寫回是否有可能爲您的解決方案或沒有。

問候

馬丁

+0

號這些解決方案的工作,如果你知道什麼權限的用戶對服務器。但我需要每次用戶選擇不同的項目時啓用/禁用按鈕(這意味着無回發),並且我對每個項目設置了不同的權限。 – Necros

相關問題