zoukankan      html  css  js  c++  java
  • SharePoint 如何根据用户权限在NewForm页面允许用户编辑某字段或者只读某字段

    摘要:

          最近遇到一个用户希望实现如下功能,如果用户属于所有者组,则在某个列表的新建和编辑画面里可以编辑某些字段,如果用户不属于所有者组则只允许只读这些字段。用户使用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

  • 相关阅读:
    from 的使用
    Form组件 钩子方法
    session cookie 中间件
    Django 中购物车的登录 注册 退出
    python安装
    Skeleton-Based Action Recognition with Directed Graph Neural Network
    Two-Stream Adaptive Graph Convolutional Network for Skeleton-Based Action Recognition
    Everybody Dance Now
    Collaborative Spatioitemporal Feature Learning for Video Action Recognition
    python安装第三方库--换镜像源
  • 原文地址:https://www.cnblogs.com/johnsonwong/p/2072315.html
Copyright © 2011-2022 走看看