def addnote(request, id): client = get_object_or_404(Client, id=id, using=request.server) if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid(): # penalty type in db is defined as enum. # so we treat a comment like an inactive notice with a special keyword p = Penalty(client=client, type=PENALTY_TYPE_NOTICE, keyword=TYPE_COMMENT, inactive=1, duration=0, reason= form.cleaned_data['reason'], time_edit=datetime.datetime.now(), time_add=datetime.datetime.now(), data= "UP#%s" % request.user.username, admin_id=0) p.save(using=request.server) Auditor.objects.create(user=request.user, server_id=request.server, clientid=client.id, message=_("Add \"%s\"") % str(p)) messages.success(request, _('Comment added successfully.')) return HttpResponse("{\"sucess\": true}", mimetype='application/json') else: form = CommentForm() url = urlreverse("add_note", server=request.server, kwargs={'id':id}) return {'form': form, 'client': client, 'url': url}
def addpenalty(request, id, notice=False): if notice: if not has_any_server_perms(request.user, [perm.ADD_NOTICE, perm.ADD_PENALTY], request.server): raise Http403 else: if not has_server_perm(request.user, perm.ADD_PENALTY, request.server): raise Http403 client = get_object_or_404(Client, id=id, using=request.server) if notice: frmObj = NoticeForm else: frmObj = PenaltyForm if request.method == 'POST': form = frmObj(request.POST) if form.is_valid(): p = Penalty(client=client, reason= form.cleaned_data['reason'], time_edit=datetime.datetime.now(), time_add=datetime.datetime.now(), data= "UP#%s" % request.user.username, admin_id=0) if form.Meta.type == 1: p.duration=0 p.type='Notice' else: if form.cleaned_data['permanent']: p.duration=0 p.type='Ban' else: #dt = time2minutes(str(form.cleaned_data['time'])+form.cleaned_data['time_type']) p.duration = form.cleaned_data['time'] p.type='TempBan' p.save(using=request.server) Auditor.objects.create(user=request.user, server_id=request.server, clientid=client.id, message=_("Add \"%s\"") % str(p)) try: signals.add_penalty.send(sender=p, user=request.user, client=client, penalty=p, server=request.server) except Exception, e: logger.error(str(e)) if notice: messages.success(request, _('Notice added successfully.')) else: messages.success(request, _('Penalty added successfully.')) return HttpResponse("{\"sucess\": true}", mimetype='application/json')