Query fixes
This commit is contained in:
1 parent
f7de6a81fe
commit
bb218c1766
4 files changed
+19
-38
No files matched your search
+2
-2
@@ -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
@@ -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.'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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()
|
||||
Reference in new issue
Block a user