rework files
This commit is contained in:
parent
a6e120322f
commit
50adcb66fc
9 changed files with 138 additions and 98 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue