首页 > 其他 > 详细

Confluence实现附件下载权限的控制

时间:2019-04-24 19:48:22      阅读:585      评论:0      收藏:0      [点我收藏+]

背景:

公司为了方便的管理过程文档,搭建了一个Confluence服务器,版本6.9。在使用过程中,需要按照用户对空间中上传的附件进行下载权限控制。

解决过程及处理方案:

一、Confluence中导出功能支持导出的内容:

技术分享图片

二、Confluence中如何控制导出功能:

https://confluence.atlassian.com/confkb/how-to-restrict-the-ability-to-export-a-space-in-confluence-800699946.html?_ga=2.128750732.1874233445.1556014885-1264367639.1556014885

社区中给出的这个方案,

第一种是全局的,由于需求仅仅是限制某个空间、某些用户的下载,所以第一种不合适

第二种方案尝试之后无法控制,原因是:

https://confluence.atlassian.com/conf69/space-permissions-overview-950284360.html

技术分享图片

空间权限控制这里如果有查看权限,默认就会有导出功能,所以从下图的控制无法实现。

技术分享图片

三、Confluence提供的权限控制不能直接满足需求,需要扩展实现一下。发现Confluence中有“自定义HTML”的功能,即在界面中增加html代码,准备在这里做一些手脚

具体操作如下:

技术分享图片

技术分享图片

技术分享图片

Body尾部添加的代码如下:其中****处填写空间的标识

<script type="text/javascript">
    $(document).ready(function(){
    $(body).bind("DOMNodeInserted",function(e){
        if(AJS.params.spaceKey=="****")
        {
            if(AJS.params.canRemovePage==false)
            {
                $(.cp-control-panel-download).hide();
            }
        }
  })    
    AJS.toInit(function(){
        if(AJS.params.spaceKey=="****")
        {
            if(AJS.params.canRemovePage==false)
            {
                AJS.$(#action-export-word-link).hide();
                AJS.$(#action-export-pdf-link).hide();
            }
        }
    });})
</script>

上面的代码功能主要是

1.做一个界面元素绑定的监听,当下载按钮元素加载后,符合代码中要求就隐藏掉

 技术分享图片

 

2.把confluence界面上的“导出为**”控件隐藏

技术分享图片

 这里把html直接写到Body尾部,而不用js脚本引用的方式是因为,当使用js脚本时,测试过程中发现js文件下载用时20s,具体原因不是太清楚,所以暂时把html直接写到Body尾部这里

四、完成自定义HTML的配置之后,仅需要简单的做一下用户的权限配置就行

当用户分配了页面的添加、删除权限之后,就同步有下载、导出的权限

技术分享图片

参考资料 

Atlassian社区

https://support.atlassian.com/confluence-server/

Confluence实现附件下载权限的控制

原文:https://www.cnblogs.com/learnmore/p/10764518.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!