文章出處

摘要:

      最近遇到一個用戶希望實現如下功能,如果用戶屬于所有者組,則在某個列表的新建和編輯畫面里可以編輯某些字段,如果用戶不屬于所有者組則只允許只讀這些字段。用戶使用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


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()