Создать библиотеку документов для хранения резюме. Затем дайте отделу кадров (группа пользователей SharePoint) полномочия «читать / писать все» для библиотеки, а всем остальным - «читать / писать свои собственные» права. Создайте тип контента под названием «Возобновить» на основе «вне» поле Тип содержимого документа. Затем добавьте поле, содержащее сотрудника (поле 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();
}
}
}
});
}
вы можете привязать ItemEventReceiver с помощью FeatureReceiver к типу контента следующим образом:
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();