[#5634] - Repository report output file read only permissions

Category:
Bug report
Priority:
Normal
Status:
New
Project: Severity:
Major
Resolution:
Open
Component: Reproducibility:
Always
Assigned to:

After upgrading from Jasperserver 3.7.1 to 4.5 we noticed that now report output files from scheduled reports (PDFs, Excel files, etc) can no longer be opened by users who have read only rights to them. Now if I want the user to be able to download/open the pdf file I have to give them at least read+write+delete rights.

chaddn's picture
233
Joined: Jan 21 2009 - 3:04pm
Last seen: 2 months 1 week ago

3 Comments:

#1

I'm about to implement JasperServer worldwide for my company which I hope will lead to investment in an Enterprise license. This bug and the empty reports email bug could prevent us from moving forward. I hope this is fixed soon!

#2

I've found that it's only interface bug.

Example:

1. First, I login as user with administrative permissions on requested file - I can see download link on file. I download file, and copy download link.

2. Then, I login as test_user with read_only permissions on requested file, and has'nt see download link, just as chaddn says. But when i paste direct download link, then file successfuly downloaded. And finaly, if I set no access permission - then I can't download even on direct link.

Seems like bug in WUI, not in permissions.

Sorry for my bad English. :)

#3

To fix a bug:

Edit repository.search.main.js, which located in scripts folder of jasperserver application.

Replace

function canBeOpenedInDesigner(resource) {
resource = resource ? resource : repositorySearch.model.getSelectedResources()[0];
return resource && resource.isEditable() && repositorySearch.openActionFactory[resource.typeSuffix()] &&
(resource.typeSuffix() !== "ContentResource");
}

function canBeOpened(resource) {
resource = resource ? resource : repositorySearch.model.getSelectedResources()[0];
return resource && resource.isEditable() && repositorySearch.openActionFactory[resource.typeSuffix()] &&
(resource.typeSuffix() === "ContentResource");
}

by

function canBeOpenedInDesigner(resource) {
resource = resource ? resource : repositorySearch.model.getSelectedResources()[0];
return resource && resource.isReadable() && repositorySearch.openActionFactory[resource.typeSuffix()] &&
(resource.typeSuffix() !== "ContentResource");
}

function canBeOpened(resource) {
resource = resource ? resource : repositorySearch.model.getSelectedResources()[0];
return resource && resource.isReadable() && repositorySearch.openActionFactory[resource.typeSuffix()] &&
(resource.typeSuffix() === "ContentResource");
}

Feedback