示例#1
0
    def post(self, request):
        serializer = ApplyResetPasswordSerializer(data=request.data)
        if serializer.is_valid():
            data = serializer.data
            captcha = Captcha(request)
            if not captcha.check(data["captcha"]):
                return error_response(u"验证码错误")
            try:
                user = User.objects.get(email=data["email"])
            except User.DoesNotExist:
                return error_response(u"用户不存在")
            rand_str_ = rand_str()
            user.reset_password_token = rand_str_
            user.reset_password_token_create_time = timezone.now()
            user.save()
            email_template = codecs.open(
                settings.TEMPLATES[0]["DIRS"][0] +
                "/account/reset_password_email.html", "r", "utf-8").read()

            email_template = email_template.replace("{{ username }}", user.username). \
                replace("{{ website_name }}", settings.WEBSITE_INFO["website_name"]). \
                replace("{{ link }}", settings.WEBSITE_INFO["url"] + "/apply_reset_password/" +
                        user.reset_password_token)

            send_email(settings.WEBSITE_INFO["website_name"], user.email,
                       user.username,
                       settings.WEBSITE_INFO["website_name"] + u" 登录信息找回邮件",
                       email_template)
            return success_response(u"邮件发送成功,请前往您的邮箱查收")
        else:
            return serializer_invalid_response(serializer)
示例#2
0
文件: oj.py 项目: oneofsunshine/OUCOJ
    def post(self, request):
        """
        User register api
        """
        if not SysOptions.allow_register:
            return self.error("Register function has been disabled by admin")

        data = request.data
        data["username"] = data["username"].lower()
        data["email"] = data["email"].lower()
        if not data["sno"].isdigit():
            return self.error("SNo be digital")
        captcha = Captcha(request)
        if not captcha.check(data["captcha"]):
            return self.error("Invalid captcha")
        if User.objects.filter(username=data["username"]).exists():
            return self.error("Username already exists")
        if User.objects.filter(email=data["email"]).exists():
            return self.error("Email already exists")
        if User.objects.filter(sno=data["sno"]).exists():
            return self.error("Student ID already exists")
        user = User.objects.create(username=data["username"],
                                   email=data["email"],
                                   sno=data["sno"])
        user.set_password(data["password"])
        user.save()
        UserProfile.objects.create(user=user)
        return self.success("Succeeded")
示例#3
0
    def post(self, request):
        """
        提交请求重置密码
        ---
        request_serializer: ApplyResetPasswordSerializer
        """
        serializer = ApplyResetPasswordSerializer(data=request.data)
        if serializer.is_valid():
            data = serializer.data
            captcha = Captcha(request)
            if not captcha.check(data["captcha"]):
                return error_response(u"验证码错误")
            try:
                user = User.objects.get(username=data["username"], email=data["email"])
            except User.DoesNotExist:
                return error_response(u"用户不存在")
            user.reset_password_token = rand_str()
            user.save()
            email_template = codecs.open(settings.TEMPLATES[0]["DIRS"][0] + "utils/reset_password_email.html", "r", "utf-8").read()

            email_template = email_template.replace("{{ username }}", user.username).replace("{{ link }}", request.scheme + "://" + request.META['HTTP_HOST'] + "/reset_password/?token=" + user.reset_password_token)

            send_email(user.email, user.username, u"qduoj 密码找回邮件", email_template)
            return success_response(u"邮件发生成功")
        else:
            return serializer_invalid_response(serializer)
示例#4
0
    def post(self, request):
        """
        用户登录json api接口
        ---
        request_serializer: UserLoginSerializer
        """
        serializer = UserLoginSerializer(data=request.data)
        if serializer.is_valid():
            data = serializer.data

            if "captcha" not in data:
                return error_response(u"请填写验证码!")
            captcha = Captcha(request)
            if not captcha.check(data["captcha"]):
                return error_response(u"验证码错误")

            user = auth.authenticate(username=data["username"], password=data["password"])
            # 用户名或密码错误的话 返回None
            if user:
                auth.login(request, user)
                return success_response(u"登录成功")
            else:
                return error_response(u"用户名或密码错误")
        else:
            return serializer_invalid_response(serializer)
