我正在尝试通过Javascript使用JSON Web服务API来获取用户有权访问的文档库中的所有文件,我试图使用它:
Liferay.Service(
'/dlfileentry/get-group-file-entries',
{
groupId: gId,
userId: userId,
rootFolderId: 0,
start: 0,
end: 300,
'-obc': ''
},
function(obj) {
console.log(obj);
}
);
但是,此调用仅检索由该特定用户上载的文件,这不是我想要的。 是否有另一种方法可以检索特定用户有权查看的所有文档?
我考虑过使用网络服务电话:
Liferay.Service(
'/assetentry/get-entries',
{
entryQuery:
},
function(obj) {
console.log(obj);
}
);
但是,我不知道这是否会产生类似的结果,我不知道如何将AssetEntryQuery
对象传递给entryQuery
参数。
更新:执行此操作的第二种方法(显然不是最好的方法)是使用/dlfolder/get-subfolder-ids
获取所有子文件夹ID,然后使用{{1}遍历每个文件夹包括root并保存这些文件:
/dlapp/get-file-entries
但是你可以想象,这意味着每个文件夹调用一个Web服务,听起来似乎非常低效。使用Web服务的另一种方法是什么?
答案 0 :(得分:0)
我找到了一个Web服务,它将返回用户有权访问的所有文件。通过将'/assetentry/get-entries'
与空条目{}
一起使用,它将返回通过权限检查的所有文件。
Liferay.Service(
'/assetentry/get-entries',
{
entryQuery: {}
},
function(object) {
console.log('/assetentry/get-entries empty');
console.log(object);
}
);
如果要将其限制为groupId或其他一些参数,则需要在entryQuery参数中添加一个包含这些条件的数组:
entryQuery: {"classNameIds":[10007],"groupIds":[10182]}
这个解决方案正是我所需要的。