Revision 54ae949d snf-app/synnefo/admin/views.py

b/snf-app/synnefo/admin/views.py
39 39
from django.template.loader import render_to_string
40 40

  
41 41
from synnefo.db import models
42
from synnefo.invitations.invitations import add_invitation, send_invitation
43 42
from synnefo.logic import backend, users
44 43
from synnefo.util.log import getLogger
45 44

  
......
83 82
    stats['flavors'] = models.Flavor.objects.count()
84 83
    stats['vms'] = models.VirtualMachine.objects.filter(deleted=False).count()
85 84
    stats['networks'] = models.Network.objects.exclude(state='DELETED').count()
86
    stats['invitations'] = models.Invitations.objects.count()
87 85

  
88 86
    stats['ganeti_instances'] = len(backend.get_ganeti_instances())
89 87
    stats['ganeti_nodes'] = len(backend.get_ganeti_nodes())
......
280 278

  
281 279

  
282 280
@requires_admin
283
def users_invite(request):
284
    if request.method == 'GET':
285
        html = render('users_invite.html', 'users')
286
        return HttpResponse(html)
287
    elif request.method == 'POST':
288
        inviter_id = request.POST.get('inviter')
289
        realname = request.POST.get('realname')
290
        uniq = request.POST.get('uniq')
291
        inviter = models.SynnefoUser.objects.get(id=inviter_id)
292
        inv = add_invitation(inviter, realname, uniq)
293
        send_invitation(inv)
294
        log.info('User %s sent Invitation to %s as %s', request.user.name,
295
                    uniq, inviter.name)
296
        return redirect(users_list)
297

  
298

  
299
@requires_admin
300 281
def users_info(request, user_id):
301 282
    user = models.SynnefoUser.objects.get(id=user_id)
302 283
    types = [x[0] for x in models.SynnefoUser.ACCOUNT_TYPE]
......
314 295
    user.name = request.POST.get('name')
315 296
    user.realname = request.POST.get('realname')
316 297
    user.uniq = request.POST.get('uniq')
317
    user.credit = int(request.POST.get('credit'))
318 298
    user.type = request.POST.get('type')
319 299
    user.state = request.POST.get('state')
320
    invitations = request.POST.get('invitations')
321
    user.max_invitations = int(invitations) if invitations else None
322 300
    user.save()
323 301
    log.info('User %s modified User %s', request.user.name, user.name)
324 302
    return redirect(users_info, user.id)
......
327 305
@requires_admin
328 306
def users_delete(request, user_id):
329 307
    user = models.SynnefoUser.objects.get(id=user_id)
330
    users.delete_user(user)
308
    user.delete()
331 309
    log.info('User %s deleted User %s', request.user.name, user.name)
332 310
    return redirect(users_list)
333

  
334

  
335
@requires_admin
336
def invitations_list(request):
337
    invitations = models.Invitations.objects.order_by('id')
338
    html = render('invitations_list.html', 'invitations',
339
                     invitations=invitations)
340
    return HttpResponse(html)
341

  
342

  
343
@requires_admin
344
def invitations_resend(request, invitation_id):
345
    invitation = models.Invitations.objects.get(id=invitation_id)
346
    send_invitation(invitation)
347
    log.info('User %s resent Invitations from %s to %s', request.user.name,
348
                invitation.source.name, invitation.target.name)
349
    return redirect(invitations_list)

Also available in: Unified diff