示例#5
0
    def post(self, request):
        """
        提交请求重置密码
        ---
        request_serializer: ApplyResetPasswordSerializer
        """
        serializer = ApplyResetPasswordSerializer(data=request.data)
        if serializer.is_valid():
            data = serializer.data
            captcha = Captcha(request)
            if not captcha.check(data["captcha"]):
                return error_response(u"验证码错误")
            try:
                user = User.objects.get(username=data["username"], email=data["email"])
            except User.DoesNotExist:
                return error_response(u"用户不存在")
            if user.reset_password_token_create_time and (now() - user.reset_password_token_create_time).total_seconds() < 20 * 60:
                return error_response(u"20分钟内只能找回一次密码")
            user.reset_password_token = rand_str()
            user.reset_password_token_create_time = now()
            user.save()
            email_template = codecs.open(settings.TEMPLATES[0]["DIRS"][0] + "utils/reset_password_email.html", "r", "utf-8").read()

            email_template = email_template.replace("{{ username }}", user.username).\
                replace("{{ website_name }}", settings.WEBSITE_INFO["website_name"]).\
                replace("{{ link }}", request.scheme + "://" + request.META['HTTP_HOST'] + "/reset_password/?token=" + user.reset_password_token)

            send_email(settings.WEBSITE_INFO["website_name"],
                       user.email,
                       user.username,
                       settings.WEBSITE_INFO["website_name"] + u" 密码找回邮件",
                       email_template)
            return success_response(u"邮件发送成功")
        else:
            return serializer_invalid_response(serializer)
示例#6
0
文件: oj.py 项目: joeyac/OnlineJudge
 def post(self, request):
     if request.user.is_authenticated():
         return self.error("You have already logged in, are you kidding me? ")
     data = request.data
     captcha = Captcha(request)
     if not captcha.check(data["captcha"]):
         return self.error("Invalid captcha")
     try:
         user = User.objects.get(email__iexact=data["email"])
     except User.DoesNotExist:
         return self.error("User does not exist")
     if user.reset_password_token_expire_time and 0 < int(
             (user.reset_password_token_expire_time - now()).total_seconds()) < 20 * 60:
         return self.error("You can only reset password once per 20 minutes")
     user.reset_password_token = rand_str()
     user.reset_password_token_expire_time = now() + timedelta(minutes=20)
     user.save()
     render_data = {
         "username": user.username,
         "website_name": SysOptions.website_name,
         "link": f"{SysOptions.website_base_url}/reset-password/{user.reset_password_token}"
     }
     email_html = render_to_string("reset_password_email.html", render_data)
     send_email_async.delay(from_name=SysOptions.website_name_shortcut,
                            to_email=user.email,
                            to_name=user.username,
                            subject=f"Reset your password",
                            content=email_html)
     return self.success("Succeeded")
示例#7
0
 def post(self, request):
     """
     用户注册json api接口
     ---
     request_serializer: UserRegisterSerializer
     """
     serializer = UserRegisterSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         try:
             User.objects.get(username=data["username"])
             return error_response(u"用户名已存在")
         except User.DoesNotExist:
             pass
         try:
             User.objects.get(email=data["email"])
             return error_response(u"该邮箱已被注册,请换其他邮箱进行注册")
         # 兼容部分老数据,有邮箱重复的
         except MultipleObjectsReturned:
             return error_response(u"该邮箱已被注册,请换其他邮箱进行注册")
         except User.DoesNotExist:
             user = User.objects.create(username=data["username"],
                                        real_name=data["real_name"],
                                        email=data["email"])
             user.set_password(data["password"])
             user.save()
             UserProfile.objects.create(user=user,
                                        school=data["school"],
                                        student_id=data["student_id"])
             return success_response(u"注册成功!")
     else:
         return serializer_invalid_response(serializer)
示例#8
0
    def post(self, request):

        data = request.data
        # 判断验证码是否正确
        captcha = Captcha(request)
        if not captcha.check(data.get('captcha')):
            return self.error("Invalid captcha")

        # 判断用户名和邮箱是否存在
        # 用户名和邮箱都保存小写
        data['username'] = data['username'].lower()
        data['email'] = request.data['email'].lower()
        if User.objects.filter(username=data.get('username')).exists():
            return self.error(msg="Username already exists")
        if User.objects.filter(username=data.get('email')).exists():
            return self.error(msg="Email already exists")

        # 创建用户

        user = User.objects.create(username=data['username'],
                                   email=data['email'])
        user.set_password(data['password'])
        user.save()

        # UserProfile.objects.create(user=user)

        res = self.success("Succeeded")
        return res
