Пример #1
0
def user_login(request):
    if request.method == 'GET':
        return render(request, 'user/login.html')
    else:
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            email = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']

            user = authenticate(username=email, password=password)

            if user:
                if user.is_start:
                    login(request, user)
                    msg = UserMessage()
                    msg.userid_id = user.id
                    msg.msg_status = True
                    msg.message = '欢迎登录尚在线'
                    msg.save()
                    # return redirect(reverse('index'))
                    url = request.COOKIES.get('url', '/')
                    ret = redirect(url)
                    ret.delete_cookie('url')
                    return ret
                else:
                    return HttpResponse('请去激活')
            else:
                return render(request, 'user/login.html', {'msg': '用户名或密码错误'})

        else:
            return render(request, 'user/login.html',
                          {'login_form': login_form})
Пример #2
0
    def post(self, request):
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            email = user_login_form.cleaned_data['email']
            password = user_login_form.cleaned_data['password']

            #这个方法验证的就是username和password,不要换成别的字段
            user = authenticate(username=email, password=password)
            #邮箱和密码验证通过
            if user:
                #已经被激活的用户可以登录
                if user.is_start:
                    login(request, user)
                    #用户每次登录成功,就给他发一个系统消息,欢迎他登录
                    msg = UserMessage()
                    msg.message_man = user.id
                    msg.message_content = '欢迎登录。'
                    msg.save()
                    #取出cookie里存放的url,这是我们来到登录页面前所在的页面,如果能取到值就原路返回,取不到值就去首页
                    url = request.COOKIES.get('url', '/')
                    #获取我们要重定向到的页面的response对象,但是删除其中的cookie(为了避免以后每次都重定向到这个页面,尤其是ajax请求会受到影响)
                    ret = redirect(url)
                    ret.delete_cookie('url')
                    return ret
                else:
                    return HttpResponse('请去您的邮箱激活您的账号,否则无法登录')
            #验证未通过
            else:
                return render(request, 'users/login.html', {'msg': '邮箱或者密码有误'})
        #如果邮箱密码填写格式不对
        else:
            return render(request, 'users/login.html',
                          {'user_login_form': user_login_form})
Пример #3
0
 def post(self, request):
     register_form = RegisterForm(request.POST)
     # 通过form检查字段合法
     if register_form.is_valid():
         user_name = request.POST.get('email', '')
         # 判断邮箱是否已经注册
         if UserProfile.objects.filter(email=user_name):
             return render(request, 'register.html', {
                 'register_form': register_form,
                 'msg': '用户已存在'
             })
         pass_word = request.POST.get('password', '')
         user = UserProfile()
         user.username = user_name
         user.email = user_name
         user.password = make_password(pass_word)
         # 默认激活状态为false
         user.is_active = False
         user.save()
         # 用户信息通知
         usermessage = UserMessage()
         usermessage.user = user.id
         usermessage.message = '欢迎注册'
         usermessage.save()
         send_register_email(user_name, 'register')
         return redirect('/login/')
     else:
         return render(request, 'register.html',
                       {'register_form': register_form})
Пример #4
0
 def post(request):
     user_login_form = UserLoginForm(request.POST)
     if user_login_form.is_valid():
         username = user_login_form.cleaned_data['username']
         password = user_login_form.cleaned_data['password']
         user = authenticate(username=username, password=password)
         if user:
             """"
             仅允许激活用户允许进行登录
             """
             if user.is_active:
                 login(request, user)
                 # 登录消息
                 msg = UserMessage()
                 msg.msg_user = user.id
                 msg.msg_content = '欢迎登录'
                 msg.save()
                 url = request.COOKIES.get('url', '/')
                 ret = redirect(url)
                 ret.delete_cookie('url')
                 return ret
             else:
                 return render(request, 'users/login.html', {
                     'msg': '该账户未激活,请先去邮箱激活。',
                 })
         else:
             return render(request, 'users/login.html', {
                 'msg': '用户名或密码错误',
             })
     else:
         return render(request, 'users/login.html', {
             'user_login_form': user_login_form,
         })
