【问题标题】:2sxc - How can users View and Edit their own Drafts?2sxc - 用户如何查看和编辑自己的草稿?
【发布时间】:2022-08-10 00:04:05
【问题描述】:

这是场景。在大型组织中,所有用户都登录到他们的 Intranet,并且他们处于员工 (DNN) 角色中。我们正在构建一个 2sxc 应用程序来处理一个非常基本的分类广告列表,以便用户可以相互提供/出售商品。

对于员工,我们有一个管理我的项目视图,它是页面上唯一的模块。任何具有员工角色的登录用户都可以查看(DNN 权限)该页面。我们让它按预期工作,以便用户可以查看已批准的 (.IsPublished) 项目并将项目添加为草稿 (!.IsPublished)。

问题是,用户添加项目后,他们看不到它们。我们根本无法弄清楚如何在视图中显示草稿项目。

员工用户添加草稿项目后,管理员可以看到:

并在视图中

但是当以员工角色登录时,视图只显示:

我在内容类型和视图上都尝试了许多权限。我尝试了 GetDraft(),但这似乎在另一个场景中起到了作用。

获取项目列表的代码如下所示:

@{
  var items = AsList(App.Data[\"Items\"])
    // .Where(i => i.IsPublished == false)
  ;
}

我需要做什么才能让非管理员也可以查看草稿 (.IsPublished == false) 项目?

请注意,如果我将角色的页面 (DNN) 权限从“查看”升级到“编辑”,则会出现草稿项目,但这违背了目的(在这种情况下)。

同样,这不是面向公众的页面,我们使用 2sxc UI 添加内容项。如果我是登录的员工用户并且我在分类广告中添加要出售的商品,我希望经理稍后会批准它,但在那之前,我应该能够看到我的商品(我是实体 .Owner ) 仍在草稿中(尚未批准)。提前致谢!!

2sxc v13.12.1

更新:

将权限从Create Draft 增加到Edit Draft CRUD,即使在 DNN 应用程序池重新启动后也没有任何区别。

    标签: dotnetnuke 2sxc


    【解决方案1】:

    这里有一些背景:

    应用有数据,部分数据处于草稿模式。在内部,草稿项目实际上存在两次——一次作为真实数据,一次作为草稿。所有默认机制都将应用过滤器以仅向所有用户显示已发布的数据,并且更喜欢管理员的草稿。

    但这很容易解决 - 你只需要摆脱默认行为。我不确定您当前是如何访问数据的,但我假设它是

    1. 模块内容(分配给模块的项目)
    2. 查询
    3. 访问 App.Data 的代码

      所有这些行为都是默认方式。但是你可以改变它。

      这基本上是普通查询的样子:

      较新的查询将其缩短为仅显示 App 数据源,因为它执行相同的操作 - 自动过滤。

      但是您可以手动更改它。添加App Root Cache IAppRoot 并使用Draft Stream 而不是Default - 然后随心所欲地使用它 - 比如通过Type Filter 只获得你想要的项目。

      它看起来有点像这样:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多