Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Websites UFRPE
Django Private Storage
Commits
eecfc006
Commit
eecfc006
authored
Feb 07, 2017
by
Diederik van der Boor
Browse files
Add PrivateStorageDetailView for project code to reuse easily
parent
94700a6c
Changes
1
Show whitespace changes
Inline
Side-by-side
private_storage/views.py
View file @
eecfc006
...
@@ -4,6 +4,7 @@ Views to send private files.
...
@@ -4,6 +4,7 @@ Views to send private files.
from
django.http
import
HttpResponseForbidden
,
Http404
from
django.http
import
HttpResponseForbidden
,
Http404
from
django.utils.module_loading
import
import_string
from
django.utils.module_loading
import
import_string
from
django.views.generic
import
View
from
django.views.generic
import
View
from
django.views.generic.detail
import
SingleObjectMixin
from
.
import
appconfig
from
.
import
appconfig
from
.models
import
PrivateFile
from
.models
import
PrivateFile
...
@@ -66,3 +67,29 @@ class PrivateStorageView(View):
...
@@ -66,3 +67,29 @@ class PrivateStorageView(View):
:rtype: django.http.HttpResponse
:rtype: django.http.HttpResponse
"""
"""
return
self
.
server_class
().
serve
(
private_file
)
return
self
.
server_class
().
serve
(
private_file
)
class
PrivateStorageDetailView
(
SingleObjectMixin
,
PrivateStorageView
):
"""
Download a document based on an object ID.
This view can by used by third-party apps to implement their own download view.
Implement access controls by overriding :meth`get_queryset` or redefining :meth:`can_access_file`.
"""
model
=
None
#
model_file_field
=
'file'
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
object
=
self
.
get_object
()
return
super
().
get
(
request
,
*
args
,
**
kwargs
)
def
get_path
(
self
):
file
=
getattr
(
self
.
object
,
'file'
)
return
file
.
path
def
can_access_file
(
self
,
private_file
):
"""
The authorization rule for this view.
By default it reuses the settings, but this should likely be redefined.
"""
return
PrivateStorageView
.
can_access_file
(
private_file
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment