2sxc - 工具栏 - 按DNN角色

时间:2017-09-11 08:46:59

标签: dotnetnuke 2sxc

我很难弄清楚权限的工作方式。 在DNN中为用户提供安全角色,例如编辑模块/页面只是为了能够编辑应用程序数据,这对我来说并不适用。

我需要授予用户严格的权限,以添加或编辑该app / module中视图/内容的任何数据,但是他们不能拥有页面或模块本身的编辑权限(只有其中的数据,如FnL允许) )。

基本上,对于没有安全访问权限的某些选定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子句返回true(呈现h1),但工具栏和按钮根本不显示...

1 个答案:

答案 0 :(得分:0)

首先,我建议只使用一个toolbar-api来保持简单。当您使用Razor时,我建议您使用它,因为当您使用不正确的语法时会出现错误。最好使用@Edit.Toolbar(...)

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

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

    1. 如果它不在那里,你的服务器代码有点不对,而if或其他东西阻止了输出。
    2. 如果是JS错误,您应该检查您正在使用的值
    3. 如果没有被替换,那么你的标签是错误的,或者页面没有加载执行该操作所需的js。 ATM只有在用户对模块进行编辑权限时才会加载。
    4. 如果它在那里但没有显示,可以创建一个非悬停的解决方案,或调整你的CSS以使其工作。