2sxc - 工具栏 - 按 DNN 角色编辑权限

2sxc - Toolbar - Edit permissions by DNN roles

我很难弄清楚权限是如何工作的。 在 DNN 中授予用户安全角色,例如编辑 module/page 只是为了能够编辑应用程序数据对我来说不起作用。

我需要授予用户严格的权限以在 view/content 中添加或编辑任何数据 app/module,但他们不能对页面或模块本身具有编辑权限(只有数据在其中,就像 FnL 允许的那样)。

基本上,内容工具栏或列表工具栏应该对某些 select 没有安全访问权限的 DNN 用户(更像是社交团体)可见。

2sxc 设计师组是不可能的。对不同应用具有不同访问权限的组太多了。

自定义工具栏似乎无法呈现... 我用了

<ul class="sc-menu" toolbar='{"contentType":"farm_ad","action":"new"}'></ul>

我可以在页面源代码中看到代码,但按钮本身不会为非管理员呈现。

我尝试向所有人授予对内容和查看的完全权限(安全级别:查看权限甚至匿名),但按钮不显示...

我正在尝试这段代码:

@Dnn.User.IsInRole("Editores de fármacos")<br>
@if (@Dnn.User.IsInRole("Editores de fármacos") == true)
    {
    <div class="sc-element">
    <h1>Fármacos adulto</h1>
    @Edit.Toolbar(ListContent)
    </div>
    <br>
    <ul class="sc-menu" toolbar='{"contentType":"farm_ad","action":"new"}'></ul>
    <br>
    }

而且我可以看到 if 子句 returns true(呈现 h1),但工具栏和按钮根本不显示...

首先 - 我建议只使用一个工具栏 -api,以保持简单。当你使用 Razor 时,我建议你使用它,因为当你使用不正确的语法时你会得到错误。所以最好使用 @Edit.Toolbar(...)

总有几个问题要问,如果工具栏没有出现:

  1. 真的存在吗? - 检查呈现的 HTML,如果 @Edit.Toolbar 被替换为 .如果没有,我的猜测是这个模板上没有 ListContent 对象——这是一个模板配置。您也可以尝试不带参数的 @Edit.Toolbar(),只得到一个提供 app/manage 按钮但不进行编辑的最小工具栏。
  2. 渲染工具栏时是否存在 JS 错误 - 这并不常见,但如果出现问题,则可能会发生。检查 F12 以查看是否出现某些内容。
  3. 是否正确替换? JS 选择相当简单的标签并将其替换为复杂的 UL/LI 列表。检查 F12 看它是否这样做。
  4. 只是因为CSS看不见?有时你会有一个工具栏,但你不会看到它,因为它上面有东西。

根据核心问题,您会有不同的解决方案。

  1. 如果不存在,则说明您的服务器代码有问题,并且 if 或其他原因阻止了输出。
  2. 如果是 JS 错误,你应该检查你使用的是什么值
  3. 如果它没有被替换,则说明您的标记有误,或者页面没有加载执行此操作所需的 js。 ATM 它只有在用户对模块具有编辑权限时才会加载。
  4. 如果它在那里但没有出现,要么创建一个非悬停解决方案,要么调整你的 CSS 让它工作。