示例#1
0
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}))
示例#2
0
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