forked from 0x2620/pandora
user.get_profile()->user.profile
This commit is contained in:
parent
3e8f28ff47
commit
1cc795995d
27 changed files with 72 additions and 70 deletions
|
@ -103,7 +103,7 @@ class Annotation(models.Model):
|
||||||
|
|
||||||
def editable(self, user):
|
def editable(self, user):
|
||||||
if user.is_authenticated():
|
if user.is_authenticated():
|
||||||
if user.get_profile().capability('canEditAnnotations') or \
|
if user.profile.capability('canEditAnnotations') or \
|
||||||
self.user == user or \
|
self.user == user or \
|
||||||
user.groups.filter(id__in=self.item.groups.all()).count() > 0:
|
user.groups.filter(id__in=self.item.groups.all()).count() > 0:
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -170,7 +170,7 @@ def addAnnotation(request, data):
|
||||||
|
|
||||||
layer_id = data['layer']
|
layer_id = data['layer']
|
||||||
layer = get_by_id(settings.CONFIG['layers'], layer_id)
|
layer = get_by_id(settings.CONFIG['layers'], layer_id)
|
||||||
if layer['canAddAnnotations'].get(request.user.get_profile().get_level()):
|
if layer['canAddAnnotations'].get(request.user.profile.get_level()):
|
||||||
if layer['type'] == 'entity':
|
if layer['type'] == 'entity':
|
||||||
try:
|
try:
|
||||||
value = Entity.get_by_name(ox.decode_html(data['value']), layer['entity']).get_id()
|
value = Entity.get_by_name(ox.decode_html(data['value']), layer['entity']).get_id()
|
||||||
|
@ -229,7 +229,7 @@ def addAnnotations(request, data):
|
||||||
layer_id = data['layer']
|
layer_id = data['layer']
|
||||||
layer = get_by_id(settings.CONFIG['layers'], layer_id)
|
layer = get_by_id(settings.CONFIG['layers'], layer_id)
|
||||||
if item.editable(request.user) \
|
if item.editable(request.user) \
|
||||||
and layer['canAddAnnotations'].get(request.user.get_profile().get_level()):
|
and layer['canAddAnnotations'].get(request.user.profile.get_level()):
|
||||||
response = json_response()
|
response = json_response()
|
||||||
data['user'] = request.user.username
|
data['user'] = request.user.username
|
||||||
t = add_annotations.delay(data)
|
t = add_annotations.delay(data)
|
||||||
|
|
|
@ -173,7 +173,7 @@ check the README for further details.
|
||||||
try:
|
try:
|
||||||
if User.objects.filter(profile__level=admin).count() == 0:
|
if User.objects.filter(profile__level=admin).count() == 0:
|
||||||
for u in User.objects.filter(is_superuser=True):
|
for u in User.objects.filter(is_superuser=True):
|
||||||
p = u.get_profile()
|
p = u.profile
|
||||||
p.level = admin
|
p.level = admin
|
||||||
p.save()
|
p.save()
|
||||||
settings.ADMIN = tuple([(u.username, u.email)
|
settings.ADMIN = tuple([(u.username, u.email)
|
||||||
|
|
|
@ -133,7 +133,7 @@ def editPage(request, data):
|
||||||
}
|
}
|
||||||
see: getPage
|
see: getPage
|
||||||
'''
|
'''
|
||||||
if request.user.get_profile().capability('canEditSitePages'):
|
if request.user.profile.capability('canEditSitePages'):
|
||||||
page, created = models.Page.objects.get_or_create(name=data['name'])
|
page, created = models.Page.objects.get_or_create(name=data['name'])
|
||||||
page.text = ox.sanitize_html(data['text'])
|
page.text = ox.sanitize_html(data['text'])
|
||||||
page.save()
|
page.save()
|
||||||
|
|
|
@ -305,7 +305,7 @@ class File(models.Model):
|
||||||
return srt
|
return srt
|
||||||
|
|
||||||
def editable(self, user):
|
def editable(self, user):
|
||||||
p = user.get_profile()
|
p = user.profile
|
||||||
return p.get_level() in ('admin', 'staff') or \
|
return p.get_level() in ('admin', 'staff') or \
|
||||||
(not self.available and p.capability('canAddItems')) or \
|
(not self.available and p.capability('canAddItems')) or \
|
||||||
self.instances.filter(volume__user=user).count() > 0 or \
|
self.instances.filter(volume__user=user).count() > 0 or \
|
||||||
|
|
|
@ -83,7 +83,7 @@ def update(request, data):
|
||||||
t = tasks.update_files.delay(user.username, data['volume'], data['files'])
|
t = tasks.update_files.delay(user.username, data['volume'], data['files'])
|
||||||
response['data']['taskId'] = t.task_id
|
response['data']['taskId'] = t.task_id
|
||||||
|
|
||||||
user_profile = user.get_profile()
|
user_profile = user.profile
|
||||||
user_profile.files_updated = datetime.now()
|
user_profile.files_updated = datetime.now()
|
||||||
user_profile.save()
|
user_profile.save()
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ def addMedia(request, data):
|
||||||
'''
|
'''
|
||||||
response = json_response({})
|
response = json_response({})
|
||||||
oshash = data.pop('id')
|
oshash = data.pop('id')
|
||||||
if not request.user.get_profile().capability('canAddItems'):
|
if not request.user.profile.capability('canAddItems'):
|
||||||
response = json_response(status=403, text='permission denied')
|
response = json_response(status=403, text='permission 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)
|
||||||
|
@ -496,7 +496,7 @@ def removeMedia(request, data):
|
||||||
see: addMedia, editMedia, findMedia, moveMedia
|
see: addMedia, editMedia, findMedia, moveMedia
|
||||||
'''
|
'''
|
||||||
response = json_response()
|
response = json_response()
|
||||||
if request.user.get_profile().get_level() == 'admin':
|
if request.user.profile.get_level() == 'admin':
|
||||||
qs = models.File.objects.filter(oshash__in=data['ids'], instances__id=None)
|
qs = models.File.objects.filter(oshash__in=data['ids'], instances__id=None)
|
||||||
selected = set([f.item.id for f in qs if f.selected])
|
selected = set([f.item.id for f in qs if f.selected])
|
||||||
items = list(set([f.item.id for f in qs]))
|
items = list(set([f.item.id for f in qs]))
|
||||||
|
|
|
@ -219,7 +219,7 @@ class ClipManager(Manager):
|
||||||
qs = qs.filter(sort__rightslevel__lte=allowed_level)
|
qs = qs.filter(sort__rightslevel__lte=allowed_level)
|
||||||
#users can see public clips, there own clips and clips of there groups
|
#users can see public clips, there own clips and clips of there groups
|
||||||
else:
|
else:
|
||||||
allowed_level = settings.CONFIG['capabilities']['canSeeItem'][user.get_profile().get_level()]
|
allowed_level = settings.CONFIG['capabilities']['canSeeItem'][user.profile.get_level()]
|
||||||
q = Q(sort__rightslevel__lte=allowed_level)|Q(user=user.id)
|
q = Q(sort__rightslevel__lte=allowed_level)|Q(user=user.id)
|
||||||
if user.groups.count():
|
if user.groups.count():
|
||||||
q |= Q(item__groups__in=user.groups.all())
|
q |= Q(item__groups__in=user.groups.all())
|
||||||
|
|
|
@ -103,7 +103,7 @@ class Document(models.Model):
|
||||||
return False
|
return False
|
||||||
if self.user == user or \
|
if self.user == user or \
|
||||||
user.is_staff or \
|
user.is_staff or \
|
||||||
user.get_profile().capability('canEditDocuments') == True or \
|
user.profile.capability('canEditDocuments') == True or \
|
||||||
(item and item.editable(user)):
|
(item and item.editable(user)):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -131,7 +131,7 @@ class Edit(models.Model):
|
||||||
return False
|
return False
|
||||||
if self.user == user or \
|
if self.user == user or \
|
||||||
user.is_staff or \
|
user.is_staff or \
|
||||||
user.get_profile().capability('canEditFeaturedEdits') == True:
|
user.profile.capability('canEditFeaturedEdits') == True:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ class Edit(models.Model):
|
||||||
pos.section = 'personal'
|
pos.section = 'personal'
|
||||||
pos.save()
|
pos.save()
|
||||||
elif value == 'featured':
|
elif value == 'featured':
|
||||||
if user.get_profile().capability('canEditFeaturedEdits'):
|
if user.profile.capability('canEditFeaturedEdits'):
|
||||||
pos, created = Position.objects.get_or_create(edit=self, user=user,
|
pos, created = Position.objects.get_or_create(edit=self, user=user,
|
||||||
section='featured')
|
section='featured')
|
||||||
if created:
|
if created:
|
||||||
|
@ -527,7 +527,7 @@ class Position(models.Model):
|
||||||
|
|
||||||
edit = models.ForeignKey(Edit, related_name='position')
|
edit = models.ForeignKey(Edit, related_name='position')
|
||||||
user = models.ForeignKey(User, related_name='edit_position')
|
user = models.ForeignKey(User, related_name='edit_position')
|
||||||
section = models.CharField(max_length='255')
|
section = models.CharField(max_length=255)
|
||||||
position = models.IntegerField(default=0)
|
position = models.IntegerField(default=0)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
|
|
|
@ -491,7 +491,7 @@ def sortEdits(request, data):
|
||||||
}.get(section,section)
|
}.get(section,section)
|
||||||
#ids = list(set(data['ids']))
|
#ids = list(set(data['ids']))
|
||||||
ids = data['ids']
|
ids = data['ids']
|
||||||
if section == 'featured' and not request.user.get_profile().capability('canEditFeaturedEdits'):
|
if section == 'featured' and not request.user.profile.capability('canEditFeaturedEdits'):
|
||||||
response = json_response(status=403, text='not allowed')
|
response = json_response(status=403, text='not allowed')
|
||||||
else:
|
else:
|
||||||
user = request.user
|
user = request.user
|
||||||
|
|
|
@ -102,7 +102,7 @@ class Entity(models.Model):
|
||||||
if not user or user.is_anonymous():
|
if not user or user.is_anonymous():
|
||||||
return False
|
return False
|
||||||
if user.is_staff or \
|
if user.is_staff or \
|
||||||
user.get_profile().capability('canEditEntities') == True or \
|
user.profile.capability('canEditEntities') == True or \
|
||||||
(item and item.editable(user)):
|
(item and item.editable(user)):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -74,7 +74,7 @@ class Event(models.Model):
|
||||||
if user and not user.is_anonymous() \
|
if user and not user.is_anonymous() \
|
||||||
and (not self.user or \
|
and (not self.user or \
|
||||||
self.user == user or \
|
self.user == user or \
|
||||||
user.get_profile().capability('canEditEvents')):
|
user.profile.capability('canEditEvents')):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ def parseCondition(condition, user, owner=None):
|
||||||
if (not exclude and op == '=' or op in ('$', '^')) and v == '':
|
if (not exclude and op == '=' or op in ('$', '^')) and v == '':
|
||||||
return Q()
|
return Q()
|
||||||
elif k == 'filename' and (user.is_anonymous() or \
|
elif k == 'filename' and (user.is_anonymous() or \
|
||||||
not user.get_profile().capability('canSeeMedia')):
|
not user.profile.capability('canSeeMedia')):
|
||||||
return Q(id=0)
|
return Q(id=0)
|
||||||
elif k == 'oshash':
|
elif k == 'oshash':
|
||||||
return Q(files__oshash=v)
|
return Q(files__oshash=v)
|
||||||
|
@ -117,7 +117,7 @@ def parseCondition(condition, user, owner=None):
|
||||||
q = ~q
|
q = ~q
|
||||||
return q
|
return q
|
||||||
elif k in ('canplayvideo', 'canplayclips'):
|
elif k in ('canplayvideo', 'canplayclips'):
|
||||||
level = user.is_anonymous() and 'guest' or user.get_profile().get_level()
|
level = user.is_anonymous() and 'guest' or user.profile.get_level()
|
||||||
allowed_level = settings.CONFIG['capabilities'][{
|
allowed_level = settings.CONFIG['capabilities'][{
|
||||||
'canplayvideo': 'canPlayVideo',
|
'canplayvideo': 'canPlayVideo',
|
||||||
'canplayclips': 'canPlayClips'
|
'canplayclips': 'canPlayClips'
|
||||||
|
@ -326,7 +326,7 @@ class ItemManager(Manager):
|
||||||
rendered_q = Q(rendered=True)
|
rendered_q = Q(rendered=True)
|
||||||
#users can see public items, there own items and items of there groups
|
#users can see public items, there own items and items of there groups
|
||||||
else:
|
else:
|
||||||
level = user.get_profile().get_level()
|
level = user.profile.get_level()
|
||||||
allowed_level = settings.CONFIG['capabilities']['canSeeItem'][level]
|
allowed_level = settings.CONFIG['capabilities']['canSeeItem'][level]
|
||||||
q = Q(level__lte=allowed_level)|Q(user=user)
|
q = Q(level__lte=allowed_level)|Q(user=user)
|
||||||
rendered_q = Q(rendered=True)|Q(user=user)
|
rendered_q = Q(rendered=True)|Q(user=user)
|
||||||
|
|
|
@ -206,7 +206,7 @@ class Item(models.Model):
|
||||||
if user.is_anonymous():
|
if user.is_anonymous():
|
||||||
level = 'guest'
|
level = 'guest'
|
||||||
else:
|
else:
|
||||||
level = user.get_profile().get_level()
|
level = user.profile.get_level()
|
||||||
editable = self.editable(user)
|
editable = self.editable(user)
|
||||||
if editable:
|
if editable:
|
||||||
return True
|
return True
|
||||||
|
@ -220,7 +220,7 @@ class Item(models.Model):
|
||||||
def editable(self, user):
|
def editable(self, user):
|
||||||
if user.is_anonymous():
|
if user.is_anonymous():
|
||||||
return False
|
return False
|
||||||
if user.get_profile().capability('canEditMetadata') == True or \
|
if user.profile.capability('canEditMetadata') == True or \
|
||||||
user.is_staff or \
|
user.is_staff or \
|
||||||
self.user == user or \
|
self.user == user or \
|
||||||
self.groups.filter(id__in=user.groups.all()).count() > 0:
|
self.groups.filter(id__in=user.groups.all()).count() > 0:
|
||||||
|
@ -346,7 +346,7 @@ class Item(models.Model):
|
||||||
update_ids = False
|
update_ids = False
|
||||||
if not self.id:
|
if not self.id:
|
||||||
if self.user:
|
if self.user:
|
||||||
self.level = settings.CONFIG['rightsLevel'][self.user.get_profile().get_level()]
|
self.level = settings.CONFIG['rightsLevel'][self.user.profile.get_level()]
|
||||||
else:
|
else:
|
||||||
self.level = settings.CONFIG['rightsLevel']['member']
|
self.level = settings.CONFIG['rightsLevel']['member']
|
||||||
if not self.public_id:
|
if not self.public_id:
|
||||||
|
@ -1139,7 +1139,7 @@ class Item(models.Model):
|
||||||
|
|
||||||
def get_files(self, user):
|
def get_files(self, user):
|
||||||
files = self.files.all().select_related()
|
files = self.files.all().select_related()
|
||||||
if user.get_profile().get_level() != 'admin':
|
if user.profile.get_level() != 'admin':
|
||||||
files = files.filter(instances__volume__user=user)
|
files = files.filter(instances__volume__user=user)
|
||||||
return [f.json() for f in files]
|
return [f.json() for f in files]
|
||||||
|
|
||||||
|
@ -1779,7 +1779,7 @@ class Description(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class AnnotationSequence(models.Model):
|
class AnnotationSequence(models.Model):
|
||||||
item = models.ForeignKey('Item', related_name='_annotation_sequence', unique=True)
|
item = models.OneToOneField('Item', related_name='_annotation_sequence')
|
||||||
value = models.BigIntegerField(default=1)
|
value = models.BigIntegerField(default=1)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
@ -504,7 +504,7 @@ def add(request, data):
|
||||||
notes: To allow for this, set config option `itemRequiresVideo` to false.
|
notes: To allow for this, set config option `itemRequiresVideo` to false.
|
||||||
see: edit, find, get, lookup, remove, upload
|
see: edit, find, get, lookup, remove, upload
|
||||||
'''
|
'''
|
||||||
if not request.user.get_profile().capability('canAddItems'):
|
if not request.user.profile.capability('canAddItems'):
|
||||||
response = json_response(status=403, text='permission denied')
|
response = json_response(status=403, text='permission denied')
|
||||||
else:
|
else:
|
||||||
data['title'] = data.get('title', 'Untitled')
|
data['title'] = data.get('title', 'Untitled')
|
||||||
|
@ -542,13 +542,13 @@ def edit(request, data):
|
||||||
if item.editable(request.user):
|
if item.editable(request.user):
|
||||||
response = json_response(status=200, text='ok')
|
response = json_response(status=200, text='ok')
|
||||||
if 'rightslevel' in data:
|
if 'rightslevel' in data:
|
||||||
if request.user.get_profile().capability('canEditRightsLevel') == True:
|
if request.user.profile.capability('canEditRightsLevel') == True:
|
||||||
item.level = int(data['rightslevel'])
|
item.level = int(data['rightslevel'])
|
||||||
else:
|
else:
|
||||||
response = json_response(status=403, text='permission denied')
|
response = json_response(status=403, text='permission denied')
|
||||||
del data['rightslevel']
|
del data['rightslevel']
|
||||||
if 'user' in data:
|
if 'user' in data:
|
||||||
if request.user.get_profile().get_level() in ('admin', 'staff') and \
|
if request.user.profile.get_level() in ('admin', 'staff') and \
|
||||||
models.User.objects.filter(username=data['user']).exists():
|
models.User.objects.filter(username=data['user']).exists():
|
||||||
new_user = models.User.objects.get(username=data['user'])
|
new_user = models.User.objects.get(username=data['user'])
|
||||||
if new_user != item.user:
|
if new_user != item.user:
|
||||||
|
@ -556,7 +556,7 @@ def edit(request, data):
|
||||||
update_clips = True
|
update_clips = True
|
||||||
del data['user']
|
del data['user']
|
||||||
if 'groups' in data:
|
if 'groups' in data:
|
||||||
if not request.user.get_profile().capability('canManageUsers'):
|
if not request.user.profile.capability('canManageUsers'):
|
||||||
# Users wihtout canManageUsers can only add/remove groups they are not in
|
# Users wihtout canManageUsers can only add/remove groups they are not in
|
||||||
groups = set([g.name for g in item.groups.all()])
|
groups = set([g.name for g in item.groups.all()])
|
||||||
user_groups = set([g.name for g in request.user.groups.all()])
|
user_groups = set([g.name for g in request.user.groups.all()])
|
||||||
|
@ -588,7 +588,7 @@ def remove(request, data):
|
||||||
response = json_response({})
|
response = json_response({})
|
||||||
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
||||||
user = request.user
|
user = request.user
|
||||||
if user.get_profile().capability('canRemoveItems') == True or \
|
if user.profile.capability('canRemoveItems') == True or \
|
||||||
user.is_staff or \
|
user.is_staff or \
|
||||||
item.user == user or \
|
item.user == user or \
|
||||||
item.groups.filter(id__in=user.groups.all()).count() > 0:
|
item.groups.filter(id__in=user.groups.all()).count() > 0:
|
||||||
|
@ -1016,7 +1016,7 @@ def atom_xml(request):
|
||||||
|
|
||||||
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
||||||
if not request.user.is_anonymous():
|
if not request.user.is_anonymous():
|
||||||
level = request.user.get_profile().level
|
level = request.user.profile.level
|
||||||
for item in models.Item.objects.filter(level__lte=level, rendered=True).order_by('-created')[:7]:
|
for item in models.Item.objects.filter(level__lte=level, rendered=True).order_by('-created')[:7]:
|
||||||
if add_updated:
|
if add_updated:
|
||||||
updated = ET.SubElement(feed, "updated")
|
updated = ET.SubElement(feed, "updated")
|
||||||
|
@ -1185,7 +1185,7 @@ def sitemap_xml(request):
|
||||||
def item_json(request, id):
|
def item_json(request, id):
|
||||||
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
||||||
if not request.user.is_anonymous():
|
if not request.user.is_anonymous():
|
||||||
level = request.user.get_profile().level
|
level = request.user.profile.level
|
||||||
qs = models.Item.objects.filter(public_id=id, level__lte=level)
|
qs = models.Item.objects.filter(public_id=id, level__lte=level)
|
||||||
if qs.count() == 0:
|
if qs.count() == 0:
|
||||||
response = json_response(status=404, text='not found')
|
response = json_response(status=404, text='not found')
|
||||||
|
@ -1198,7 +1198,7 @@ def item_json(request, id):
|
||||||
def item_xml(request, id):
|
def item_xml(request, id):
|
||||||
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
||||||
if not request.user.is_anonymous():
|
if not request.user.is_anonymous():
|
||||||
level = request.user.get_profile().level
|
level = request.user.profile.level
|
||||||
qs = models.Item.objects.filter(public_id=id, level__lte=level)
|
qs = models.Item.objects.filter(public_id=id, level__lte=level)
|
||||||
if qs.count() == 0:
|
if qs.count() == 0:
|
||||||
response = json_response(status=404, text='not found')
|
response = json_response(status=404, text='not found')
|
||||||
|
@ -1237,7 +1237,7 @@ def item(request, id):
|
||||||
template = 'index.html'
|
template = 'index.html'
|
||||||
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
level = settings.CONFIG['capabilities']['canSeeItem']['guest']
|
||||||
if not request.user.is_anonymous():
|
if not request.user.is_anonymous():
|
||||||
level = request.user.get_profile().level
|
level = request.user.profile.level
|
||||||
qs = models.Item.objects.filter(public_id=id, level__lte=level)
|
qs = models.Item.objects.filter(public_id=id, level__lte=level)
|
||||||
if qs.count() == 0:
|
if qs.count() == 0:
|
||||||
context = RequestContext(request, {
|
context = RequestContext(request, {
|
||||||
|
|
|
@ -112,7 +112,7 @@ class List(models.Model):
|
||||||
return False
|
return False
|
||||||
if self.user == user or \
|
if self.user == user or \
|
||||||
user.is_staff or \
|
user.is_staff or \
|
||||||
user.get_profile().capability('canEditFeaturedLists') == True:
|
user.profile.capability('canEditFeaturedLists') == True:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ class List(models.Model):
|
||||||
pos.section = 'personal'
|
pos.section = 'personal'
|
||||||
pos.save()
|
pos.save()
|
||||||
elif value == 'featured':
|
elif value == 'featured':
|
||||||
if user.get_profile().capability('canEditFeaturedLists'):
|
if user.profile.capability('canEditFeaturedLists'):
|
||||||
pos, created = Position.objects.get_or_create(list=self, user=user,
|
pos, created = Position.objects.get_or_create(list=self, user=user,
|
||||||
section='featured')
|
section='featured')
|
||||||
if created:
|
if created:
|
||||||
|
@ -301,7 +301,7 @@ class Position(models.Model):
|
||||||
|
|
||||||
list = models.ForeignKey(List, related_name='position')
|
list = models.ForeignKey(List, related_name='position')
|
||||||
user = models.ForeignKey(User)
|
user = models.ForeignKey(User)
|
||||||
section = models.CharField(max_length='255')
|
section = models.CharField(max_length=255)
|
||||||
position = models.IntegerField(default=0)
|
position = models.IntegerField(default=0)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
|
|
|
@ -394,7 +394,7 @@ def sortLists(request, data):
|
||||||
}.get(section,section)
|
}.get(section,section)
|
||||||
#ids = list(set(data['ids']))
|
#ids = list(set(data['ids']))
|
||||||
ids = data['ids']
|
ids = data['ids']
|
||||||
if section == 'featured' and not request.user.get_profile().capability('canEditFeaturedLists'):
|
if section == 'featured' and not request.user.profile.capability('canEditFeaturedLists'):
|
||||||
response = json_response(status=403, text='not allowed')
|
response = json_response(status=403, text='not allowed')
|
||||||
else:
|
else:
|
||||||
user = request.user
|
user = request.user
|
||||||
|
|
|
@ -114,7 +114,7 @@ class NewsManager(Manager):
|
||||||
if conditions:
|
if conditions:
|
||||||
qs = qs.filter(conditions)
|
qs = qs.filter(conditions)
|
||||||
if user:
|
if user:
|
||||||
if not user.get_profile().get_level() in ('staff', 'admin'):
|
if not user.profile.get_level() in ('staff', 'admin'):
|
||||||
qs = qs.filter(Q(public=True)|Q(user=user))
|
qs = qs.filter(Q(public=True)|Q(user=user))
|
||||||
else:
|
else:
|
||||||
qs = qs.filter(public=True)
|
qs = qs.filter(public=True)
|
||||||
|
|
|
@ -19,7 +19,7 @@ class News(models.Model):
|
||||||
text = models.TextField()
|
text = models.TextField()
|
||||||
|
|
||||||
def editable(self, user):
|
def editable(self, user):
|
||||||
return user.is_authenticated() and user.get_profile().capability("canEditSitePages")
|
return user.is_authenticated() and user.profile.capability("canEditSitePages")
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
super(News, self).save(*args, **kwargs)
|
super(News, self).save(*args, **kwargs)
|
||||||
|
|
|
@ -68,7 +68,7 @@ class Place(models.Model):
|
||||||
if user and not user.is_anonymous() \
|
if user and not user.is_anonymous() \
|
||||||
and (not self.user or \
|
and (not self.user or \
|
||||||
self.user == user or \
|
self.user == user or \
|
||||||
user.get_profile().capability('canEditPlaces')):
|
user.profile.capability('canEditPlaces')):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
@ -108,9 +108,7 @@ INSTALLED_APPS = (
|
||||||
# 'django.contrib.admindocs',
|
# 'django.contrib.admindocs',
|
||||||
'django.contrib.humanize',
|
'django.contrib.humanize',
|
||||||
|
|
||||||
'django_extensions',
|
#'django_extensions',
|
||||||
'devserver',
|
|
||||||
'south',
|
|
||||||
'djcelery',
|
'djcelery',
|
||||||
'app',
|
'app',
|
||||||
'log',
|
'log',
|
||||||
|
@ -246,3 +244,6 @@ except NameError:
|
||||||
Exception('Please create a %s file with random characters to generate your secret key!' % SECRET_FILE)
|
Exception('Please create a %s file with random characters to generate your secret key!' % SECRET_FILE)
|
||||||
|
|
||||||
INSTALLED_APPS = tuple(list(INSTALLED_APPS) + LOCAL_APPS)
|
INSTALLED_APPS = tuple(list(INSTALLED_APPS) + LOCAL_APPS)
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = ['*']
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ class Text(models.Model):
|
||||||
return False
|
return False
|
||||||
if self.user == user or \
|
if self.user == user or \
|
||||||
user.is_staff or \
|
user.is_staff or \
|
||||||
user.get_profile().capability('canEditFeaturedTexts') == True:
|
user.profile.capability('canEditFeaturedTexts') == True:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ class Text(models.Model):
|
||||||
pos.section = 'personal'
|
pos.section = 'personal'
|
||||||
pos.save()
|
pos.save()
|
||||||
elif value == 'featured':
|
elif value == 'featured':
|
||||||
if user.get_profile().capability('canEditFeaturedTexts'):
|
if user.profile.capability('canEditFeaturedTexts'):
|
||||||
pos, created = Position.objects.get_or_create(text=self, user=user,
|
pos, created = Position.objects.get_or_create(text=self, user=user,
|
||||||
section='featured')
|
section='featured')
|
||||||
if created:
|
if created:
|
||||||
|
@ -305,7 +305,7 @@ class Position(models.Model):
|
||||||
|
|
||||||
text = models.ForeignKey(Text, related_name='position')
|
text = models.ForeignKey(Text, related_name='position')
|
||||||
user = models.ForeignKey(User, related_name='text_position')
|
user = models.ForeignKey(User, related_name='text_position')
|
||||||
section = models.CharField(max_length='255')
|
section = models.CharField(max_length=255)
|
||||||
position = models.IntegerField(default=0)
|
position = models.IntegerField(default=0)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
|
|
|
@ -99,7 +99,7 @@ def getText(request, data):
|
||||||
'name': '',
|
'name': '',
|
||||||
'text': '',
|
'text': '',
|
||||||
'type': 'html',
|
'type': 'html',
|
||||||
'editable': not request.user.is_anonymous() and request.user.get_profile().capability('canEditFeaturedTexts')
|
'editable': not request.user.is_anonymous() and request.user.profile.capability('canEditFeaturedTexts')
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
text = qs[0]
|
text = qs[0]
|
||||||
|
@ -140,7 +140,7 @@ def editText(request, data):
|
||||||
else:
|
else:
|
||||||
qs = models.Text.objects.filter(name='')
|
qs = models.Text.objects.filter(name='')
|
||||||
if qs.count() == 0:
|
if qs.count() == 0:
|
||||||
if request.user.get_profile().capability('canEditFeaturedTexts'):
|
if request.user.profile.capability('canEditFeaturedTexts'):
|
||||||
text = models.Text(name='', user=request.user)
|
text = models.Text(name='', user=request.user)
|
||||||
text.save()
|
text.save()
|
||||||
else:
|
else:
|
||||||
|
@ -331,7 +331,7 @@ def sortTexts(request, data):
|
||||||
}.get(section,section)
|
}.get(section,section)
|
||||||
#ids = list(set(data['ids']))
|
#ids = list(set(data['ids']))
|
||||||
ids = data['ids']
|
ids = data['ids']
|
||||||
if section == 'featured' and not request.user.get_profile().capability('canEditFeaturedTexts'):
|
if section == 'featured' and not request.user.profile.capability('canEditFeaturedTexts'):
|
||||||
response = json_response(status=403, text='not allowed')
|
response = json_response(status=403, text='not allowed')
|
||||||
else:
|
else:
|
||||||
user = request.user
|
user = request.user
|
||||||
|
|
|
@ -16,7 +16,8 @@ class Channel(models.Model):
|
||||||
modified = models.DateTimeField(auto_now=True)
|
modified = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
run = models.IntegerField(default=0)
|
run = models.IntegerField(default=0)
|
||||||
list = models.ForeignKey('itemlist.List', related_name='channel', null=True, unique=True, blank=True)
|
list = models.OneToOneField('itemlist.List', related_name='channel', null=True, blank=True)
|
||||||
|
#list = models.ForeignKey('itemlist.List', related_name='channel', null=True, unique=True, blank=True)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return u"%s %s" % (self.list or 'All', self.run)
|
return u"%s %s" % (self.list or 'All', self.run)
|
||||||
|
|
|
@ -10,7 +10,7 @@ def capability_required_json(capability):
|
||||||
def capability_required(function=None):
|
def capability_required(function=None):
|
||||||
def _wrapped_view(request, *args, **kwargs):
|
def _wrapped_view(request, *args, **kwargs):
|
||||||
if request.user.is_authenticated() and \
|
if request.user.is_authenticated() and \
|
||||||
request.user.get_profile().capability(capability):
|
request.user.profile.capability(capability):
|
||||||
return function(request, *args, **kwargs)
|
return function(request, *args, **kwargs)
|
||||||
return render_to_json_response(json_response(status=403, text='permission denied'))
|
return render_to_json_response(json_response(status=403, text='permission denied'))
|
||||||
return wraps(function)(_wrapped_view)
|
return wraps(function)(_wrapped_view)
|
||||||
|
|
|
@ -23,7 +23,7 @@ import tasks
|
||||||
|
|
||||||
class SessionData(models.Model):
|
class SessionData(models.Model):
|
||||||
session_key = models.CharField(max_length=40, primary_key=True)
|
session_key = models.CharField(max_length=40, primary_key=True)
|
||||||
user = models.ForeignKey(User, unique=True, null=True, blank=True, related_name='data')
|
user = models.OneToOneField(User, null=True, blank=True, related_name='data')
|
||||||
firstseen = models.DateTimeField(auto_now_add=True, db_index=True)
|
firstseen = models.DateTimeField(auto_now_add=True, db_index=True)
|
||||||
lastseen = models.DateTimeField(default=datetime.now, db_index=True)
|
lastseen = models.DateTimeField(default=datetime.now, db_index=True)
|
||||||
username = models.CharField(max_length=255, null=True, db_index=True)
|
username = models.CharField(max_length=255, null=True, db_index=True)
|
||||||
|
@ -87,7 +87,7 @@ class SessionData(models.Model):
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if self.user:
|
if self.user:
|
||||||
self.username = self.user.username
|
self.username = self.user.username
|
||||||
self.level = self.user.get_profile().level
|
self.level = self.user.profile.level
|
||||||
self.firstseen = self.user.date_joined
|
self.firstseen = self.user.date_joined
|
||||||
if self.user.groups.exists():
|
if self.user.groups.exists():
|
||||||
self.groupssort = ''.join([g.name for g in self.user.groups.all()])
|
self.groupssort = ''.join([g.name for g in self.user.groups.all()])
|
||||||
|
@ -160,7 +160,7 @@ class SessionData(models.Model):
|
||||||
'windowsize': self.windowsize,
|
'windowsize': self.windowsize,
|
||||||
}
|
}
|
||||||
if self.user:
|
if self.user:
|
||||||
p = self.user.get_profile()
|
p = self.user.profile
|
||||||
j['disabled'] = not self.user.is_active
|
j['disabled'] = not self.user.is_active
|
||||||
j['email'] = self.user.email
|
j['email'] = self.user.email
|
||||||
j['groups'] = [g.name for g in self.user.groups.all()]
|
j['groups'] = [g.name for g in self.user.groups.all()]
|
||||||
|
@ -176,7 +176,7 @@ class SessionData(models.Model):
|
||||||
|
|
||||||
class UserProfile(models.Model):
|
class UserProfile(models.Model):
|
||||||
reset_code = models.CharField(max_length=255, blank=True, null=True, unique=True)
|
reset_code = models.CharField(max_length=255, blank=True, null=True, unique=True)
|
||||||
user = models.ForeignKey(User, unique=True, related_name='profile')
|
user = models.OneToOneField(User, related_name='profile')
|
||||||
|
|
||||||
level = models.IntegerField(default=1)
|
level = models.IntegerField(default=1)
|
||||||
files_updated = models.DateTimeField(default=datetime.now)
|
files_updated = models.DateTimeField(default=datetime.now)
|
||||||
|
@ -343,7 +343,7 @@ def init_user(user, request=None):
|
||||||
result = settings.CONFIG['user'].copy()
|
result = settings.CONFIG['user'].copy()
|
||||||
result['ui'] = get_ui(json.loads(request.session.get('ui', '{}')))
|
result['ui'] = get_ui(json.loads(request.session.get('ui', '{}')))
|
||||||
else:
|
else:
|
||||||
profile = user.get_profile()
|
profile = user.profile
|
||||||
result = {}
|
result = {}
|
||||||
for key in ('username', ):
|
for key in ('username', ):
|
||||||
result[key] = getattr(user, key)
|
result[key] = getattr(user, key)
|
||||||
|
@ -357,7 +357,7 @@ def init_user(user, request=None):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def user_json(user, keys=None):
|
def user_json(user, keys=None):
|
||||||
p = user.get_profile()
|
p = user.profile
|
||||||
j = {
|
j = {
|
||||||
'disabled': not user.is_active,
|
'disabled': not user.is_active,
|
||||||
'email': user.email,
|
'email': user.email,
|
||||||
|
@ -381,7 +381,7 @@ def has_capability(user, capability):
|
||||||
if user.is_anonymous():
|
if user.is_anonymous():
|
||||||
level = 'guest'
|
level = 'guest'
|
||||||
else:
|
else:
|
||||||
level = user.get_profile().get_level()
|
level = user.profile.get_level()
|
||||||
return level in settings.CONFIG['capabilities'][capability] \
|
return level in settings.CONFIG['capabilities'][capability] \
|
||||||
and settings.CONFIG['capabilities'][capability][level]
|
and settings.CONFIG['capabilities'][capability][level]
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ def signout(request, data):
|
||||||
response = json_response(text='ok')
|
response = json_response(text='ok')
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
uid = request.user.id
|
uid = request.user.id
|
||||||
profile = request.user.get_profile()
|
profile = request.user.profile
|
||||||
if profile.ui.get('page') == 'signout':
|
if profile.ui.get('page') == 'signout':
|
||||||
profile.ui['page'] = ''
|
profile.ui['page'] = ''
|
||||||
profile.save()
|
profile.save()
|
||||||
|
@ -201,7 +201,7 @@ def signup(request, data):
|
||||||
user = authenticate(username=data['username'],
|
user = authenticate(username=data['username'],
|
||||||
password=data['password'])
|
password=data['password'])
|
||||||
if ui:
|
if ui:
|
||||||
profile = user.get_profile()
|
profile = user.profile
|
||||||
profile.ui = ui
|
profile.ui = ui
|
||||||
profile.save()
|
profile.save()
|
||||||
|
|
||||||
|
@ -245,7 +245,7 @@ def resetPassword(request, data):
|
||||||
user = qs[0].user
|
user = qs[0].user
|
||||||
user.set_password(data['password'])
|
user.set_password(data['password'])
|
||||||
user.save()
|
user.save()
|
||||||
user_profile = user.get_profile()
|
user_profile = user.profile
|
||||||
user_profile.reset_code = None
|
user_profile.reset_code = None
|
||||||
user_profile.save()
|
user_profile.save()
|
||||||
user = authenticate(username=user.username, password=data['password'])
|
user = authenticate(username=user.username, password=data['password'])
|
||||||
|
@ -301,7 +301,7 @@ def requestToken(request, data):
|
||||||
ox.fromAZ('AAAAAAAAAAAAAAAAA')))
|
ox.fromAZ('AAAAAAAAAAAAAAAAA')))
|
||||||
if models.UserProfile.objects.filter(reset_code=code).count() == 0:
|
if models.UserProfile.objects.filter(reset_code=code).count() == 0:
|
||||||
break
|
break
|
||||||
user_profile = user.get_profile()
|
user_profile = user.profile
|
||||||
user_profile.reset_code = code
|
user_profile.reset_code = code
|
||||||
user_profile.save()
|
user_profile.save()
|
||||||
|
|
||||||
|
@ -349,7 +349,7 @@ def editUser(request, data):
|
||||||
response = json_response()
|
response = json_response()
|
||||||
user = get_object_or_404_json(User, pk=ox.fromAZ(data['id']))
|
user = get_object_or_404_json(User, pk=ox.fromAZ(data['id']))
|
||||||
|
|
||||||
profile = user.get_profile()
|
profile = user.profile
|
||||||
if 'disabled' in data:
|
if 'disabled' in data:
|
||||||
user.is_active = not data['disabled']
|
user.is_active = not data['disabled']
|
||||||
if 'email' in data:
|
if 'email' in data:
|
||||||
|
@ -567,7 +567,7 @@ def mail(request, data):
|
||||||
see: contact
|
see: contact
|
||||||
'''
|
'''
|
||||||
response = json_response()
|
response = json_response()
|
||||||
p = request.user.get_profile()
|
p = request.user.profile
|
||||||
if p.capability('canSendMail'):
|
if p.capability('canSendMail'):
|
||||||
email_from = '"%s" <%s>' % (settings.SITENAME, settings.CONFIG['site']['email']['system'])
|
email_from = '"%s" <%s>' % (settings.SITENAME, settings.CONFIG['site']['email']['system'])
|
||||||
headers = {
|
headers = {
|
||||||
|
@ -707,14 +707,14 @@ def editPreferences(request, data):
|
||||||
change = True
|
change = True
|
||||||
request.user.email = ox.escape_html(data['email'])
|
request.user.email = ox.escape_html(data['email'])
|
||||||
if 'newsletter' in data:
|
if 'newsletter' in data:
|
||||||
profile = request.user.get_profile()
|
profile = request.user.profile
|
||||||
profile.newsletter = data['newsletter']
|
profile.newsletter = data['newsletter']
|
||||||
profile.save()
|
profile.save()
|
||||||
if 'password' in data:
|
if 'password' in data:
|
||||||
change = True
|
change = True
|
||||||
request.user.set_password(data['password'])
|
request.user.set_password(data['password'])
|
||||||
if 'script' in data:
|
if 'script' in data:
|
||||||
profile = request.user.get_profile()
|
profile = request.user.profile
|
||||||
profile.preferences['script'] = data['script']
|
profile.preferences['script'] = data['script']
|
||||||
profile.save()
|
profile.save()
|
||||||
if change:
|
if change:
|
||||||
|
@ -727,7 +727,7 @@ actions.register(editPreferences, cache=False)
|
||||||
|
|
||||||
def reset_ui(request):
|
def reset_ui(request):
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
profile = request.user.get_profile()
|
profile = request.user.profile
|
||||||
profile.ui = {}
|
profile.ui = {}
|
||||||
profile.save()
|
profile.save()
|
||||||
else:
|
else:
|
||||||
|
@ -744,7 +744,7 @@ def resetUI(request, data):
|
||||||
'''
|
'''
|
||||||
response = json_response()
|
response = json_response()
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
profile = request.user.get_profile()
|
profile = request.user.profile
|
||||||
profile.ui = {}
|
profile.ui = {}
|
||||||
profile.save()
|
profile.save()
|
||||||
else:
|
else:
|
||||||
|
@ -765,7 +765,7 @@ def setUI(request, data):
|
||||||
see: resetUI
|
see: resetUI
|
||||||
'''
|
'''
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
profile = request.user.get_profile()
|
profile = request.user.profile
|
||||||
ui = profile.ui
|
ui = profile.ui
|
||||||
else:
|
else:
|
||||||
ui = json.loads(request.session.get('ui', '{}'))
|
ui = json.loads(request.session.get('ui', '{}'))
|
||||||
|
|
Loading…
Reference in a new issue