aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/submit/views.py
diff options
context:
space:
mode:
authorRodney Ewing <ewing.rj@gmail.com>2013-06-12 12:02:11 -0700
committerRodney Ewing <ewing.rj@gmail.com>2013-08-26 06:33:28 -0700
commitbdd2242155d3192615740661ce52f6fb960d1a05 (patch)
tree54599b61d8f75e43552932b07792eefd41f21e2a /mediagoblin/submit/views.py
parent0cdebda7fc533384bd725412365325edcbeb038c (diff)
downloadmediagoblin-bdd2242155d3192615740661ce52f6fb960d1a05.tar.lz
mediagoblin-bdd2242155d3192615740661ce52f6fb960d1a05.tar.xz
mediagoblin-bdd2242155d3192615740661ce52f6fb960d1a05.zip
added user upload limits
Diffstat (limited to 'mediagoblin/submit/views.py')
-rw-r--r--mediagoblin/submit/views.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py
index 6bb95ecb..d5f05cb7 100644
--- a/mediagoblin/submit/views.py
+++ b/mediagoblin/submit/views.py
@@ -43,6 +43,20 @@ def submit_start(request):
"""
First view for submitting a file.
"""
+ user = request.user
+ if user.upload_limit:
+ upload_limit = user.upload_limit
+ else:
+ upload_limit = mg_globals.app_config['upload_limit']
+
+ if user.uploaded >= upload_limit:
+ messages.add_message(
+ request,
+ messages.WARNING,
+ _('Sorry, you have reached your upload limit.'))
+ return redirect(
+ request, '/u/{0}'.format(user.username))
+
submit_form = submit_forms.SubmitStartForm(request.form,
license=request.user.license_preference)
@@ -86,6 +100,26 @@ def submit_start(request):
with queue_file:
queue_file.write(request.files['file'].stream.read())
+ # Get file size an round to 2 decimal places
+ file_size = request.app.queue_store.get_file_size(
+ entry.queued_media_file) / (1024.0 * 1024)
+ file_size = float('{0:.2f}'.format(file_size))
+
+ # Check if over upload limit
+ if (user.uploaded + file_size) >= upload_limit:
+ messages.add_message(
+ request,
+ messages.WARNING,
+ _('Sorry, uploading this file will put you over your'
+ ' upload limit.'))
+ return redirect(
+ request, '/u/{0}'.format(user.username))
+
+ user.uploaded = user.uploaded + file_size
+ user.save()
+
+ entry.file_size = file_size
+
# Save now so we have this data before kicking off processing
entry.save()