Ejemplo n.º 1
0
def send_comment_email(comment):
    site = get_current_site().domain
    subject = '感谢您发表的评论'
    article_url = 'http://{site}{path}'.format(
        site=site, path=comment.article.get_absolute_url())
    html_content = """
        <p>非常感谢您在本站发表评论</p>
        您可以访问
        <a href="%s" rel="bookmark">%s</a>
        来查看您的评论,再次感谢您!
        <br/>
        如果上面链接无法打开,请将次链接复制至浏览器。
        %s
    """ % (article_url, comment.article.title, article_url)
    tomail = comment.author.email
    send_email([tomail], subject, html_content)
    try:
        if comment.parent_comment:
            html_content = """
                您在<a href="%s" rel="bookmark">%s</a>的评论<br/>%s<br/>收到回复了,快去看看吧!
                <br/>
                如果上面的链接无法打开,请将此链接复制到浏览器。
                %s
            """ % (article_url, comment.article.title,
                   comment.parent_comment.body, article_url)
            tomail = comment.parent_comment.author.email
            send_email([tomail], subject, html_content)
    except Exception as e:
        logger.error(e)
Ejemplo n.º 2
0
    def form_valid(self, form):
        email = form.cleaned_data['email']
        authid = form.cleaned_data['authid']
        authuser = get_object_or_404(AuthUser, pk=authid)
        authuser.email = email
        authuser.save()
        sign = get_md5(settings.SECRET_KEY + str(authuser.id) +
                       settings.SECRET_KEY)
        site = get_current_site().domain

        if settings.DEBUG:
            site = '127.0.0.1:8000'
        path = reverse('auth: email_confirm',
                       kwargs={
                           'id': authid,
                           'sign': sign
                       })
        url = 'http://{site}{path}'.format(site=site, path=path)

        content = """
        <a href="{url}" rel="bookmark">{url}</a>
        """.format(url=url)
        senf_email(emailto=[
            email,
        ], title='绑定您的电子邮箱', content=content)
        url = reverse('auth: bindsuccess', kwargs={'authid': authid})
        url = url + "?type=email"
        return HttpResponseRedirect(url)
Ejemplo n.º 3
0
def email_confirm(request, id, sign):
    """邮件确认"""
    if not sign:
        return HttpResponseForbidden()
    if not get_md5(settings.SECRET_KEY + str(id) + settings.SECRET_KEY).upper() == sign.upper():
        return HttpResponseForbidden()

    oauthuser = get_object_or_404(OAuthUser, pk=id)
    with transaction.atomic():
        if oauthuser.author:
            author = get_user_model().objects.get(pk=oauthuser.author_id)
        else:
            result = get_user_model().objects.get_or_create(email=oauthuser.email)
            author = result[0]
            if result[1]:
                author.source = 'email_confirm'
                author.username = oauthuser.nickname.strip() if oauthuser.nickname.strip() else 'blog' + datetime.datetime.now().strftime('%Y%m%d%H%M%S')
                author.save()
        oauthuser.author = author
        oauthuser.save()
    oauth_user_login_signal.send(sender=email_confirm.__class__, id=oauthuser.id)
    login(request, author)

    site = get_current_site().domain
    content = '''
    <p>恭喜您,您已经成功绑定邮箱,您可以使用{type}类绵密登录本网站,欢迎您继续关注本站</p>
    <a href='{url}' rel='bookmark'>{url}</a>
    <br />
    如果上面的链接无法打开,请讲次链接复制到浏览器。
    {url}
    '''.format(type=oauthuser.type, url='http://' + site)
    send_email(emailto=[oauthuser.email, ], title='恭喜您绑定成功!', content = content)
    url = reverse('oauth: bind_success', kwargs={'oauthid': id})
    url = url + '?type=success'
    return HttpResponseRedirect(url)
Ejemplo n.º 4
0
def get_redirect_url(request):
    """获取重定向地址"""
    next_url = request.GET.get('next_url', None)
    if not next_url or next_url == '/login/' or next_url == '/login':
        next_url = '/'
        return next_url
    p = urlparse(next_url)
    if p.netloc:
        site = get_current_site().domain
        if not p.netloc.replace('www.', '') == site.replace('www.', ''):
            logger.info('非法的url: ' + next_url)
            return '/'
    return next_url
Ejemplo n.º 5
0
def emailconfirm(request, id, sign):
    """
    :param request:
    :param id:
    :param sign:
    :return:
    """
    if not sign:
        return HttpResponseForbidden()
    if not get_md5(settings.SECRET_KEY + str(id) +
                   settings.SECRET_KEY).upper() == sign.upper():
        return HttpResponseForbidden()
    authuser = get_object_or_404(AuthUser, pk=id)
    with transaction.atomic():
        if authuser.author:
            author = get_user_model().objects.get(pk=authuser.author_id)
        else:
            result = get_user_model().objects.get_or_create(
                email=authuser.email)
            author = result[0]
            if result[1]:
                author.source = 'emailconfirm'
                author.username = authuser.nickname.strip(
                ) if authuser.nickname.strip(
                ) else 'bolg' + datetime.datetime.now().strftime(
                    '%y%m%d%H%M%S')
                author.save()
        authuser.author = author
        author.save()
    auth_user_login_signal.send(sender=emailconfirm.__class__, id=authuser.id)
    login(request, author)
    site = get_current_site().domain
    content = f'''
    <p>恭喜您, 您已经成功绑定您的邮箱,您可以使用{type}来直接免密码登录
    '''
    send_email(emailto=[
        authuser.email,
    ], title='恭喜您绑定成功!', content=content)
    url = reverse('auth:bindsuccess', kwargs={'authid': id})
    url = url + '?type=success'
    return HttpResponseRedirect(url)