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