Пример #5
0
 def post(self, request):
     register_form = RegisterForm(request.POST)
     if register_form.is_valid():
         user_name = request.POST.get('email', '')
         if UserProfile.objects.get(email=user_name):
             return render(request, 'register.html', {
                 'register_form': register_form,
                 'msg': "用户已存在"
             })
         pass_word = request.POST.get('password', '')
         user_profile = UserProfile()
         user_profile.username = user_name
         user_profile.email = user_name
         user_profile.is_active = False
         user_profile.password = make_password(pass_word)
         user_profile.save()
         # 注册消息
         message = UserMessage(user=user_profile.id, message="欢迎注册慕课在线网!")
         message.save()
         # 发送注册邮件
         send_register_email(user_name, 'register')
         return render(request, 'login.html')
     else:
         return render(request, 'register.html',
                       {'register_form': register_form})
Пример #6
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('email', '')
            if UserProfile.objects.filter(email=user_name):
                return render(request, 'register.html', {
                    'msg': '用户已经存在!!',
                    'register_form': register_form
                })
            pass_word = request.POST.get('password', '')
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.password = make_password(pass_word)  #加密
            user_profile.is_active = False
            user_profile.save()
            send_register_email(user_name, 'register')

            #写入消息
            user_message = UserMessage()
            user_message.user = user_profile
            user_message.message = '欢迎注册慕课网'
            user_message.save()

            return render(request, 'login.html')
        else:
            return render(request, 'register.html',
                          {'register_form': register_form})
Пример #7
0
    def post(self, request):
        # 验证码会自动进行验证
        # 验证数据格式
        # 保存数据进数据库
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('email', '')
            if UserProfile.objects.filter(email=user_name):
                return render(request, 'users/login.html', {'register_form': register_form, "msg": '用户已存在'})
            pass_word = request.POST.get('password', '')   # 明文

            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.password = make_password(pass_word)
            user_profile.is_active = False
            user_profile.save()

            # 发送消息
            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message = "welcome to China"
            user_message.save()

            send_register_email(user_name, 'register')
            return redirect('/login/')
        else:
            return render(request, 'users/register.html', {'register_form': register_form})
Пример #8
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("email", "")
            if UserProfile.objects.filter(email=user_name):
                return render(request, "register.html", {
                    "register_form": register_form,
                    "msg": "用户已经存在"
                })
            pass_word = request.POST.get("password", "")
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(pass_word)
            user_profile.save()
            user_message = UserMessage()
            user_message.user = user_profile
            user_message.message = "欢迎注册,老妹"
            user_message.save()

            send_register_email(user_name, "register")
            return render(request, "login.html")
        else:
            return render(request, "register.html",
                          {"register_form": register_form})
Пример #9
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            email = request.POST.get('email', '')
            if UserProfile.objects.filter(email=email):
                return render(request, 'register.html', {
                    'register_form': register_form,
                    'msg': u'该邮箱已被注册!'
                })
            password = request.POST.get('password', '')
            user_profile = UserProfile()
            user_profile.username = email
            user_profile.email = email
            user_profile.password = make_password(password)
            user_profile.is_active = False
            user_profile.save()

            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message = u'欢迎注册慕学网!'
            user_message.save()

            send_register_email(email, 'register')
            return render(request, 'login.html')
        return render(request, 'register.html',
                      {'register_form': register_form})
Пример #10
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("email", "")
            if UserProfile.objects.filter(email=user_name):
                return render(request, 'register.html', {
                    "register_form": register_form,
                    "msg": "用户已存在"
                })
            pass_word = request.POST.get("password", "")
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(pass_word)
            user_profile.save()

            # 用户消息
            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message = "欢迎注册慕学在线网"
            user_message.save()

            send_verify_code(user_name, 'register')
            return render(request, 'login.html')
        else:
            return render(request, 'register.html',
                          {"register_form": register_form})
Пример #11
0
    def post(self, request):
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            email = user_login_form.cleaned_data['email']
            password = user_login_form.cleaned_data['password']

            user = authenticate(username=email, password=password)
            if user:
                if user.is_start:
                    login(request, user)
                    # 当登陆成功,就加入一条消息
                    a = UserMessage()
                    a.message_man = user.id
                    a.message_content = '欢迎登录'
                    a.save()
                    url = request.COOKIES.get('url', '/')

                    ret = redirect(url)
                    ret.delete_cookie('url')
                    return ret
                else:
                    return HttpResponse('请去您的邮箱激活,否则无法登陆')
            else:
                return redirect(request, 'login.html', {
                    'msg': '邮箱或密码有误'
                })
        else:
            return render(request, 'users/login.html', {
                'user_login_form': user_login_form
            })
