一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
在前面提到关于sharepoint 如何在Ribbon区添加功能按钮,还有一个问题,就是如何根据权限来控制它的显示和隐藏,也就是说,我们需要动态去控制这些自定义的Ribbon功能按钮,这里主要是记录下如何来设计这样的一个功能。
最近在做知识库文档管理过程中,有一个需求,用户看到某个很好的文档,想要做推荐,我们发现,在sharepoint 2010 的文档库中,没有这样的功能,所以我们需要做这么一个扩展。
1。创建一个自定义列表,人员推荐表,在这个自定义列表中,创建一个类型为用户或组类型的字段,“推荐人”,这个表是用来配置有权限显示推荐按钮的用户,只要把用户添加到这个表,也说明,需要显示出推荐这个按钮。
表结构如下图:
2。继续沿用前面博客用到的sharepoint 项目,sharepoint 如何在列表中添加功能菜单操作项
添加一个空元素,RecommandRibbonItem
<?xmlversion="1.0"encoding="utf-8"?>
<Elementsxmlns="http://schemas.microsoft.com/sharepoint/">
<CustomActionId="LibraryRibbonButton"Location="CommandUI.Ribbon"Sequence="5"RegistrationId="101"
RegistrationType="List"Title="推荐">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinitionLocation="Ribbon.Documents.Share.Controls._children">
<ButtonId="RecommendRibbonItem"Image32by32="/_layouts/images/WebpartBarTest/recommend.png"
Image16by16="/_layouts/images/WebpartBarTest/recommend.png"
Command="RecommendRibbonItem"
Description="推荐喜欢的文档"LabelText="推荐"TemplateAlias="o1"
/>
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandlerCommand="RecommendRibbonItem"
CommandAction="/_layouts/WebpartBarTest/RecommendEdit.aspx?scope=library&ListId={ListId}&Itemid={ItemId}" />
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
</Elements>
3。部署到网站上。随便打开一个文档库,选中其中一个文档,我们就能看到在Ribbon区上面的推荐按钮。如下图:
但是,有一个问题,并不是所有的人都有权限看到这个推荐按钮,我们需要根据前面的人员推荐表,当中的用户来控制它的显示和隐藏。
具体思路:
1。创建一个webpart,将这个webpart添加到v4.master,让它每次打开页面都要执行这个webpart.
其中的代码如下 :
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.ComponentModel;
using Microsoft.SharePoint;
using Microsoft.Web.CommandUI;
using Microsoft.SharePoint.WebControls;
namespace WebpartBarTest.WebpartBarProperties
{
public partial class WebpartBarPropertiesUserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
SPRibbon rb = SPRibbon.GetCurrent(this.Page);
if (rb != null && !IsHavePermission())
{
rb.TrimById("RecommendRibbonItem");
}
}
private bool IsHavePermission()
{
//这里是匹配人员推荐表里面和用户和当前用户是否存在,如果存在,就return true;
return true;
}
}
}
其中最主要的一点是,控制显示和隐藏的方法,就是用rb.TrimById("RecommendRibbonItem");
相关文章
一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
我们经常会在SharePoint网站集的权限列表中看到某个user有LimitedAccessPermission,但是我们都知道或者试过,在SharePointsitecollection中没有办法直接添加user赋予LimitedAccess权限,并且LimitedAccess这个......
2023-01-12
在这样的场景下,比如统计员工的个人信息,IT会在SharePoint中新建list,加一些需要填写的栏位,然后让公司员工登录填写。这时候比起大家都能看到彼此信息而言,从公司角度更想让员工只能......
2023-01-12
大多数企业使用SharePoint文档库时,都会建议EndUser在编辑文档前先做CheckOut动作,这样可以保证文档在当前用户编辑过程中,其他人只能view而不能edit,防止多人同时修改同一文件互相影响的......
2023-01-12
为了记录SharePointLibrary/List中file/Item的修改情况,ITAdministrator会在List/Library的VersionSettings中开启Version管控设置。之后用户每次编辑item/file保存就会生成一个新的version记录,这样我们就会知道......
2023-01-12