设为首页 收藏本站
查看: 740|回复: 0

[经验分享] SharePoint 如何根据用户权限在NewForm页面允许用户编辑某字段或者只读某字段

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-29 07:02:58 | 显示全部楼层 |阅读模式
  摘要:
  最近遇到一个用户希望实现如下功能,如果用户属于所有者组,则在某个列表的新建和编辑画面里可以编辑某些字段,如果用户不属于所有者组则只允许只读这些字段。用户使用Shared Hosting Environment,只能通过客户端进行开发。
  方案:
  首先我们假设您已经知道如何通过Designer修改NewForm.aspx以及EditForm.aspx画面,隐藏掉默认的列表项编辑Web Part,并添加新的列表项编辑Web Part,了解如何在添加的Web Part里操控字段。
  这些您都完成后我们仅仅以默认的Title字段为例,只需要调用<xsl:if test="ddwrt:IfHasRights(33554432)">即可判断用户的身份以判断是否显示该字段,IfHasRights里给出的参数叫做PermissionMark,我们随后会给出所有的参考值。



<xsl:if test="ddwrt:IfHasRights(33554432)">
<td width="75%" class="ms-vb">
<SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="New" FieldName="Title" __designer:bind="{ddwrt:DataBind('i',concat('ff1',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Title')}" />
<SharePoint:FieldDescription runat="server" id="ff1description{$Pos}" FieldName="Title" ControlMode="Edit" />
</td>
</xsl:if>

  
  以上只提到了核心的内容,还有些琐碎的工作还需要做:
  1. XSL里面怎么书写Else语句(应该是使用<xsl:choose>)
  2. 不属于所有者组的时候显示该字段值(应该是使用<xsl:value-of select="$Title">)
  还有些有意思的事情可以调查:
  1. 如何从JavaScript里面将变量传给XSL的变量(如此我们还可以考虑比较复杂的方案,譬如通过WebService返回用户所属的组信息后再进行判断)
  以下是所有可以使用的PermissionMask:
  ViewListItems - 1
  AddListItems - 2
  EditListItems - 4
  DeleteListItems - 8
  ApproveItems - 16
  OpenItems - 32
  ViewVersions - 64
  DeleteVersions - 128
  CancelCheckout - 256
  PersonalViews - 512
  ManageLists - 2048
  ViewFormPages - 4096
  Open - 65536
  ViewPages - 131072
  AddAndCustomizePages - 262144
  ApplyThemeAndBorder - 524288
  ApplyStyleSheets - 1048576
  ViewUsageData - 2097152
  CreateSSCSite - 4194314
  ManageSubwebs - 8388608
  CreateGroups - 16777216
  ManagePermissions - 33554432
  BrowseDirectories - 67108864
  BrowseUserInfo - 134217728
  AddDelPrivateWebParts - 268435456
  UpdatePersonalWebParts - 536870912
  ManageWeb - 1073741824
  UseRemoteAPIs - 137438953472
  ManageAlerts - 274877906944
  CreateAlerts - 549755813888
  EditMyUserInfo - 1099511627776
  EnumeratePermissions - 4611686018427387904
  FullMask - 9223372036854775807

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-120116-1-1.html 上篇帖子: [下载]SharePoint 官方资料下載 下篇帖子: 复制或移动SharePoint网站(续)——各种方式的调用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表