Пример #12
0
    def post(self, request):
        group_name = request.POST.get("group_name", None)
        group_description = request.POST.get("group_description", None)
        organization_id = request.POST.get("organization_id", None)
        message = request.POST.get("message", "")

        # validate
        if not group_name or not group_description or not organization_id:
            return JsonResponse({"status": "fail", "reason": u"错误:输入不正确"})
        # check if the name is already being used
        if Group.objects.filter(organization_id=organization_id,
                                name=group_name).count():
            return JsonResponse({"status": "fail", "reason": u"错误:班级名称已经被使用"})
        # find the organization
        try:
            target_users = find_organization_admin_users(int(organization_id))
            for target in target_users:
                msg = UserMessage()
                msg.to_user = target.id
                msg.from_user = None  # system message
                msg.title = u"用户{0}请求创建班级".format(request.user)
                msg.message_type = UserMessage.MSG_TYPE_CREATE_GROUP
                msg.message = json.dumps({
                    "organization_id": organization_id,
                    "user_id": request.user.id,
                    "group_name": group_name,
                    "group_description": group_description,
                    "extra_message": message
                })
                msg.save()
                return JsonResponse({"status": "success"})
        except:
            return JsonResponse({"status": "fail", "reason": "bad request"})
Пример #13
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid:
            user_name = request.POST.get("username", "")
            if UserProfile.objects.filter(email=user_name):
                return render(request, 'register.html', {
                    "msg": "用户已存在",
                    'register_form': register_form
                })
            user_password = request.POST.get("password", "")
            user_profile = UserProfile()  # 一定要加()!!!!!!这个问题我搞了一天才发现!!!
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(user_password)
            user_profile.save()

            # 发送注册成功消息
            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message_content = '欢迎注册加入神童研究院'
            user_message.save()

            send_register_email(user_name, 'register')
            return render(request, 'login.html')
Пример #14
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('email', "")
            if UserProfile.objects.filter(
                    email=user_name) or UserProfile.objects.filter(
                        username=user_name):
                return render(request, 'register.html', {
                    'register_form': register_form,
                    'msg': '用户已存在'
                })
            pass_word = request.POST.get('password', '')
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(pass_word)
            user_profile.save()

            #写入欢迎注册消息
            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message = '欢迎注册慕学在线网'
            user_message.save()

            send_register_email(user_name, "register")
            return render(request, 'tiao.html')
        else:
            return render(request, 'register.html',
                          {'register_form': register_form})
Пример #15
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('email', '')
            if UserProfile.objects.filter(email=user_name):
                return render(request, 'register.html', {
                    'register_form': register_form,
                    'msg': '用户已经存在'
                })
            pass_word = request.POST.get('password', '')
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(pass_word)
            user_profile.save()

            # 写入欢迎注册消息
            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message = "欢迎注册我们新闻网"
            user_message.save()

            send_register_email(user_name, 'register')
            return HttpResponseRedirect(reverse("index"))
        else:
            return render(
                request, 'register.html', {'register_form': register_form}
            )  # 回填用户信息,缺了这个变量 重新返回的时候就不能显示验证码了 因为此时此刻读不不出register_form了,从而验证错误信息也无法显示
Пример #16
0
 def post(self, request, path=None):
     print(request.POST)
     login_form = UserLoginForm(request.POST)
     if login_form.is_valid():
         username = login_form.cleaned_data['username']
         password = login_form.cleaned_data['password']
         print(f'{username=},{password=}')
         # user = UserProfile.objects.filter(Q(username=username) | Q(email=username) | Q(phone=username) & Q(password=password))
         user = authenticate(username=username, password=password)
         print(f'{user=}')
         if user:
             if user.is_status:
                 login(request, user)
                 # 登录成功后将登录消息保存到UserMessage中
                 usermessage = UserMessage()
                 usermessage.message_man = request.user.id
                 usermessage.message_content = 'Hello,{}欢迎来到尚硅谷教育网!'.format(
                     request.user.nick_name)
                 usermessage.save()
                 path = request.POST.get('path')  # 获取登录跳转前页面的路径
                 # url = request.COOKIE.get('url', '/')  # 从cookie中获取保存的url
                 # ret = redirect('url')
                 # ret.delete_cookie('url')
                 # return ret
                 print(f"{path=}")
                 if path and path != 'None':
                     return redirect(path)  # 跳转回之前的页面
                 return redirect(reverse('index'))
             return HttpResponse("请激活你的邮箱再登录")
         return render(request, 'login.html', {'err': '用户名或密码错误'})
     return render(request, 'login.html', {'login_form': login_form})
