Query fixes

This commit is contained in:
nikolark committed 2012-02-02 15:01:35 +01:00
1 parent f7de6a81fe
commit bb218c1766
4 files changed
+19 -38

No files matched your search

+2 -2
View File
@@ -6,11 +6,11 @@ class TempUserLog(models.Model):
description = models.TextField(max_length=255)
expires = models.DateTimeField()
count = models.IntegerField()
deleted = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
class UserPass(models.Model):
username = models.CharField(max_length=50)
username = models.CharField(max_length=50, unique=True)
password = models.CharField(max_length=50)
radcheck_id = models.PositiveIntegerField(unique=True, null=False)
log = models.ForeignKey(TempUserLog)
+15 -17
View File
@@ -44,20 +44,28 @@ def new(request):
if form.is_valid():
duration = datetime.timedelta(days=form.cleaned_data['duration'])
expires = datetime.datetime.now() + duration
log = TempUserLog(
log = TempUserLog.objects.create(
description=form.cleaned_data['description'],
expires=expires,
issued_by=request.user,
count=form.cleaned_data['count'])
log.save()
for i in range(form.cleaned_data['count']):
up = UserPass.objects.create(
username=utils.generate_username(),
password=utils.generate_password(),
username = utils.generate_username()
raw_password = utils.generate_password()
# Store in Radius
rc = Radcheck.objects.create(
username=username,
attribute='NT-Password',
op=':=',
value=utils.ntpass_hash(raw_password))
# store raw_password
UserPass.objects.create(
username=username,
password=raw_password,
radcheck_id=rc.id,
log=log)
messages.success(request, log.id) # Store the id in session, since we are redirecting
messages.success(request, save_to_radius(log)) # Store in Radius
messages.success(request, 'Successfully created user(s) in radius database.')
return HttpResponseRedirect( reverse('main.views.new_created') )
else:
form = TempUserForm(request.POST)
@@ -93,13 +101,3 @@ def download_pdf(request, tempuserlog_id=-1):
'log': log,
}
)
def save_to_radius(log):
for up in log.userpass_set.all():
Radcheck.objects.create(
username=up.username,
attribute='NT-Password',
op=':=',
value=utils.ntpass_hash(up.password))
return 'Successfully created user(s) in radius database.'
-12
View File
@@ -103,15 +103,3 @@ class Radusergroup(models.Model):
class Meta:
db_table = u'radusergroup'
class TempUser(models.Model):
connection_name = 'radius'
# TODO : date? who? why?
radcheckId = models.ForeignKey(Radcheck)
created = models.DateTimeField(auto_now_add=True, null=True)
deleteOn = models.DateTimeField( null=True)
class Meta:
db_table = u'radusergroup'
+2 -7
View File
@@ -16,10 +16,5 @@ setup_environ(settings)
from main.models import *
from radius.models import *
logs = TempUserLog.objects.filter(expires__lt=datetime.now(), deleted=False)
for log in logs:
for up in log.userpass_set.all():
Radcheck.objects.filter(username=up.username).delete()
log.deleted = True
log.save()
up_ids = UserPass.objects.filter(log__expires__lte=datetime.now()).values_list('radcheck_id', flat=True)
Radcheck.objects.filter(id__in=list(up_ids)).delete()