我希望在自定义列表(而不是文档库)上实现项目到期的自定义策略。
此策略必须基于每个项目进行编辑,并根据用户定义的规则计算到期日期,例如:访问次数,到期时间跨度或上述两个规则的任何聚合。由于这种粒度,我不能使用默认的过期策略模型(或实现自定义的模型),也不能使用过期策略中的默认审核。
由于项目是在文件夹和子文件夹中组织的,我想分层应用策略(类似于OOTB权限模型)。
我的解决方案是为文件夹和项目创建自定义内容类型,以便包含一个包含序列化规则的列,而对此“规则”字段的访问将从代码手动同步。自定义Infopath表单将用于编辑列表中每个条目的附加规则(可以是文件夹或项目),自定义应用程序页面将使用此数据来授予对项目的访问权限(基于附加项目)字段,它也为每个项目执行实际工作)。 虽然我不确定上述解决方案是否会被批准(公司政策可能禁止我为同步方案编辑脚趾Global.asax文件),但我想知道是否有人可能会为此要求提供更好的架构?
答案 0 :(得分:1)
好的,我会试一试。首先,我会忘记InfoPath并转到自定义ASPX页面来配置策略。整个项目应包装在WSP solution中,其中包含以下成分:
_layouts文件夹中的策略配置aspx页面。此页面应该允许用户创建和编辑列表,文件夹和项目的策略。该页面可以依次序列化并将规则存储在列表项的属性包中。对于列表级规则,请使用SPWeb属性包。或者,创建一个隐藏列表,其中所有规则都存储在与列表,文件夹或项目关联的XML文件中。
网站集Feature,可将Custom Actions添加到您的自定义列表,以添加和修改政策。您可以在文件夹和项目的ECB菜单中添加“编辑策略”等自定义操作。对于列表级策略,您可以向列表操作菜单添加类似的操作。
SharePoint Timer Job用于实施策略。使用服务器场级别功能可在激活时在功能接收器中安装计时器作业。
无论如何,我认为您将面临相当多的开发工作。