jasper报告-JasperServer拒绝ROLE_USER创建和修改调度



我需要防止普通用户在JasperServer中安排报告,甚至修改ROLE_ADMINISTRATOR以前制定的计划。只能安排ROLE_ADMINISTRATOR。

我遵循了这个指南http://community.jaspersoft.com/wiki/how-customize-navigation-resource-menu-right-click-resource这一个在JasperReports Server中控制调度,以防止使用调度操作,它只能部分工作,用户不能使用上下文菜单(右键单击(创建调度,但他们可以修改、删除以前的调度。怎样通过使用具有先前计划的报告列表中的链接(时钟图标(。

有人知道防止这种情况的解决方案吗?

我根据以下指南找到了一个解决方案:http://community.jaspersoft.com/documentation/jasperreports-server-ultimate-guide/v561/restricting-access-role

我在页面中使用了"按角色限制JSP文件的一个部分":

"…/WEB-INF/jsp/modules/reportScheduling/main.jsp">

要将按钮("创建计划"、"立即运行"one_answers"刷新列表"(限制为ROLE_USERS,需要使用标签authz:authorize封装此代码

<li class="node open">
    <ul class="list buttonSet">
        <li class="leaf">
            <button class="button capsule text first up scheduleJob">
                <span class="wrap"><spring:message code="report.scheduling.list.button.new"/></span>
                <span class="icon"></span>
            </button>
        </li>
        <li class="leaf">
            <button class="button capsule text last up runJob">
                <span class="wrap"><spring:message code="report.scheduling.list.button.now"/></span>
                <span class="icon"></span>
            </button>
        </li>
    </ul>
</li>   
<li class="node open">
    <ul class="list buttonSet">
        <li class="leaf">
            <button class="button capsule text up refreshList">
                <span class="wrap"><spring:message code="report.scheduling.list.button.refresh"/></span>
                <span class="icon"></span>
            </button>
        </li>
    </ul>
</li>

这样:

<authz:authorize ifAllGranted="ROLE_ADMINISTRATOR">
<li class="node open">      
  ...
</li>
</authz:authorize>

最后,限制作业的调度结果列表:

<!-- body of jobs list -->
<authz:authorize ifAllGranted="ROLE_ADMINISTRATOR">
        <div id="resultsContainer" class="body">
            <ul id="resultsList" class="list collapsible tabular jobs sixColumn"></ul>
        </div>
</authz:authorize>
<!-- end of body of jobs list -->

最新更新