Пример #17
0
    def post(self, request):
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            username = user_login_form.cleaned_data['username']
            password = user_login_form.cleaned_data['password']

            user = authenticate(username=username, password=password)
            if user:
                if user.is_start:
                    login(request, user)
                    # 当登陆成功的时候,给加入一条消息
                    a = UserMessage()
                    a.message_man = user.id
                    a.message_content = '欢迎登陆'
                    a.save()
                    url = request.COOKIES.get('url', '/')
                    ret = redirect(url)
                    ret.delete_cookie('url')
                    return ret
                else:
                    return render(request, 'users/login.html',
                                  {'msg': '请去邮箱激活账号'})
            else:
                return render(request, 'users/login.html', {'msg': '邮箱或者密码有误'})
        else:
            return render(request, 'users/login.html', {
                'user_login_form': user_login_form,
                'msg': '邮箱或者密码有误'
            })
Пример #18
0
 def post(request):
     user_register_form = UserRegisterForm(request.POST)
     if user_register_form.is_valid():
         email = user_register_form.cleaned_data['email']
         password = user_register_form.cleaned_data['password']
         # 查找是否已经注册
         user_list = UserProfile.objects.filter(
             Q(username=email) | Q(email=email))
         if user_list:
             return render(request, 'users/register.html', {
                 'msg': '用户已经存在',
             })
         else:
             """
             默认未激活,需要点击邮箱链接进行激活
             """
             user = UserProfile(username=email, email=email)
             user.is_active = False
             user.set_password(password)
             user.save()
             """
             给用户发送激活邮件并发送欢迎注册消息
             """
             msg = UserMessage()
             msg.msg_content = '欢迎注册[在线教育网],请遵守国家相关法律法规'
             msg.msg_user = user.id
             msg.save()
             send_mail_code(email, 1)
             return HttpResponse('请尽快前往您的邮箱激活,否则无法登录')
     else:
         return render(request, 'users/register.html', {
             'user_register_form': user_register_form,
         })
Пример #19
0
    def post(self, request):
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            username = user_login_form.cleaned_data['username']
            password = user_login_form.cleaned_data['password']

            user = authenticate(username=username, password=password)
            if user:
                #如果这个账号是激活了的
                if user.is_start:
                    login(request, user)
                    # 当登陆成功的时候,给加入一条消息
                    a = UserMessage()
                    a.message_man = user.id
                    a.message_content = '欢迎登陆'
                    a.save()
                    url = request.COOKIES.get('url', '/')
                    ret = redirect(url)
                    ret.delete_cookie(
                        'url'
                    )  #从COOKIES拿键url的值,只拿一次,用delete_cookie删掉。如:未登录状态下点“开始学习”,跳登录页,登录账号后,跳学习视频页面。之后,未登录状态下点“收藏”,跳登录页,登录账号后,避免仍然跳学习视频页面
                    return ret
                else:
                    return HttpResponse('请去您的邮箱激活,否则无法登陆')
            else:
                return render(request, 'users/login.html', {'msg': '邮箱或者密码有误'})
        else:
            return render(request, 'users/login.html',
                          {'user_login_form': user_login_form})
Пример #20
0
def user_login(request):
    if request.method == 'GET':
        return render(request, 'users/login.html')
    else:
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            email = user_login_form.cleaned_data['email']
            password = user_login_form.cleaned_data['password']
            user = authenticate(username=email, password=password)
            if user:
                if user.is_start:
                    login(request, user)
                    a = UserMessage()
                    a.msg_user = request.user.id
                    a.msg_content = '欢迎登陆谷粒教育网'
                    a.save()
                    url = request.COOKIES.get('url', '/')
                    return redirect(url)
                else:
                    return HttpResponse('你的邮箱未激活,请去邮箱激活后再登录!')

            else:
                return render(request, 'users/login.html', {'msg': '邮箱或者密码错误'})
        else:
            return render(request, 'users/login.html',
                          {'user_login_form': user_login_form})
