$PRJNAME/web/prjname/views/mgmt
에
admin.py
를 생성한다.
# -*- encoding: utf-8 -*-
# prjname/views/mgmt/admin.py
from django.contrib import messages
from django.shortcuts import render, redirect
from ...models.admin import *
from ...forms.mgmt.admin import *
from .helper import login_required
# 관리자 목록
@login_required
def index(request):
admins = AdminModel.objects.all()
return render(request, 'mgmt/admin/index.html', {'menu': 'admin', 'admins': admins})
# 관리자 추가 폼
@login_required
def insert_form(request):
form = AdminInsertForm()
return render(request, 'mgmt/admin/insert_form.html', {'form': form})
# 관리자 추가
@login_required
def insert(request):
form = AdminInsertForm(request.POST)
if form.is_valid():
if form.cleaned_data['passwd1'] != form.cleaned_data['passwd2']:
messages.add_message(request, messages.INFO, '비밀번호가 다릅니다. 관리자 비밀번호를 다시 입력해주세요.')
return redirect('mgmt_admin_index')
admin, dummy = AdminModel.objects.get_or_create(
userid=form.cleaned_data['userid'],
nick=form.cleaned_data['nick'],
)
admin.enc_mobile = form.cleaned_data['mobile']
admin.hashed_password = form.cleaned_data['passwd1']
admin.save()
messages.add_message(request, messages.INFO, '관리자가 정상적으로 추가되었습니다.')
else:
# messages.add_message(request, messages.INFO, '입력 값을 다시 한번 확인하시어 관리자를 추가해주세요.')
messages.add_message(request, messages.INFO, form.errors)
return redirect('mgmt_admin_index')
# 관리자 수정 폼
@login_required
def update_form(request, id):
admin = AdminModel.objects.get(id=id)
data = { 'id': admin.id,
'userid': admin.userid,
'nick': admin.nick,
'mobile': admin.enc_mobile }
form = AdminUpdateForm(data)
return render(request, 'mgmt/admin/update_form.html', {'form': form, 'admin_id': id})
# 관리자 수정
@login_required
def update(request):
form = AdminUpdateForm(request.POST)
if form.is_valid():
admin_id = form.cleaned_data['id']
admin_nick = form.cleaned_data['nick']
admin_mobile = form.cleaned_data['mobile']
admin = AdminModel.objects.get(id=admin_id)
admin.nick = admin_nick
admin.enc_mobile = admin_mobile
admin.save()
messages.add_message(request, messages.INFO, '관리자가 정상적으로 수정되었습니다.')
else:
# messages.add_message(request, messages.INFO, '관리자 입력폼의 값을 제대로 입력해주세요.')
messages.add_message(request, messages.INFO, form.errors)
return redirect('mgmt_admin_index')
# 비밀번호 수정 폼
@login_required
def password_form(request, id):
admin = AdminModel.objects.get(id=id)
data = {'id': admin.id,
'userid': admin.userid,
'nick': admin.nick }
form = AdminPasswordForm(data)
return render(request, 'mgmt/admin/password_form.html', {'form': form})
# 비밀번호 수정 폼
@login_required
def change_password(request):
form = AdminPasswordForm(request.POST)
if form.is_valid():
id = form.cleaned_data['id']
passwd1 = form.cleaned_data['passwd1']
passwd2 = form.cleaned_data['passwd2']
if passwd1 != passwd2 :
messages.add_message(request, messages.INFO, '새로운 비밀번호와 다시 입력한 비밀번호가 일치하지 않습니다.')
return redirect('mgmt_admin_index')
admin = AdminModel.objects.get(id=id)
admin.hashed_password = passwd1
admin.save()
messages.add_message(request, messages.INFO, '관리자 비밀번호가 정상적으로 수정되었습니다.')
else:
messages.add_message(request, messages.INFO, '입력 데이터가 올바르지 않습니다. 다시 변경해주세요.')
return redirect('mgmt_admin_index')
# 관리자 삭제
@login_required
def delete(request, id):
AdminModel.objects.filter(id=id).delete()
messages.add_message(request, messages.INFO, '해당 관리자를 정상적으로 삭제하였습니다.')
return redirect('mgmt_admin_index')