def userLogin(request, *args, **kwargs): redirectURL = None context = {} if request.POST.get("user.login") : username = request.POST.get('username') password = request.POST.get("password") redirectURL = request.POST.get("redirectURL", "cellar") if username and password : user = authenticate(username=username, password=password) if user is not None and user.is_active : login(request, user) # django 에서 직접 만든 ID 의 경우 UserInfo 가 누락되어있으므로 생성해준다. if not UserInfo.objects.filter(username=username).exists() : if user.is_superuser : usertype = UserInfo.SUPER else : usertype = UserInfo.NORMAL userinfo = UserInfo(username=username, usertype=usertype) userinfo.save() if request.POST.get("auto_login") : request.session.set_expiry(86400 * 365 * 10) return redirect(reverse(redirectURL)) else : context['message'] = '아이디 또는 암호가 잘못 되었습니다.' else : context['message'] = '아이디와 암호를 입력하여 주십시오.' if username : context['username'] = username else : info(kwargs) redirectURL = kwargs.get("redirect") if redirectURL : context['redirectURL'] = redirectURL return HttpResponse(render(request, "user_login.html", {'userLogin' : context}))
def userCreate(params, isAdmin = False) : response = { "code" : 0, } is_group = params.get('is_group') username = params.get('username') password = params.get("password") email = params.get("email") first_name = params.get("first_name") memo = params.get("memo") # 최고 관리자에 의해 등록되는 ID 는 E-MAIL 은 필요 없음 if not email and isAdmin : email = "" if is_group and not isAdmin : response["code"] = -2 response["message"] = "그룹 사용자는 관리자만이 추가할 수 있습니다." elif not re.match("[a-zA-Z0-9_]{6,}|@[a-zA-Z0-9_]{5,}", username) : response["code"] = -3 response["message"] = "ID 는 6글자 이상의 영숫자와 '_' 로 작성해주세요." elif is_group and not re.match("@.*", username) : response["code"] = -4 response["message"] = "그룹 사용자의 아이디는 @로 시작해야합니다." elif username and password and first_name and ( email or isAdmin ) : try : usertype = UserInfo.NORMAL if is_group : usertype = UserInfo.GROUP user = User.objects.create_user(username, email, password, first_name=first_name) userinfo = UserInfo(username=username, usertype=usertype, memo=memo) userinfo.save() response["code"] = 0 response["message"] = "사용자가 등록되었습니다." response["user"] = user ok("user.create : " + username) except Exception as err : error("user.create : " + err.__str__()) response["code"] = 1 response['message'] = "이미 존재하는 아이디 입니다." else : response["code"] = -1 response["message"] = "필수 항목을 모두 입력하여 주십시오." if isAdmin and is_group : response["is_group"] = is_group if username : response["username"] = username if email : response["email"] = email if first_name : response["first_name"] = first_name if memo : response["memo"] = memo return response