Skip to Content
Menu
This question has been flagged

In my "Library" on my website I can navigate to a particular slide but when I hit the download button it prompts me to login. The line in the code looks like this:

@http.route('''/slides/slide/<model("slide.slide", "[('channel_id.can_see', '=', True), ('download_security', '=', 'public')]"):slide>/download''', type='http', auth="public", website=True)
def slide_download(self, slide):
if slide.download_security == 'public' or (slide.download_security == 'user' and request.session.uid):
filecontent = base64.b64decode(slide.datas)
disposition = 'attachment; filename=%s.pdf' % werkzeug.urls.url_quote(slide.name)
return request.make_response(
filecontent,
[('Content-Type', 'application/pdf'),
('Content-Length', len(filecontent)),
('Content-Disposition', disposition)])
elif not request.session.uid and slide.download_security == 'user':
return werkzeug.utils.redirect('/web?redirect=/slides/slide/%s' % (slide.id))
return request.website.render("website.403")

I put in a pdb and found that whether I'm logged in or not the slide.download_security is always equal to 'user'. I've tried all combinations of removing things but usually just that results in the loss of my download button. However, if I navigate directly to the /slides/slide/#/download url it downloads. So I guess I know that is works.

How can I allow the public to download these documents without having to be logged in and still maintain my download button?

Thanks for your help!

Avatar
Discard
Related Posts Replies Views Activity
2
Oct 24
5621
2
May 17
2947
1
Apr 17
2422
1
Sep 21
3844
4
May 21
18007