Пример #21
0
    def post(self, request):
        blog_form = BlogContentForm(request.POST, request.FILES or None)
        if blog_form.is_valid():
            blog = MiniBlog()
            print(blog.id)
            blog.user = request.user
            blog.content = request.POST.get("content", "")
            blog.image = blog_form.cleaned_data["image"]
            if blog.image:
                blog.has_pic = 1

            # 替换@用户
            re_str = blog.content
            users_list = []
            users_str = re.findall(r'@(.+?)\s', re_str)

            users_str_1 = re.findall(r'^(.+?)@', re_str[::-1])
            if users_str_1:
                users_str.append(users_str_1[0][::-1])

            for user_str in users_str:
                user = UserProfile.objects.filter(nickname=user_str)
                if user:
                    users_list.append(user[0])
                    re_str = re_str.replace(
                        '@' + user_str, '<a href="/user/' + str(user[0].id) +
                        '/">' + '@' + user_str + '</a>')
            blog.content = re_str

            blog.save()
            print(blog.id)

            # 新建@提醒
            for user in users_list:
                message = UserMessage()
                message.user = user
                message.blog_id = blog.id
                message.save()

                user.message_nums = UserMessage.objects.filter(
                    user=user, has_read=False).count()
                user.save()

            # blog_form.save()
            self.topic_test(blog.content, blog)

            # 替换话题
            re_str = blog.content
            topics_str = re.findall(r'#(.+?)#', re_str)
            for topic_str in topics_str:
                topic = Topic.objects.filter(topicname=topic_str)
                if topic:
                    re_str = re_str.replace(
                        '#' + topic_str + '#',
                        '<a href="/weibo/topic/' + str(topic[0].id) + '">' +
                        '#' + topic_str + '#' + '</a>')

            blog.content = re_str
            blog.save()
            return HttpResponseRedirect(reverse('mainpage'))
Пример #22
0
    def post(self, request):
        user_id = request.POST.get("user_id", 0)
        group_id = request.POST.get("group_id", 0)
        role = request.POST.get("role", 1)
        student_id = request.POST.get("student_id", 0)
        try:
            user = UserProfile.objects.filter(id=user_id).get()
            group = Group.objects.filter(id=group_id).get()
            if not UserGroup.objects.filter(user=user, group=group).count():
                ug = UserGroup()
                ug.user = user
                ug.group = group
                ug.role = role
                ug.student_id = student_id
                ug.save()

                m = UserMessage()
                m.from_user = request.user
                m.message_type = UserMessage.MSG_TYPE_JOIN_GROUP_OK
                m.title = u"你已经成功加入班级" + group.name
                m.message = json.dumps({
                    "group_name": group.name,
                    "group_id": group.id
                })
                m.to_user = user_id
                m.save()
            return JsonResponse({"status": "success"})
        except Exception as e:
            return JsonResponse({"status": "fail"})
Пример #23
0
    def post(self, request):
        group_id = request.POST.get("group_id", None)
        student_id = request.POST.get("student_id", 0)
        is_teacher = parse_bool(request.POST.get("is_teacher", False))
        message = request.POST.get("message", "")
        if not group_id:
            return JsonResponse({"status": "fail", "reason": "bad input"})
        target_users = []
        # find group administrators
        admin_users = UserGroup.objects.filter(Q(role=2) | Q(role=3),
                                               group_id=group_id).all()

        if admin_users:
            for admin in admin_users:
                target_users.append(admin.user)
        else:
            # no admin user found. tell site admin
            target_users = UserProfile.objects.filter(is_staff=True)
        # put a message to all target users
        for target in target_users:
            msg = UserMessage()
            msg.to_user = target.id
            msg.from_user = None  # system message
            msg.title = u"用户{0}请求加入班级".format(request.user)
            msg.message_type = UserMessage.MSG_TYPE_JOIN_GROUP
            msg.message = json.dumps({
                "group_id": group_id,
                "user_id": request.user.id,
                "is_teacher": is_teacher,
                "student_id": student_id,
                "extra_message": message
            })
            msg.save()
        return JsonResponse({"status": "success"})
Пример #24
0
def send_message(text="NULL", sender="NULL", addressee="*****@*****.**"):
    """
        发送站内信,text信件正文,sender发件人,addressee收件人,收件人缺省即发送至管理员
    """
    user_message = UserMessage()
    user_message.email = addressee
    user_message.message = "发送人:" + sender + "| 发送信息:" + text
    user_message.save()
    pass
Пример #25
0
 def post(self, request, user_id):
     title = request.POST.get("title", "")
     text = request.POST.get("message", "")
     m = UserMessage()
     m.message_type = UserMessage.MSG_TYPE_USER
     m.title = title
     m.message = text
     m.from_user = request.user
     m.to_user = user_id
     m.save()
     return render(request, 'user_cowntact.html', {"message": u"消息发送成功"})