示例#9
0
文件: oj.py 项目: lvku/OnlineJudge
    def post(self, request):
        """
        User register api
        """
        if not SysOptions.allow_register:
            return self.error("Register function has been disabled by admin")

        data = request.data
        data["username"] = data["username"].lower()
        data["email"] = data["email"].lower()
        is_vip = False
        if 'vipcode' in data and data['vipcode'] == '4088760021':
            is_vip = True
        captcha = Captcha(request)
        if not captcha.check(data["captcha"]):
            return self.error("Invalid captcha")
        if User.objects.filter(username=data["username"]).exists():
            return self.error("Username already exists")
        if User.objects.filter(email=data["email"]).exists():
            return self.error("Email already exists")
        user = User.objects.create(username=data["username"],
                                   email=data["email"],
                                   is_vip=is_vip)
        user.set_password(data["password"])
        user.save()
        UserProfile.objects.create(user=user)
        return self.success("Succeeded")
示例#10
0
    def get(self, request):
        phone = request.GET.get("phone")
        send_captcha = request.GET.get("captcha")
        pageSate = int(request.GET.get("pageState"))

        captcha = Captcha(request)

        if not captcha.check(send_captcha):
            message = "验证码错误"
            print message
            return shortcuts.error_response(message)
        else:
            # 号码存在
            if CheckPhone(phone):
                # 页面为找回
                if pageSate == 1:
                    return SendMessageBefore(phone, request)
                # 页面为注册
                else:
                    message = "手机号已注册"
                    print message
                    return shortcuts.error_response(message)
            # 号码不存在
            else:
                # 页面为注册
                if pageSate == 0:
                    return SendMessageBefore(phone, request)
                # 页面为找回0
                else:
                    message = "用户不存在"
                    return shortcuts.error_response(message)
示例#11
0
文件: oj.py 项目: Gumbeat/Olymp
 def post(self, request):
     if request.user.is_authenticated():
         return self.error("Вы уже вошли в систему, у вас всё норм? ")
     data = request.data
     captcha = Captcha(request)
     if not captcha.check(data["captcha"]):
         return self.error("Неверная капча")
     try:
         user = User.objects.get(email__iexact=data["email"])
     except User.DoesNotExist:
         return self.error("Пользователь не существует")
     if user.reset_password_token_expire_time and 0 < int(
         (user.reset_password_token_expire_time -
          now()).total_seconds()) < 20 * 60:
         return self.error(
             "Вы можете сбросить пароль не больше раза за 20 минут")
     user.reset_password_token = rand_str()
     user.reset_password_token_expire_time = now() + timedelta(minutes=20)
     user.save()
     render_data = {
         "username":
         user.username,
         "website_name":
         SysOptions.website_name,
         "link":
         f"{SysOptions.website_base_url}/reset-password/{user.reset_password_token}"
     }
     email_html = render_to_string("reset_password_email.html", render_data)
     send_email_async.delay(from_name=SysOptions.website_name_shortcut,
                            to_email=user.email,
                            to_name=user.username,
                            subject=f"Reset your password",
                            content=email_html)
     return self.success("Успешно")
示例#12
0
 def post(self, request):
     """
     用户注册json api接口
     ---
     request_serializer: UserRegisterSerializer
     """
     serializer = UserRegisterSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         try:
             User.objects.get(username=data["username"])
             return error_response(u"用户名已存在")
         except User.DoesNotExist:
             pass
         try:
             User.objects.get(email=data["email"])
             return error_response(u"该邮箱已被注册,请换其他邮箱进行注册")
         except User.DoesNotExist:
             user = User.objects.create(username=data["username"], real_name=data["real_name"],
                                        email=data["email"])
             user.set_password(data["password"])
             user.save()
             return success_response(u"注册成功!")
     else:
         return serializer_invalid_response(serializer)
