作为解决方法,我实现了一个事件处理程序(SPItemEventReceiver)来截获更新(ItemUpdating)和删除(ItemDeleting)。
:检查所有权: 它目前的用户比较项目[“作者”],以确定他们是否是车主,这使他们编辑/删除。
:是否在版主组: 如果不是这样,那么我为版主添加了一个额外的用户组。其中一个关键是,该组虽然没有正常使用,但必须具有分配给其的权限。 SPWeb具有IsCurrentUserMemberOfGroup,用于确定用户是否属于主持人组。
//----------------------------------
//here is enough to get you started.
//----------------------------------
class DiscussionBoardItemCreated : SPItemEventReceiver
{
public override void ItemUpdating(SPItemEventProperties properties)
{
//check ContentType
// -- properties.AfterProperties["ContentType"]
//are they the owner
// -- item["Author"]
//are they in a particular user group
// -- web.IsCurrentUserMemberOfGroup(web.Groups["MyModeratorGroup"].ID)
//properties.Cancel = true -OR- false;
//properties.ErrorMessage = "" -OR- "No access";
}
}
此外,你需要到elements.xml。
FROM:http://koenvosters.wordpress.com/2009/07/31/howto-create-an-event-handler-for-sharepointmoss-2007/
<?xml version=“1.0“ encoding=“utf-8“ ?>
<Elements xmlns=“http://schemas.microsoft.com/sharepoint/“>
<Receivers ListTemplateId=“100“>
<Receiver>
<Name>AddingEventHandler</Name>
<Type>ItemAdding</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>MyEventHandler, Version=1.0.0.0, Culture=neutral,PublicKeyToken=ca176e059473d6b1</Assembly>
<Class>MyEventHandler.DemoEventHandler</Class>
<Data></Data>
<Filter></Filter>
</Receiver>
</Receivers>
</Elements>