rework files

This commit is contained in:
j 2011-08-23 19:39:34 +02:00
commit 50adcb66fc
9 changed files with 138 additions and 98 deletions

View file

@ -81,6 +81,13 @@ class UserProfile(models.Model):
del ui['lists'][i]
return ui
def get_level(self):
if self.user.is_superuser:
return 'admin'
elif self.user.is_staff:
return 'staff'
return 'member'
def user_post_save(sender, instance, **kwargs):
profile, new = UserProfile.objects.get_or_create(user=instance)
@ -92,12 +99,7 @@ def get_user_json(user):
result = {}
for key in ('username', ):
result[key] = getattr(user, key)
if user.is_superuser:
result['level'] = 'admin'
elif user.is_staff:
result['level'] = 'staff'
else:
result['level'] = 'member'
result['level'] = profile.get_level()
result['groups'] = [g.name for g in user.groups.all()]
result['preferences'] = profile.get_preferences()
result['ui'] = profile.get_ui()

View file

@ -309,22 +309,34 @@ def findUser(request):
param data {
key: "username",
value: "foo", operator: "="
keys: []
}
return {
'status': {'code': int, 'text': string}
'data': {
users = ['user1', 'user2']
users = [{username: 'user1', level: ...}, {username: 'user2', ..}]
}
}
'''
#FIXME: support other operators and keys
data = json.loads(request.POST['data'])
response = json_response(status=200, text='ok')
keys = data.get('keys')
if not keys:
keys = ['username', 'level']
def user_json(user, keys):
return {
'usernname': user.username,
'level': user.get_profile().get_level()
}
if data['key'] == 'email':
response['data']['users'] = [u.username for u in User.objects.filter(email__iexact=data['value'])]
response['data']['users'] = [user_json(u, keys)
for u in User.objects.filter(email__iexact=data['value'])]
else:
response['data']['users'] = [u.username for u in User.objects.filter(username__iexact=data['value'])]
response['data']['users'] = [user_json(u, keys)
for u in User.objects.filter(username__iexact=data['value'])]
return render_to_json_response(response)
actions.register(findUser)