Revision 244c552b snf-app/synnefo/admin/views.py

b/snf-app/synnefo/admin/views.py
77 77
@requires_admin
78 78
def index(request):
79 79
    stats = {}
80
    stats['users'] = models.SynnefoUser.objects.count()
81 80
    stats['images'] = models.Image.objects.exclude(state='DELETED').count()
82 81
    stats['flavors'] = models.Flavor.objects.count()
83 82
    stats['vms'] = models.VirtualMachine.objects.filter(deleted=False).count()
......
187 186
        image = models.Image()
188 187
        image.state = 'ACTIVE'
189 188
        image.name = request.POST.get('name')
190
        owner_id = request.POST.get('owner') or None
191
        image.owner = owner_id and models.SynnefoUser.objects.get(id=owner_id)
189
        image.userid = request.POST.get('owner')
192 190
        image.backend_id = request.POST.get('backend')
193 191
        image.format = request.POST.get('format')
194 192
        image.public = True if request.POST.get('public') else False
......
221 219
    image = models.Image.objects.get(id=image_id)
222 220
    image.name = request.POST.get('name')
223 221
    image.state = request.POST.get('state')
224
    owner_id = request.POST.get('owner') or None
225
    image.owner = owner_id and models.SynnefoUser.objects.get(id=owner_id)
226
    vm_id = request.POST.get('sourcevm') or None
222
    image.userid = request.POST.get('owner')
223
    vm_id = request.POST.get('sourcevm')
227 224
    image.sourcevm = vm_id and models.VirtualMachine.objects.get(id=vm_id)
228 225
    image.backend_id = request.POST.get('backend')
229 226
    image.format = request.POST.get('format')
......
258 255
                    all_states=sorted(all_states),
259 256
                    filters=filters)
260 257
    return HttpResponse(html)
261

  
262

  
263
@requires_admin
264
def users_list(request):
265
    all_states = set(x[0] for x in models.SynnefoUser.ACCOUNT_STATE)
266
    default = all_states - set(['DELETED'])
267
    filters = get_filters(request, 'users_filters', all_states, default)
268
    
269
    users = models.SynnefoUser.objects.all()
270
    for state in all_states - filters:
271
        users = users.exclude(state=state)
272
    
273
    html = render('users_list.html', 'users',
274
                    users=users.order_by('id'),
275
                    all_states=sorted(all_states),
276
                    filters=filters)
277
    return HttpResponse(html)
278

  
279

  
280
@requires_admin
281
def users_info(request, user_id):
282
    user = models.SynnefoUser.objects.get(id=user_id)
283
    types = [x[0] for x in models.SynnefoUser.ACCOUNT_TYPE]
284
    if not user.type:
285
        types = [''] + types
286
    states = [x[0] for x in models.SynnefoUser.ACCOUNT_STATE]
287
    html = render('users_info.html', 'users',
288
                    user=user, types=types, states=states)
289
    return HttpResponse(html)
290

  
291

  
292
@requires_admin
293
def users_modify(request, user_id):
294
    user = models.SynnefoUser.objects.get(id=user_id)
295
    user.name = request.POST.get('name')
296
    user.realname = request.POST.get('realname')
297
    user.uniq = request.POST.get('uniq')
298
    user.type = request.POST.get('type')
299
    user.state = request.POST.get('state')
300
    user.save()
301
    log.info('User %s modified User %s', request.user.name, user.name)
302
    return redirect(users_info, user.id)
303

  
304

  
305
@requires_admin
306
def users_delete(request, user_id):
307
    user = models.SynnefoUser.objects.get(id=user_id)
308
    user.delete()
309
    log.info('User %s deleted User %s', request.user.name, user.name)
310
    return redirect(users_list)

Also available in: Unified diff