Ejemplo n.º 1
0
def register(request):

    form = RegisterForm(request.POST or None)

    if form.is_valid():
        user = form.save()
        user.backend = settings.AUTHENTICATION_BACKENDS[0]
        login(request,user)
        return redirect(reverse('accounts_profile'))

    send_data = {'form':form}
    return render_to_response('accounts/register.html',send_data,context_instance=RequestContext(request))
Ejemplo n.º 2
0
def register(request):
    if request.method == 'GET':
        form = RegisterForm()
        return render(request,'register.html',{'form':form})
    form = RegisterForm(request.POST)
    zen = request.POST.get('zen')
    if not zen:
        messages.error(request,'请仔细阅读《Pythonic社区指导原则》')
        return render(request,'register.html',{"form":form,"zen":zen})
    if form.is_valid():
        data = form.clean()
    else:
        return render(request,'register.html',{"form":form,"zen":zen})
    try:
        user = User.objects.get(username=data['email'])
    except User.DoesNotExist:
        pass
    else:
        if user.is_active:
            messages.error(request,'该邮箱已被注册,请更换邮箱')
            return render(request,'register.html',{"form":form,"zen":zen})
        else:
            return HttpResponseRedirect('/accounts/active/%s/not_active' % user.get_profile().slug)
    try:
        user = UserProfile.objects.get(name=data['name'])
    except UserProfile.DoesNotExist:
        pass
    else:
        messages.error(request,'此名号已被占用')
        return render(request,'register.html',{"form":form,"zen":zen})
    try:
        user = UserProfile.objects.get(slug=data['slug'])
    except UserProfile.DoesNotExist:
        pass
    else:
        messages.error(request,'此个性网址已存在')
        return render(request,'register.html',{"form":form,"zen":zen})
    # 创建新用户      
    new_user = User.objects.create_user(username=data['email'],email=data['email'],password=data['password'])
    new_user.is_active = False
     
    avatar_name = hashlib.md5(data['email'].lower()).hexdigest()
    gravatar_url = ''.join(['http://www.gravatar.com/avatar/',avatar_name, '?s=48&d=404'])
    res_name = '%s-normal.%s' % (avatar_name, AVATAR_SAVE_FORMAT)
    res_path = os.path.join(AVATAR_DIR, res_name)
    req = urllib2.Request(gravatar_url)
    try:
        urllib2.urlopen(req)      
    except urllib2.HTTPError, e:
        new_profile = UserProfile(user=new_user,name=data['name'],slug=data['slug'].lower(),province=data['province'],city=data['city'])
        pass
Ejemplo n.º 3
0
def register(request):
    form = RegisterForm(request.POST or None)
    print "Some info"
    if form.is_valid():
        user = form.save()

        user.backend = settings.AUTHENTICATION_BACKENDS[0]
        login(request, user)

        return redirect(reverse('accounts_profile'))

    ctx = {'form': form}
    return render_to_response('accounts/register.html',
                              ctx,
                              context_instance=RequestContext(request))
Ejemplo n.º 4
0
def register(request):
    if request.method == 'GET':
        form = RegisterForm()
        return render(request,'register.html',{'form':form})
    form = RegisterForm(request.POST)
    if form.is_valid():
        data = form.clean()
        new_user = User.objects.create_user(username=data['username'],password=data['password'],name=data['name'])
        if EMAIL_ACTIVE:
            new_user.is_active = False
        else:
            new_user.is_active = True
        new_user.save()
        return HttpResponseRedirect('/accounts/active/%s/not_active' % new_user.name)           
    else:
        return render(request,'register.html',{"form":form})