示例#13
0
    def post(self, request):
        """
        提交请求重置密码
        ---
        request_serializer: ApplyResetPasswordSerializer
        """
        serializer = ApplyResetPasswordSerializer(data=request.data)
        if serializer.is_valid():
            data = serializer.data
            captcha = Captcha(request)
            if not captcha.check(data["captcha"]):
                return error_response(u"验证码错误")
            try:
                user = User.objects.get(email=data["email"])
            except User.DoesNotExist:
                return error_response(u"用户不存在")
            if user.reset_password_token_create_time and (now() - user.reset_password_token_create_time).total_seconds() < 20 * 60:
                return error_response(u"20分钟内只能找回一次密码")
            user.reset_password_token = rand_str()
            user.reset_password_token_create_time = now()
            user.save()
            email_template = codecs.open(settings.TEMPLATES[0]["DIRS"][0] + "utils/reset_password_email.html", "r", "utf-8").read()

            email_template = email_template.replace("{{ username }}", user.username).\
                replace("{{ website_name }}", settings.WEBSITE_INFO["website_name"]).\
                replace("{{ link }}", request.scheme + "://" + request.META['HTTP_HOST'] + "/reset_password/t/" + user.reset_password_token)

            send_email(settings.WEBSITE_INFO["website_name"],
                       user.email,
                       user.username,
                       settings.WEBSITE_INFO["website_name"] + u" 登录信息找回邮件",
                       email_template)
            return success_response(u"邮件发送成功,请前往您的邮箱查收")
        else:
            return serializer_invalid_response(serializer)
示例#14
0
 def post(self, request):
     if request.user.is_authenticated:
         return self.error(
             "You have already logged in, are you kidding me? ")
     data = request.data
     captcha = Captcha(request)
     if not captcha.check(data["captcha"]):
         return self.error("Invalid captcha")
     try:
         user = User.objects.get(email__iexact=data["email"])
     except User.DoesNotExist:
         return self.error("User does not exist")
     if user.reset_password_token_expire_time and 0 < int(
         (user.reset_password_token_expire_time -
          now()).total_seconds()) < 20 * 60:
         return self.error(
             "You can only reset password once per 20 minutes")
     user.reset_password_token = rand_str()
     user.reset_password_token_expire_time = now() + timedelta(minutes=20)
     user.save()
     render_data = {
         "username":
         user.username,
         "website_name":
         SysOptions.website_name,
         "link":
         f"{SysOptions.website_base_url}/reset-password/{user.reset_password_token}"
     }
     email_html = render_to_string("reset_password_email.html", render_data)
     send_email_async.send(from_name=SysOptions.website_name_shortcut,
                           to_email=user.email,
                           to_name=user.username,
                           subject=f"Reset your password",
                           content=email_html)
     return self.success("Succeeded")
示例#15
0
    def post(self, request):
        """
        User register api
        """
        if not SysOptions.allow_register:
            return self.error("Register function has been disabled by admin")

        data = request.data
        data["username"] = data["username"].lower()
        data["bj_username"] = data["bj_username"].strip()
        data["hr_username"] = data["hr_username"].strip()
        data["email"] = data["email"].lower()
        captcha = Captcha(request)
        if not captcha.check(data["captcha"]):
            return self.error("Invalid captcha")

        # 백준 체크
        response = requests.get('https://www.acmicpc.net/user/' +
                                data["bj_username"])
        if response.status_code != 200:
            return self.error("Baekjoon username not found")

        if User.objects.filter(username=data["username"]).exists():
            return self.error("Username already exists")
        if User.objects.filter(email=data["email"]).exists():
            return self.error("Email already exists")

        user = User.objects.create(username=data["username"],
                                   email=data["email"])
        user.set_password(data["password"])
        user.save()
        UserProfile.objects.create(user=user,
                                   bj_username=data["bj_username"],
                                   hr_username=data["hr_username"])
        return self.success("Succeeded")
示例#16
0
 def post(self, request):
     serializer = UserRegisterSerializer(data=request.POST)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         try:
             User.objects.get(username=data["username"])
             return error_response(u"用户名已存在")
         except User.DoesNotExist:
             pass
         try:
             User.objects.get(email=data["email"])
             return error_response(u"该邮箱已被注册,请换其他邮箱进行注册")
         except User.DoesNotExist:
             user = User.objects.create(username=data["username"],
                                        email=data["email"])
             user.set_password(data["password"])
             user.save()
             cart = Cart.objects.create()  #初始化购物车
             UserProfile.objects.create(user=user, cart=cart)
             return success_response(u"注册成功!")
     else:
         return serializer_invalid_response(serializer)
示例#17
0
文件: oj.py 项目: Gumbeat/Olymp
 def post(self, request):
     data = request.data
     captcha = Captcha(request)
     if not captcha.check(data["captcha"]):
         return self.error("Неверная капча")
     try:
         user = User.objects.get(reset_password_token=data["token"])
     except User.DoesNotExist:
         return self.error("Токен не существует")
     if user.reset_password_token_expire_time < now():
         return self.error("Токен истёк")
     user.reset_password_token = None
     user.two_factor_auth = False
     user.set_password(data["password"])
     user.save()
     return self.success("Успешно")