Пример #26
0
 def post(self, request):
     user_id = request.POST.get("user_id", 0)
     message_type = request.POST.get("message_type",
                                     UserMessage.MSG_TYPE_USER)
     if user_id:
         # create a message to tell the user
         m = UserMessage()
         m.from_user = request.user
         m.to_user = user_id
         m.title = u"申请被拒绝"
         request_type = UserMessage(
             message_type=int(message_type)).get_message_type_display()
         m.message = u"你的{0}申请审核未通过。如有疑问,请和我私信联系。".format(request_type)
         m.save()
     return JsonResponse({"status": "success"})
Пример #27
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('username', '')
            password = request.POST.get('password', '')
            user_email = request.POST.get('email', '')
            if UserProfiles.objects.filter(username=user_name):
                return render(request, 'users/register.html',
                              {'msg_username_error': u'用户名已被注册,请更换用户名', 'register_form': register_form})
            if UserProfiles.objects.filter(email=user_email):
                return render(request, 'users/register.html',
                              {'msg_email_error': u'邮箱已被注册,请更换邮箱', 'register_form': register_form})

            # 通过格式验证后,记录用户的数据到数据库中
            user_profile = UserProfiles()
            user_profile.username = user_name
            user_profile.email = user_email
            user_profile.is_active = False
            user_profile.password = make_password(password)
            user_profile.save()

            # 用户注册消息
            register_message = UserMessage()
            register_message.user = user_profile.id
            register_message.message = u'欢迎你注册称为点点在线网的用户'
            register_message.save()

            # 发送邮件验证码,获取发送状态,发送失败为 False
            send_status = send_email_verify_record(user_name, user_email, 'register')
            # 验证是否发送成功,如果送失败,重发三次,如果还是失败,删除用户数据,提示用户重新注册
            if not send_status:
                resend_status = False
                for times in range(3):
                    resend_status = send_email_verify_record(user_email, 'register')
                    if resend_status:
                        break
                if not resend_status:
                    UserProfiles.objects.filter(username=user_name).delete()
                    return render(request, 'users/register.html',
                                  {'msg_email_send_error': u'抱歉,验证邮件多次发送失败,请重新进行注册',
                                   'register_form': register_form})

            return render(request, 'users/login.html', {})
        else:
            return render(request, 'users/register.html', {'register_form': register_form})
Пример #28
0
    def post(self, request):
        user_id = request.POST.get("user_id", 0)
        group_id = request.POST.get("group_id", 0)

        try:
            group = Group.objects.filter(id=group_id).get()
            deleted, _ = UserGroup.objects.filter(user_id=user_id,
                                                  group_id=group_id).delete()
            if deleted:
                m = UserMessage()
                m.from_user = request.user
                m.message_type = UserMessage.MSG_TYPE_USER
                m.title = u"你已经成功退出班级'" + group.description + "'"
                m.message = u""
                m.to_user = user_id
                m.save()
            return JsonResponse({"status": "success"})
        except Exception as e:
            return JsonResponse({"status": "fail"})
Пример #29
0
def add_collection_message_to_user_message(user_id, collection_id, collection_type):
    id = {
        '1': Course,
        '2': CourseOrganization,
        '3': Teacher,
    }
    model_instance = id.get(str(collection_type))
    model_instance = model_instance.objects.get(id=collection_id)
    user_message = UserMessage()
    user_message.user = user_id
    name = ''
    if collection_type == 1:
        name = model_instance.course_name
    elif collection_type == 2:
        name = model_instance.organization_name
    elif collection_type == 3:
        name = model_instance.teacher_name

    user_message.message = "欢迎你收藏<{}\n{}>".format(name, model_instance.description)
    user_message.save()
Пример #30
0
    def post(self, request):
        group_id = request.POST.get("group_id", None)
        message = request.POST.get("message", "")

        if not group_id:
            return JsonResponse({"status": "fail", "reason": "bad input"})
        target_users = find_group_admin_users(int(group_id))
        # put a message to all target users
        for target in target_users:
            msg = UserMessage()
            msg.to_user = target.id
            msg.from_user = None  # system message
            msg.title = u"用户{0}请求退出班级".format(request.user)
            msg.message_type = UserMessage.MSG_TYPE_LEAVE_GROUP
            msg.message = json.dumps({
                "group_id": group_id,
                "user_id": request.user.id,
                "extra_message": message
            })
            msg.save()
        return JsonResponse({"status": "success"})