SharePoint 2010-仅当用户具有编辑所选项目的权限时才启用自定义功能区按钮
我在功能区中有一个自定义操作,仅当当前用户具有编辑该项的权限(贡献角色)时,我才需要启用该按钮。我有一个PageComponent来告诉UI是否可以处理命令,但我可以找出如何在javascript中检查用户对项目的权限 这在我的页面组件中:SharePoint 2010-仅当用户具有编辑所选项目的权限时才启用自定义功能区按钮,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我在功能区中有一个自定义操作,仅当当前用户具有编辑该项的权限(贡献角色)时,我才需要启用该按钮。我有一个PageComponent来告诉UI是否可以处理命令,但我可以找出如何在javascript中检查用户对项目的权限 这在我的页面组件中: canHandleCommand: function (commandId) { switch (commandId) { case 'Command1':
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检查权限吗?在我看来。有两种方法,第一种是在html/母版页中添加标记: 或创建asp控件,并将其转到第页: 无论您的解决方案是否可行,请回信 致意
Martin否。如果您知道用户在服务器上拥有什么权限,这些解决方案就会起作用。但我需要在用户每次选择不同的项目时启用/禁用该按钮(这意味着没有回发),并且我对每个项目设置了不同的权限。