示例#18
0
 def post(self, request):
     data = request.data
     captcha = Captcha(request)
     if not captcha.check(data["captcha"]):
         return self.error("Invalid captcha")
     try:
         user = User.objects.get(reset_password_token=data["token"])
     except User.DoesNotExist:
         return self.error("Token does not exist")
     if user.reset_password_token_expire_time < now():
         return self.error("Token has expired")
     user.reset_password_token = None
     user.two_factor_auth = False
     user.set_password(data["password"])
     user.save()
     return self.success("Succeeded")
示例#19
0
文件: oj.py 项目: joeyac/OnlineJudge
 def post(self, request):
     data = request.data
     captcha = Captcha(request)
     if not captcha.check(data["captcha"]):
         return self.error("Invalid captcha")
     try:
         user = User.objects.get(reset_password_token=data["token"])
     except User.DoesNotExist:
         return self.error("Token does not exist")
     if user.reset_password_token_expire_time < now():
         return self.error("Token has expired")
     user.reset_password_token = None
     user.two_factor_auth = False
     user.set_password(data["password"])
     user.save()
     return self.success("Succeeded")
示例#20
0
    def post(self, request):
        """
        User register api
        """
        if not SysOptions.allow_register:
            return self.error("Register function has been disabled by admin")

        data = request.data
        data["username"] = data["username"].lower()
        data["email"] = data["email"].lower()
        captcha = Captcha(request)
        if not captcha.check(data["captcha"]):
            return self.error("Invalid captcha")
        if User.objects.filter(username=data["username"]).exists():
            return self.error("Username already exists")
        if not data["email"].endswith("@shanghaitech.edu.cn"):
            return self.error("Email not in shanghaitech")
        if User.objects.filter(email=data["email"]).exists():
            return self.error("Email already exists")
        user = User.objects.create(username=data["username"],
                                   email=data["email"])
        data["password"] = rand_str()
        user.set_password(data["password"])
        user.save()
        UserProfile.objects.create(user=user)

        user.reset_password_token = rand_str()
        user.reset_password_token_expire_time = now() + timedelta(minutes=20)
        user.save()
        render_data = {
            "username":
            user.username,
            "website_name":
            SysOptions.website_name,
            "link":
            f"{SysOptions.website_base_url}/reset-password/{user.reset_password_token}"
        }
        email_html = render_to_string("reset_password_email.html", render_data)
        send_email_async.send(from_name=SysOptions.website_name_shortcut,
                              to_email=user.email,
                              to_name=user.username,
                              subject=f"Reset your password",
                              content=email_html)

        return self.success("Succeeded, 但是请找回密码:)")
示例#21
0
 def post(self, request):
     serializer = ResetPasswordSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         try:
             user = User.objects.get(reset_password_token=data["token"])
         except User.DoesNotExist:
             return error_response(u"token 不存在")
         if (now() - user.reset_password_token_create_time).total_seconds() > 30 * 60:
             return error_response(u"token 已经过期,请在30分钟内重置密码")
         user.reset_password_token = None
         user.set_password(data["password"])
         user.save()
         return success_response(u"密码重置成功")
     else:
         return serializer_invalid_response(serializer)
示例#22
0
 def post(self, request):
     serializer = ResetPasswordSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         try:
             user = User.objects.get(reset_password_token=data["token"])
         except User.DoesNotExist:
             return error_response(u"token 不存在")
         if (now() - user.reset_password_token_create_time).total_seconds() > 30 * 60:
             return error_response(u"token 已经过期,请在30分钟内重置密码")
         user.reset_password_token = None
         user.set_password(data["password"])
         user.save()
         return success_response(u"密码重置成功")
     else:
         return serializer_invalid_response(serializer)
示例#23
0
 def post(self, request):
     serializer = ApplyResetPasswordSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         try:
             user = User.objects.get(username=data["username"], email=data["email"])
         except User.DoesNotExist:
             return error_response(u"用户不存在")
         user.reset_password_token = rand_str()
         user.save()
         # todo
         email_template = open(settings.TEMPLATES[0]["DIRS"][0] + "utils/reset_password_email.html", "r").read()
         email_template.replace("{{ username }}", user.username).replace("{{ link }}", "/reset_password/?token=" + user.reset_password_token)
         return success_response(u"邮件发生成功")
     else:
         return serializer_invalid_response(serializer)
