forms work and are saved to ldap correctly, added RFID form
This commit is contained in:
parent
0aade5be94
commit
8fdc6064fa
14 changed files with 317 additions and 240 deletions
|
|
@ -6,8 +6,14 @@ from django.shortcuts import render_to_response
|
|||
from django.template.context import RequestContext
|
||||
from django.contrib.auth import login, logout, authenticate
|
||||
from django.contrib.auth.models import User
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import Group
|
||||
from django.shortcuts import render
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from account.forms import LoginForm
|
||||
from forms import GastroPinForm, WlanPresenceForm, LoginForm, PaswordForm, RFIDForm
|
||||
from cbase_members import MemberValues, retrieve_member
|
||||
|
||||
def auth_login(request):
|
||||
redirect_to = request.GET.get('next', '') or '/'
|
||||
|
|
@ -43,3 +49,83 @@ def auth_logout(request):
|
|||
response = HttpResponseRedirect(redirect_to)
|
||||
response.delete_cookie('sessionkey')
|
||||
return response
|
||||
|
||||
def landingpage(request):
|
||||
is_ceymaster = is_admin = False
|
||||
if 'ceymaster' in [g.name for g in request.user.groups.all()]:
|
||||
is_ceymaster = True
|
||||
if 'ldap_admins' in [g.name for g in request.user.groups.all()]:
|
||||
is_admin = True
|
||||
groups = Group.objects.all()
|
||||
admins = Group.objects.get(name="ldap_admins").user_set.all()
|
||||
if request.user.is_authenticated():
|
||||
# values = get_user_values(request.user.username, request.session['ldap_password'])
|
||||
return render_to_response("dashboard.html", locals())
|
||||
return render_to_response("base.html", locals())
|
||||
|
||||
@login_required(redirect_field_name="/" ,login_url="/account/login/")
|
||||
def groups_list(request, group_name):
|
||||
group = get_object_or_404(Group, name=group_name)
|
||||
groups = Group.objects.all()
|
||||
if 'ceymaster' in [g.name for g in request.user.groups.all()]:
|
||||
is_ceymaster = True
|
||||
if 'ldap_admins' in [g.name for g in request.user.groups.all()]:
|
||||
is_admin = True
|
||||
return render_to_response("group_list.html", locals())
|
||||
|
||||
@login_required
|
||||
def gastropin(request):
|
||||
if request.method == 'POST':
|
||||
form = GastroPinForm(request.POST)
|
||||
if form.is_valid():
|
||||
user = request.user
|
||||
user_profile = user.get_profile()
|
||||
user_profile.gastropin = form.cleaned_data['gastropin']
|
||||
user_profile.save()
|
||||
return render(request, 'gastropin.html',
|
||||
{'message': _('Your Gastro-PIN was changed. Thank you!'),
|
||||
'form:': form})
|
||||
else:
|
||||
return render(request, 'gastropin.html', {'form:': form})
|
||||
|
||||
else:
|
||||
form = GastroPinForm()
|
||||
|
||||
return render(request, 'gastropin.html', {'form': form})
|
||||
|
||||
|
||||
def set_ldap_field(request, form_type, field_names, template_name):
|
||||
member = retrieve_member(request)
|
||||
initial = {}
|
||||
|
||||
if request.method == 'POST':
|
||||
form = form_type(request.POST)
|
||||
if form.is_valid():
|
||||
|
||||
for form_field, ldap_field in field_names:
|
||||
member.set(ldap_field, form.cleaned_data[form_field])
|
||||
initial[form_field] = member.get(ldap_field)
|
||||
member.save()
|
||||
new_form = form_type(initial=initial)
|
||||
return render(request, template_name,
|
||||
{'message': _('Your changes have been saved. Thank you!'),
|
||||
'form': new_form})
|
||||
else:
|
||||
return render(request, template_name, {'form:': form})
|
||||
else:
|
||||
for form_field, ldap_field in field_names:
|
||||
initial[form_field] = member.get(ldap_field)
|
||||
form = form_type(initial=initial)
|
||||
return render(request, template_name, {'form': form})
|
||||
|
||||
|
||||
@login_required
|
||||
def wlan_presence(request):
|
||||
return set_ldap_field(request, WlanPresenceForm,
|
||||
[('presence', 'wlanPresence')], 'wlan_presence.html')
|
||||
|
||||
@login_required
|
||||
def rfid(request):
|
||||
return set_ldap_field(request, RFIDForm, [('rfid', 'rfid')], 'rfid.html')
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue