是否可以允许SharePoint博客的用户发表评论,但不能创建帖子?

时间:2010-04-27 16:26:45

标签: sharepoint

通过探索权限,评论和博客文章之间似乎没有区别。

我可以将用户设置为贡献者,允许他们发表评论,并表示他们的帖子需要apporval。但我想阻止他们即使作为草稿也能创建一个帖子。

非常感谢

2 个答案:

答案 0 :(得分:1)

我已经破解了!

在主页面上有一个管理帖子的选项。在该页面中,有一个设置权限的选项。完善。

答案 1 :(得分:0)

“我的网站”中的博客是使用“我的网站博客”功能(863DA2AC-3873-4930-8498-752886210911)创建的。功能接收器内部是以下代码,它通过将编辑访问权限设置为仅自己的,修改角色继承以及授予对访客组的访问权限来修改“注释”列表:

int num2;
SPList list3;
SPRoleDefinition byType;
SPRoleAssignment assignment;
UserProfileManager manager;
string str2;
string[] strArray2;
int num3;
string str = parent.RootWeb.AllProperties["vti_associatevisitorgroup"] as string;
SPGroup principal = null;
if (!string.IsNullOrEmpty(str))
{
    num2 = int.Parse(str, CultureInfo.InvariantCulture);
    principal = parent.RootWeb.SiteGroups.GetByID(num2);
}
list3 = GetList(web, SPListTemplateType.Comments);
list3.WriteSecurity = 2;
byType = web.RoleDefinitions.GetByType(SPRoleType.Contributor);
list3.BreakRoleInheritance(true);
web.AllowUnsafeUpdates = true;
if (principal == null)
{
    manager = new UserProfileManager(ServerContext.GetContext(parent));
    strArray2 = manager.PersonalSiteReaders.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);
    num3 = 0;
    while (num3 < strArray2.Length)
    {
        str2 = strArray2[num3];
        try
        {
            SPRoleAssignment roleAssignment = new SPRoleAssignment(str2, null, null, null);
            roleAssignment.RoleDefinitionBindings.Add(byType);
            list3.RoleAssignments.Add(roleAssignment);
        }
        catch (Exception exception)
        {
            ULS.SendTraceTag(ULSTagID.tag_7otc, ULSCat.msoulscat_SPS_UserProfiles, ULSTraceLevel.Medium, "Ignored one invalid user for the personal site reader (%s): %s.", new object[] { str2, exception });
        }
        num3++;
    }
}
else
{
    assignment = new SPRoleAssignment(principal);
    assignment.RoleDefinitionBindings.Add(byType);
    list3.RoleAssignments.Add(assignment);
}
list3.Update();
ULS.SendTraceTag(ULSTagID.tag_6y3j, ULSCat.msoulscat_SPS_UserProfiles, ULSTraceLevel.Medium, "Successfully activated MySite Blog Feature");

我可能会编写一个类似的自定义功能接收器。但是,如果我只需要网站集中的单个博客并且可以接受博客的URL,我可以尝试通过激活“我的网站博客”功能来创建博客。