gpt4 book ai didi

SharePoint/WSS : Modify "created by" field?

转载 作者:行者123 更新时间:2023-12-01 08:34:15 24 4
gpt4 key购买 nike

全部 -

我正在使用 WSS 3.0。目前,HR 会将员工的公司内部简历上传到我们网站上的文档库,但出于隐私原因,我们必须限制对该文档库的访问,这迫使用户在每次想要更新简历时都必须通过 HR。

我的想法是创建一个启用附件的列表,允许用户仅查看/编辑他们自己的项目,然后授予 HR 管理所有条目的权限。这适用于 HR 需要创建初始列表项并附加简历的异常(exception)情况,这意味着列表项将“由 {hr} 创建”并且附加了简历的最终用户不可见/不可编辑。

关于我如何允许 HR 修改上传时的“创建者”字段以便最终用户可以看到并可以编辑他们的简历,或者以不同的方式进行此操作,有什么想法吗?

谢谢!

最佳答案

创建一个文档库来保存简历。然后授予 HR 部门(SharePoint 用户组)对库的“全部读/写”权限,授予其他人读/写自己的“权限。创建一个名为“Resume”的内容类型,基于 out-of-the- box 文档内容类型。然后在内容类型中添加一个字段,其中包含简历涉及的员工(SPUser字段)(以及任何其他必填字段,即姓名,地址等)。在创建列表项时让HR正确填写(填写必填字段)。

然后,编写一个绑定(bind)到您刚刚创建的内容类型的 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 绑定(bind)到内容类型,如下所示:

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();

关于SharePoint/WSS : Modify "created by" field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com