Confluence实现附件下载权限的控制
背景:
公司为了方便的管理过程文档,搭建了一个Confluence服务器,版本6.9。在使用过程中,需要按照用户对空间中上传的附件进行下载权限控制。
解决过程及处理方案:
一、Confluence中导出功能支持导出的内容:

二、Confluence中如何控制导出功能:
社区中给出的这个方案,
第一种是全局的,由于需求仅仅是限制某个空间、某些用户的下载,所以第一种不合适
第二种方案尝试之后无法控制,原因是:
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();
//禁用页面打印
$('head').append('<style> @media print{html, body{display:none} } </style> ');
//禁用右键菜单
$('body').attr('oncontextmenu','self.event.returnValue=false');
//禁用选中文字
$('body').attr('onselectstart','return false');
}
}
})
AJS.toInit(function(){
if(AJS.params.spaceKey=="****")
{
if(AJS.params.canRemovePage==false)
{
AJS.$('#action-export-word-link').hide();
AJS.$('#action-export-pdf-link').hide();
//禁用页面打印
$('head').append('<style> @media print{html, body{display:none} } </style> ');
//禁用右键菜单
$('body').attr('oncontextmenu','self.event.returnValue=false');
//禁用选中文字
$('body').attr('onselectstart','return false');
} } });}) </script>
上面的代码功能主要是
1.做一个界面元素绑定的监听,当下载按钮元素加载后,符合代码中要求就隐藏掉

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

这里把html直接写到Body尾部,而不用js脚本引用的方式是因为,当使用js脚本时,测试过程中发现js文件下载用时20s,具体原因不是太清楚,所以暂时把html直接写到Body尾部这里
四、完成自定义HTML的配置之后,仅需要简单的做一下用户的权限配置就行
当用户分配了页面的添加、删除权限之后,就同步有下载、导出的权限

参考资料
https://support.atlassian.com/confluence-server/
Confluence实现附件下载权限的控制的更多相关文章
- Python 实现 Discuz论坛附件下载权限绕过漏洞
背景:最近压力有些大,想玩点游戏放松下,去Mac论坛下载,发现需要各种权限,于是蛋疼了. 所以,上网查了discuz! x3.1破解,手动替换,发现出现“链接已过期”.所以写了下面程序. 0.将下列代 ...
- Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...
- Confluence 6 指派空间权限概念
如果你是一个空间的管理员,你可以对空间的使用权限进行控制.你可以为独立用户或者Confluence Groups的权限进行权限的指派/收回. Confluence 管理员可以将用户分配到用户组中,这样 ...
- IE8下导入EXCEL数据传到客户端以附件下载
IE8下导入EXCEL数据传到客户端以附件下载方式出现,而不显示数据,解决方法:以text/html格式返回. HttpResponseMessage message = new HttpRespon ...
- 解析:使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
之前开发时遇到的一个问题,使用easyui的form提交表单,在Chrome下时没问题的,但是在IE下出现类似附件下载时提示是否保存的现象. 这里记录一下如何解决的.其实这个现象不光是easyui的f ...
- phonegap 附件下载及打开附件
出处:http://my.oschina.net/u/1011854/blog/169434 再次 谢谢作者! 在开发web app并且使用phonegap的情况下,附件下载着实是一件令人头疼的事,什 ...
- android 后台附件下载
在service中通过在oncreat()中开启一个线程,轮训ArrayList<AttachmentTask> 我这个附件下载的任务list ,ArrayList<Attachme ...
- Confluence 6 附件存储文件系统的分级
从 Confluence 3.0 开始,附件的存储方式有了重大的改变和升级.如果你是从 Confluence 2.10 及其早期版本升级上来的,请参考 Upgrading Confluence 页面中 ...
- Confluence 6 附件存储选项
在早期的 Confluence 版本中,我们允许存储附件到 WebDav 或者 Confluence 数据库中.针对新的 Confluence 安装,我们不再支持这 2 种存储了. 本地文件系统 在默 ...
随机推荐
- word2vec概述
既然是概述,那么我也只会在文中谈一点关于 Word2Vec 的思想和大概的方法.对于这个算法,如果一开始学习就深入到算法细节中,反而会陷入局部极值点,最后甚至不知道这个算法是干嘛的.在了解算法大概的思 ...
- [JavaScript]ECMA-6 yield语法
概述 yield关键字用于并且仅限于生成器函数(generator)内部,作用是暂停(并返回)/重启(可选修改该栈环境变量)该函数栈环境. 一般语法 调用生成器函数时返回一个可迭代对象,当调用该对象的 ...
- Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步
1. tortoiseSVN 关于 tortoiseSVN 的安装使用详见博文 TortoiseSVN的安装及其简单使用. 2. VisualSVN Server 关于 VisualSVN Serve ...
- pl/sql学习(5): 触发器trigger/事务和锁
(一)触发器简单介绍 触发器是由数据库的特定时间来触发的, 特定事件主要包括以下几种类型: (1)DML: insert, update,delete 增删改 (2)DDL: create, alte ...
- hdu3709 数位dp
枚举fix所在的位置loc即可,然后数位dp即可 这题要注意一种特殊情况,就是所有位都是0的时候对于每个fix都是成立的 /* dp[i][j][k]表示前i位确定了平衡点在第j位,前i位和为k fi ...
- SpringBoot 自定义监听器(Listener)
1. 使用场景:在一些业务场景中,当容器初始化完成之后,需要处理一些操作,比如一些数据的加载.初始化缓存.特定任务的注册.开启线程或程序来干某些事情等等. 2. 使用步骤: A. 监听类实现Appli ...
- echart 饼状图自定义样式
echarts.init(document.getElementById('WaterCategoryStatistics')).setOption({ legend: { orient:'verti ...
- Kali linux2.0里Metasploit的postgresql selected, no connection问题解决
说在前面的话 1.在kali中metasploit默认使用postgresql作为它的数据库: 想要开启metasploit服务首先得打开postgresql数据库, 命令如下:(或者:/etc/in ...
- HDU 5977 Garden of Eden
题解: 路径统计比较容易想到点分治和dp dp的话是f[i][j]表示以i为根,取了i,颜色数状态为j的方案数 但是转移这里如果暴力转移就是$(2^k)^2$了 于是用FWT优化集合或 另外http: ...
- MSB4064 错误
把项目从vs2008转成vs 2012 后,受用msbuild 编译出错 错误Code:MSB4064 修改 把msbuild 的路径从 %windir%\Microsoft.NET\Framewor ...