如何在orchardproject.net cms中创建用户可创建/可编辑的内容类型

时间:2011-05-23 19:44:03

标签: .net orchardcms

我正在定制OrchardProject.net cms。我希望用户能够提交“契约”。这是一个简单的ContentType,只有一个文本字段。

这对于具有管理员权限的用户来说是小菜一碟,但我希望普通用户无法访问管理面板来创建它。用户可以提交评论,但有很多环节可以跳过以跟随该模型。 (记录,部分,控制器,viewModel,视图等。)

我认为默认系统会提供此功能,但我无法弄清楚路由是否可以生成它。

1 个答案:

答案 0 :(得分:1)

如果您想要角色能够在您的网站上创建和发布“契约”内容,您可以进入角色(Dashboard - > Users - > Orles 1.1中的角色标签) )并为角色(现有的或新的)提供各种权限。然后,您将角色分配给用户。

添加名为契约的内容类型(确保包含公共部分)后,“角色”标签允许以下权限:

为他人发布或取消发布契约 发布或取消发布契约
为他人编辑契约
编辑契约
删除其他人的契约 删除契约

所以,例如:

  1. 使用两个“发布或取消发布...”权限创建角色 DeedCreator (在契约部分
  2. 您还需要在Orchard.Framework部分中授予“访问管理员面板”权限
  3. 使用DeedCreator角色
  4. 创建一个用户 User1

    即使您授予了访问管理员面板权限,用户也只能访问仪表板中的“创建契约”页面 - 没有别的。

    如果您想允许匿名用户(真的,真的,真的推荐),您可以在技术上将上述权限授予匿名角色。请记住,匿名用户至少会对您的信息中心有一个表面级别的攻击角度。任何用户都可以导航到www.yoursite.com/admin并开始创建契约内容。

    每条评论更新

    当我保存我的测试契约时,这是 / Admin / Contents / Create / Deed 的POST看起来像:

    Body.Text:<p>test useraddable add (save)</p>
    Deed.UserField1.Value:blah blah
    CommentsActive:true
    CommentsActive:false
    CommonPart.Owner:admin
    CommonPart.ContainerId:
    submit.Save:submit.Save
    

    另外,__ RequestVerificationToken有一个值,我不知道如何生成。 (也许使用Orchard.Mvc.Html命名空间中的Html.BeginAntiForgeryPost帮助程序