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