創建一個文檔庫來保存恢復的。然後授予人力資源部門(SharePoint用戶組)對該庫的「讀/寫所有」權限,讓其他人讀/寫自己的「權限」。基於out-of- box文檔內容類型,然後添加一個字段,該字段包含簡歷涉及的Employee(SPUser字段)到內容類型(以及任何其他需要的字段,即名稱,地址等)。在創建列表項時,請讓HR正確填寫(使所需的字段)
然後,寫必將給您剛剛創建的內容類型itemeventreceiver並覆蓋ItemUpdated事件
的代碼將類似如下:。
public override void ItemUpdated(SPItemEventProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate
{
using (SPWeb web = properties.OpenWeb())
{
web.AllowUnsafeUpdates = true;
var item = web.Lists[properties.ListId].GetItemById(properties.ListItemId);
if (item != null)
{
if (item.Fields.ContainsField("Employee"))
{
item["Author"] = item["Employee"];
// Author is the internal name of the Created by field,
// always use Internal Names!
DisableEventFiring();
item.SystemUpdate();
EnableEventFiring();
}
}
}
});
}
您可以使用FeatureReceiver內容類型,像這樣綁定ItemEventReceiver:
SPContentType docCt = web.ContentTypes[new SPContentTypeId("CONTENTYPE ID GOES HERE")];
docCt.EventReceivers.Add(SPEventReceiverType.ItemUpdated, "ASSEMBLYNAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=TOKEN", "FULLY QUALIFIED CLASSNAME");
docCt.Update();
賈森,肯定會工作,但問題仍然是如何告訴SP誰擁有簡歷,如果人力資源總是第一個上傳它? (我們不能指望用戶自己添加最初的簡歷,但我們希望他們能夠保持他們前進。) 在這種情況下,SP將承擔人力資源是所有簡歷的主人,而不是個人用戶。因此,我相信我仍然需要一種方法來修改「創建者」字段或其他創意解決方法... – Mark 2009-06-18 18:36:31
您可以隱藏「創建者」字段,並添加您自己的「人員和組」列,名稱類似「簡歷所有者」或類似的東西。人力資源部門只需簡單地將簡歷與業主姓名貼在一起即可。 – 2009-06-18 19:53:29
傑森 - 也許我錯過了什麼......?我意識到我可以隱藏創建者字段並創建我自己的自定義字段,但據我所知,我無法根據自定義列分配權限(例如,創建新的「人員和組」列,然後一個關聯權限,表示員工只能查看/編輯'登錄名=自定義列名'的項目)。假設我不能分配這些權限,那麼我仍然卡住......我無法讓用戶*只查看/編輯他們的簡歷。請說明我是否漏掉了明顯的東西! – Mark 2009-06-18 20:34:51