在SharePoint 2007中支持項目級權限。
您可以創建一個列表事件處理程序(SPItemEventReceiver)。每次更改/添加用戶項目時,處理程序都可以更新相應的項目項目。
public class EventHanlder: SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
// collection user and project information from the item being updated.
SPListItem item = properties.ListItem;
SPUser user = new SPFieldUserValue(item.Web, item["UserFieldName"] as string).User;
int projectId = new SPFieldLookupValue(item["ProjectFieldName"]).Id;
// create role assignment for the user on the user item.
SPRoleAssignment ra = new SPRoleAssignment(user);
SPRoleDefinition rd = item.Web.RoleDefinitions.GetByType(SPRoleType.Reader);
ra.RoleDefinitionBindings.Add(rd);
ra.Update();
// get the project item and update the role assignments.
SPList projectList = // retrieve project list here...
SPListItem projectItem = projectList.GetItemById(projectId);
projectItem.RoleAssignments.Add(ra);
}
}
這只是示例代碼。我不是100%確定SPField *** Value的產品是否如此。
現在我想讓每個用戶都能看到他分配的項目,這樣當他打開第三個表單時,填充項目的組合框將只顯示他有權訪問的項目。
這應該在查找字段中自動完成,因爲只有用戶具有權限的項目纔會顯示。
操作系統?編程語言/環境? – 2010-05-04 07:04:04
在Sharepoint中,使用nintex工作流程 – Nomz 2010-05-04 07:05:57