示例#24
0
 def post(self, request):
     """
     用户登录json api接口
     ---
     request_serializer: UserLoginSerializer
     """
     serializer = UserLoginSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         user = auth.authenticate(username=data["username"], password=data["password"])
         # 用户名或密码错误的话 返回None
         if user:
             auth.login(request, user)
             return success_response(u"登录成功")
         else:
             return error_response(u"用户名或密码错误")
     else:
         return serializer_invalid_response(serializer)
示例#25
0
 def post(self, request):
     """
     用户修改密码json api接口
     ---
     request_serializer: UserChangePasswordSerializer
     """
     serializer = UserChangePasswordSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         username = request.user.username
         user = auth.authenticate(username=username, password=data["old_password"])
         if user:
             user.set_password(data["new_password"])
             user.save()
             return success_response(u"用户密码修改成功!")
         else:
             return error_response(u"密码不正确,请重新修改!")
     else:
         return serializer_invalid_response(serializer)
示例#26
0
 def post(self, request):
     """
     用户修改密码json api接口
     ---
     request_serializer: UserChangePasswordSerializer
     """
     serializer = UserChangePasswordSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.data
         captcha = Captcha(request)
         if not captcha.check(data["captcha"]):
             return error_response(u"验证码错误")
         username = request.user.username
         user = auth.authenticate(username=username, password=data["old_password"])
         if user:
             user.set_password(data["new_password"])
             user.save()
             return success_response(u"用户密码修改成功!")
         else:
             return error_response(u"密码不正确,请重新修改!")
     else:
         return serializer_invalid_response(serializer)
示例#27
0
文件: oj.py 项目: joeyac/OnlineJudge
    def post(self, request):
        """
        User register api
        """
        if not SysOptions.allow_register:
            return self.error("Register function has been disabled by admin")

        data = request.data
        data["username"] = data["username"].lower()
        data["email"] = data["email"].lower()
        captcha = Captcha(request)
        if not captcha.check(data["captcha"]):
            return self.error("Invalid captcha")
        if User.objects.filter(username=data["username"]).exists():
            return self.error("Username already exists")
        if User.objects.filter(email=data["email"]).exists():
            return self.error("Email already exists")
        user = User.objects.create(username=data["username"], email=data["email"])
        user.set_password(data["password"])
        user.save()
        UserProfile.objects.create(user=user)
        return self.success("Succeeded")
示例#28
0
文件: oj.py 项目: Gumbeat/Olymp
    def post(self, request):
        """
        User register api
        """
        if not SysOptions.allow_register:
            return self.error(
                "Функция переадрисации отключена администратором")

        data = request.data
        data["username"] = data["username"].lower()
        data["email"] = data["email"].lower()
        captcha = Captcha(request)
        if not captcha.check(data["captcha"]):
            return self.error("Неверная капча")
        if User.objects.filter(username=data["username"]).exists():
            return self.error("Логин уже существует")
        if User.objects.filter(email=data["email"]).exists():
            return self.error("Email уже существует")
        user = User.objects.create(username=data["username"],
                                   email=data["email"])
        user.set_password(data["password"])
        user.save()
        UserProfile.objects.create(user=user)
        return self.success("Успешно")
示例#29
0
文件: views.py 项目: spxcds/ElecMall
 def post(self, request):
     form = UserRegisterForm(request.POST)
     if form.is_valid():
         data = form.cleaned_data
         captcha = Captcha(request)
         if not captcha.check(data['captcha']):
             return info_page(request, '验证码错误')
         try:
             Customer.objects.get(Username=data['Username'])
             return info_page(request, '用户已经存在')
         except Customer.DoesNotExist:
             pass
         try:
             Customer.objects.get(Email=data['Email'])
             return info_page(request, '该邮件已经注册')
         except Customer.DoesNotExist:
             pass
         user = Customer.objects.create(Username=data['Username'], Email=data['Email'], Balance=0,
                                        Telephone=data['Telephone'], Nickname=data['Nickname'], Password=data['Password'])
         request.user = user
         request.session['user_id'] = user.id
         return info_page(request, "注册成功")
     else:
         return info_page(request, "数据格式不合法")