自定义 Sharepoint 托管加载项的 ECB 菜单
Customize ECB menu of Sharepoint hosted add-in
如何根据权限在 Sharepoint 加载项的 ECB 菜单中隐藏某些菜单项?我的 Sharepoint 应用程序是 Sharepoint 托管的,而不是提供商托管的,因此 javascript 注入方法不起作用。
谢谢
检查用户是否为指定组成员的函数
function IsCurrentUserMemberOfGroup(groupName, OnComplete) {
var currentContext = new SP.ClientContext.get_current();
var currentWeb = currentContext.get_web();
var currentUser = currentContext.get_web().get_currentUser();
currentContext.load(currentUser);
var allGroups = currentWeb.get_siteGroups();
currentContext.load(allGroups);
var group = allGroups.getByName(groupName);
currentContext.load(group);
var groupUsers = group.get_users();
currentContext.load(groupUsers);
currentContext.executeQueryAsync(OnSuccess,OnFailure);
function OnSuccess(sender, args) {
var userInGroup = false;
var groupUserEnumerator = groupUsers.getEnumerator();
while (groupUserEnumerator.moveNext()) {
var groupUser = groupUserEnumerator.get_current();
if (groupUser.get_id() == currentUser.get_id()) {
userInGroup = true;
break;
}
}
OnComplete(userInGroup);
}
function OnFailure(sender, args) {
OnComplete(false);
}
}
用法
function IsCurrentUserHasContribPerms()
{
IsCurrentUserMemberOfGroup("Members", function (isCurrentUserInGroup) {
if(isCurrentUserInGroup)
{
// The current user is in the [Members] group!
}
});
}
ExecuteOrDelayUntilScriptLoaded(IsCurrentUserHasContribPerms, 'SP.js');
来源自here
感谢您的帮助。最后我得到了我想要在我的页面中自定义的内容。我通过创建另一个文件覆盖了 core.js 中的 CreateMenuOption(我使用 Chrome 获取代码)。我也使用了以下 js 文件:https://spservices.codeplex.com/ 以获得已连接用户的组。
如何根据权限在 Sharepoint 加载项的 ECB 菜单中隐藏某些菜单项?我的 Sharepoint 应用程序是 Sharepoint 托管的,而不是提供商托管的,因此 javascript 注入方法不起作用。
谢谢
检查用户是否为指定组成员的函数
function IsCurrentUserMemberOfGroup(groupName, OnComplete) {
var currentContext = new SP.ClientContext.get_current();
var currentWeb = currentContext.get_web();
var currentUser = currentContext.get_web().get_currentUser();
currentContext.load(currentUser);
var allGroups = currentWeb.get_siteGroups();
currentContext.load(allGroups);
var group = allGroups.getByName(groupName);
currentContext.load(group);
var groupUsers = group.get_users();
currentContext.load(groupUsers);
currentContext.executeQueryAsync(OnSuccess,OnFailure);
function OnSuccess(sender, args) {
var userInGroup = false;
var groupUserEnumerator = groupUsers.getEnumerator();
while (groupUserEnumerator.moveNext()) {
var groupUser = groupUserEnumerator.get_current();
if (groupUser.get_id() == currentUser.get_id()) {
userInGroup = true;
break;
}
}
OnComplete(userInGroup);
}
function OnFailure(sender, args) {
OnComplete(false);
}
}
用法
function IsCurrentUserHasContribPerms()
{
IsCurrentUserMemberOfGroup("Members", function (isCurrentUserInGroup) {
if(isCurrentUserInGroup)
{
// The current user is in the [Members] group!
}
});
}
ExecuteOrDelayUntilScriptLoaded(IsCurrentUserHasContribPerms, 'SP.js');
来源自here
感谢您的帮助。最后我得到了我想要在我的页面中自定义的内容。我通过创建另一个文件覆盖了 core.js 中的 CreateMenuOption(我使用 Chrome 获取代码)。我也使用了以下 js 文件:https://spservices.codeplex.com/ 以获得已连接用户的组。