add add item api

This commit is contained in:
j 2013-02-25 10:30:29 +00:00
parent 30f61d0ed5
commit 8734e35613
2 changed files with 36 additions and 2 deletions

View file

@ -187,7 +187,7 @@ def addFile(request):
response = json_response({}) response = json_response({})
data = json.loads(request.POST['data']) data = json.loads(request.POST['data'])
oshash = data.pop('id') oshash = data.pop('id')
if not request.user.get_profile().capability('canUploadVideo'): if not request.user.get_profile().capability('canAddItems'):
response = json_response(status=403, text='permissino denied') response = json_response(status=403, text='permissino denied')
elif models.File.objects.filter(oshash=oshash).count() > 0: elif models.File.objects.filter(oshash=oshash).count() > 0:
f = models.File.objects.get(oshash=oshash) f = models.File.objects.get(oshash=oshash)

View file

@ -7,6 +7,7 @@ import random
from urlparse import urlparse from urlparse import urlparse
from urllib import quote from urllib import quote
import time import time
import re
import Image import Image
from django.db.models import Count, Sum from django.db.models import Count, Sum
@ -459,6 +460,35 @@ def get(request):
return render_to_json_response(response) return render_to_json_response(response)
actions.register(get) actions.register(get)
@login_required_json
def add(request):
'''
param data {
}
return {
status: {'code': int, 'text': string},
data: {
id:
name:
...
}
}
'''
if not request.user.get_profile().capability('canAddItems'):
response = json_response(status=403, text='permissino denied')
else:
data = json.loads(request.POST['data'])
data['title'] = data.get('title', 'Untitled')
i = models.Item()
i.data['title'] = data['title']
i.user = request.user
i.save()
response = json_response(status=200, text='created')
response['data'] = i.get_json()
return render_to_json_response(response)
actions.register(add, cache=False)
@login_required_json @login_required_json
def edit(request): def edit(request):
''' '''
@ -515,7 +545,11 @@ def remove(request):
response = json_response({}) response = json_response({})
data = json.loads(request.POST['data']) data = json.loads(request.POST['data'])
item = get_object_or_404_json(models.Item, itemId=data['id']) item = get_object_or_404_json(models.Item, itemId=data['id'])
if item.editable(request.user): user = request.user
if user.get_profile().capability('canRemoveItems') == True or \
user.is_staff or \
item.user == user or \
item.groups.filter(id__in=user.groups.all()).count() > 0:
item.log() item.log()
#FIXME: is this cascading enough or do we end up with orphan files etc. #FIXME: is this cascading enough or do we end up with orphan files etc.
item.delete() item.delete()