Ejemplo n.º 5
0
def register(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            dic = {
                   'username':form.cleaned_data.get('username'),
                   'first_name':form.cleaned_data.get('first_name'),
                   'last_name':form.cleaned_data.get('last_name'),
                   'email':form.cleaned_data.get('email'),
                   'is_active':True
                   }
            
            user = User(**dic)
            user.set_password(form.cleaned_data.get('password'))
            user.save()
            return HttpResponseRedirect(reverse('login'))
    else:
        form = RegisterForm()
    rc = RequestContext(request,{'form':form,'title':'Registration Form'})
    
    return render_to_response('accounts/registration.html',rc)
Ejemplo n.º 6
0
def register(request):
    if request.method == 'GET':
        form = RegisterForm()
        return render(request, 'register.html', {'form': form})
    form = RegisterForm(request.POST)
    if form.is_valid():
        data = form.clean()
        new_user = User.objects.create_user(username=data['username'],
                                            password=data['password'],
                                            name=data['name'])
        if EMAIL_ACTIVE:
            new_user.is_active = False
        else:
            new_user.is_active = True
        new_user.save()
        return HttpResponseRedirect('/accounts/active/%s/not_active' %
                                    new_user.name)
    else:
        return render(request, 'register.html', {"form": form})
Ejemplo n.º 7
0
def register(request):
    logger = logging.getLogger("apps.accounts.views.register")
    logger.debug("entry.")

    form = None
    if request.method == 'POST':
        logger.debug("POST")
        form = RegisterForm(request.POST)
        if form.is_valid():
            # ----------------------------------------------------------------
            #   Form is valid so parse values from it.
            # ----------------------------------------------------------------
            logger.debug("POST is valid")
            username = form.cleaned_data['username'].lower()
            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            password = form.cleaned_data['password']
            confirm_password = form.cleaned_data['confirm_password']
            email = form.cleaned_data['email']
            logger.debug("username: %s, email: %s" % (username, email))
            # ----------------------------------------------------------------

            # ----------------------------------------------------------------
            #   Password must be correctly entered twice.
            # ----------------------------------------------------------------
            if password != confirm_password:
                logger.debug("password incorrectly entered twice.")
                form.errors['password'] = ["You did not enter in your password twice exactly the same. Please enter and confirm your password again."]
                form.errors['confirm_password'] = ["You did not enter in your password twice exactly the same. Please enter and confirm your password again."]
            elif not is_username_available(username):
                logger.debug("username is not available.")
                form.errors['username'] = ["The username \"%s\" is not available. Please choose another username." % username]
            else:
                # ------------------------------------------------------------
                #   Create and login as new user.
                #
                #   Note the gotcha that after creating a user we must
                #   authenticate it before calling login(). See the
                #   'User authentication in Django' section of the manual ->
                #   login() for more details.
                # ------------------------------------------------------------
                user = User.objects.create_user(username = username, email = email, password = password)
                user.first_name = first_name
                user.last_name = last_name
                user.save()
                user = authenticate(username=username, password=password)
                login(request, user) # sets up session for us
                return HttpResponseRedirect(reverse('apps.profiles.views.read_profile_no_username'))
                # ------------------------------------------------------------
    data = {}
    # -------------------------------------------------------------------------
    #   Populate form for Account registration.
    # -------------------------------------------------------------------------
    if form is None:
        logger.debug("no previous form present.")
        form_initial = {"username": "",
                        "first_name": "",
                        "last_name": "",
                        "password": "",
                        "confirm_password": "",
                        "email": ""}
        form = RegisterForm(initial = form_initial)
    data['form'] = form
    # -------------------------------------------------------------------------

    # -------------------------------------------------------------------------
    #   Get and render form errors, if any.
    # -------------------------------------------------------------------------
    if form.errors:
        logger.debug("Form has some errors.")
        data["are_any_errors"] = True
        error_output = []
        for (field_name, errors) in form.errors.items():
            field_object = form.fields[field_name]
            if len(errors) == 1:
                error_output.append(r"- **%s**: %s" % (field_object.label, errors[0]))
            else:
                for error in errors:
                    error_output.append(r"- **%s**: %s" % (field_object.label, error))
        data["all_errors_description"] = markdown2.markdown('\n'.join(error_output),
                                                            extras=["cuddled-lists"])
    else:
        logger.debug("Form does not have any errors.")
        data["are_any_errors"] = False
    # -------------------------------------------------------------------------

    logger.debug("rendering response...")
    return render_to_response('accounts/register.html',
                              data,
                              context_instance = RequestContext(request))
Ejemplo n.º 8
0
def register(request):
    url = request.META.get("HTTP_REFERER")
    form = RegisterForm()
    if request.method == 'POST':
        form = RegisterForm(request.POST)

        if form.is_valid():
            logger.info("用户注册数据收敛成功")
            data = form.data

            # 执行注册逻辑前,有必要检查用户是否存在,防止用户创建异常
            if User.objects.filter(username=data.get("username")).exists():
                messages.warning(request, "用户已存在")
                return HttpResponseRedirect(url)

            # 组织查询或创建
            org, org_created = Channel.objects.get_or_create(
                name=data.get("org"))

            # 云管用户类型设定
            fit_user_type = 2 if org_created else 3

            user = User.objects.create(
                username=data.get("username"),
                password=data.get("password"),
                email=data.get("email"),
                is_staff=1,
                is_active=0,
                # is_superuser=1,
            )
            if user:
                logger.info("ITSM用户创建成功")

            Profile.objects.create(
                user=user,
                fit_user_type=fit_user_type,
                phone=data.get("phone"),
                email=data.get("email"),
                position=data.get("position"),
            )

            # 组织首次创建需要系统管理审核;已存在组织创建用户,需要组织管理员审核
            content = "{}-{}-{}-申请注册云管账户".format(data.get("org"),
                                                 data.get("department"),
                                                 data.get("username"))
            subject = "伟仕云安云平台账号审核提醒"
            mail_to = [data.get("email")]

            if org_created:
                # 生成系统管理员审核消息
                admin = User.objects.get(username="******")
                MessageAlert.objects.create(user=admin,
                                            initiator=data.get("username"),
                                            content=content,
                                            action_type="org_first_register")

                logger.info("{}组织审核消息生成成功".format(content))

                # 邮件提醒message
                message = "组织及账号已创建,等待管理员审核,通过后会邮件通知您,请耐心等待"
            else:
                # 生成组织管理员审核消息MessageAlert
                org_admin_profile = Profile.objects.filter(
                    channel_name=data.get("org"),
                    org_admin=1,
                ).first()
                org_admin = User.objects.filter(
                    username=org_admin_profile.username).first()
                reg_info = MessageAlert.objects.create(
                    user=org_admin,
                    content=content,
                    initiator=data.get("username"),
                    action_type="register_info",
                )
                logger.info("{}用户审核消息已创建".format(content))

                # 邮件提醒message
                message = "账号已创建,组织管理员审核通过后收到邮件反馈即可以正常登录," \
                          "请耐心等待,如有异常请联系组织管理员"

            # 最终发送邮件提醒
            try:
                send_mail(subject, message, settings.EMAIL_HOST_USER, mail_to)
                logger.info("邮件发送成功")
            except Exception as e:
                logger.info("邮件发送失败: ", e)

            return HttpResponse("账号注册成功,请查收邮件通知.")
        else:
            return HttpResponse(form.errors)
    else:
        # 组织列表可选
        values = Channel.objects.values("name")
        org_list = [i["name"] for i in values]

        return render(request, "register.html", locals())