コード例 #1
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def password_reset(request, key=None):
    """ 重置用户密码 """

    try:
        register = Register.objects.get(activation_key=key)
    except Register.DoesNotExist:
        return HttpResponseForbidden(u'<h1>错误的 Key : %s </h1>' % key)

    try:
        user = User.objects.get(email=register.email)
    except User.DoesNotExist:
        return HttpResponseForbidden(u'<h2>无此 email 注册的用户 : %s </h2>' %
                                     register.email)

    form = build_form(SetPasswordForm, request, user=user)

    if form.is_valid():
        form.clean_new_password2()
        form.save()

        return {
            'PASSWORD_RESET_DONE': True,
        }

    return {'NEW_REQUEST': True, 'form': form}
コード例 #2
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def password_reset_request(request):
    ''' 用户请求重置密码密码 '''

    form = build_form(PasswordResetRequestForm, request)

    if form.is_valid():
        email = form.cleaned_data['email']

        try:
            user = User.objects.get(email=email)
        except User.DoesNotExist:
            return {
                'NOT_EXIST_EMAIL': True,
                'email': email,
                'REASON': '该 Email 还未注册用户 !'
            }

        try:
            register = Register.objects.get(email=email)
            register.reset_activation_key()
            register.save()
        except Register.DoesNotExist:
            register = Register.objects.create_profile(email)

        # 发送邮件
        subject = u'YLinux.org 重置密码邮件'
        message = u"尊敬的 %s ,应您的要求,重置密码 URL 是, http://ylinux.org/account/password/reset/%s" % (
            email, register.activation_key)
        user.email_user(subject=subject,
                        message=message,
                        from_email=settings.DEFAULT_FROM_EMAIL)

        return {'EMAIL_SENT': True, 'email': email}

    return {'NEW_REQUEST': True, 'form': form}
コード例 #3
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def request_register(request):
    ''' 使用 email 申请一个注册 URL '''

    form = build_form (RequestRegisterForm, request)

    if form.is_valid():
        email = form.cleaned_data['email']
        try:
            register = Register.objects.get(email=email)
            return {'ALREADY_USED_EMAIL':True, 'email':email,
                    'REASON':'不要使用同一个 Email 重复申请注册!'}
        except Register.DoesNotExist:
            pass

        try:
            user = User.objects.get(email=email)
            return {'ALREADY_USED_EMAIL':True, 'email':email,
                    'REASON':'该用户已经成功加入 YLinux !'}
        except User.DoesNotExist:
            pass

        register=Register.objects.create_profile(email)
        if register:
            register.send_activation_email()
            #url= "http://ylinux.org/account/register/%s" % register.activation_key

        #return {'EMAIL_SENT':True, 'email':email, 'register_url':url}
        return {'EMAIL_SENT':True, 'email':email}

    return {'NEW_REQUEST':True, 'form':form}
コード例 #4
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def password_reset_request (request):

    ''' 用户请求重置密码密码 '''

    form = build_form (PasswordResetRequestForm, request)

    if form.is_valid():
        email = form.cleaned_data['email']

        try:
            user = User.objects.get(email=email)
        except User.DoesNotExist:
            return {'NOT_EXIST_EMAIL':True, 'email':email,
                    'REASON':'该 Email 还未注册用户 !'}

        try:
            register = Register.objects.get(email=email)
            register.reset_activation_key()
            register.save()
        except Register.DoesNotExist:
            register=Register.objects.create_profile(email)

        # 发送邮件
        subject = u'YLinux.org 重置密码邮件'
        message = u"尊敬的 %s ,应您的要求,重置密码 URL 是, http://ylinux.org/account/password/reset/%s" % (email, register.activation_key)
        user.email_user (subject = subject,
             message = message, 
             from_email=settings.DEFAULT_FROM_EMAIL)

        return {'EMAIL_SENT':True, 'email':email}

    return {'NEW_REQUEST':True, 'form':form}
コード例 #5
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def add_post(request, id):
    """添加一个Post(wiki 形式)"""

    if not request.user.is_authenticated():
        return HttpResponseForbidden('<h1>您没有这个权限!请 <a href="/account/login">登录</a></h1>')

    topic = get_object_or_404(Topic, pk=id)
    if not topic.catalog.has_access(request.user):
        return HttpResponseForbidden("<h1>您没有权限回复此帖!</h1>")
    # 如果 topic 已锁,则重定向到显示 topic
    if topic and topic.closed:
        return HttpResponseRedirect(topic.get_absolute_url())

    ip = ylinux_get_ip(request)

    form = build_form(AddPostForm, request, topic=topic, user=request.user, ip=ip)

    if form.is_valid():
        post = form.save()
        # set last post
        topic.last_post = Post.objects.filter(topic=topic).latest("updated")
        topic.save()
        url = reverse("wiki:show_topic", args=[post.topic.id])
        return HttpResponseRedirect(url)

    posts = topic.posts.all().select_related()
    return {"form": form, "posts": posts, "topic": topic}
コード例 #6
0
def edit_topic(request, id):

    topic = get_object_or_404(Topic, pk=id)

    if topic.user != request.user:
        return HttpResponseForbidden('<h1>您没有这个权限!</h1>')

    parents = get_parents(Catalog, topic.catalog.id)
    ip = ylinux_get_ip(request)

    form = build_form(EditTopicForm,
                      request,
                      text=topic.body,
                      user_ip=ip,
                      instance=topic)

    if form.is_valid():
        topic = form.save()
        url = reverse('wiki:show_topic', args=[id])
        return HttpResponseRedirect(url)

    attachments = Attachment.objects.filter(topic=topic)
    return {
        'form': form,
        'parents': parents,
        'topic': topic,
        'attachments': attachments
    }
コード例 #7
0
def add_topic(request, id):
    ''' id 是 Catalog '''

    if not id:
        return {'errors': '没有指定 Catalog'}

    catalog = get_object_or_404(Catalog, pk=id)
    if not catalog.has_access(request.user):
        return HttpResponseForbidden(u'<h2>你没有权限在此组中发贴!</h2>')
    parents = get_parents(Catalog, id)
    ip = ylinux_get_ip(request)

    form = build_form(AddTopicForm,
                      request,
                      catalog=catalog,
                      user=request.user,
                      user_ip=ip)

    if form.is_valid():
        topic = form.save()
        # set last topic
        catalog.last_topic = topic
        catalog.save()
        url = reverse('wiki:show_topic', args=[topic.id])
        return HttpResponseRedirect(url)

    return {'parents': parents, 'form': form}
コード例 #8
0
def add_post(request, id):
    """添加一个Post(wiki 形式)"""

    if not request.user.is_authenticated():
        return HttpResponseForbidden(
            '<h1>您没有这个权限!请 <a href="/account/login">登录</a></h1>')

    topic = get_object_or_404(Topic, pk=id)
    if not topic.catalog.has_access(request.user):
        return HttpResponseForbidden('<h1>您没有权限回复此帖!</h1>')
    # 如果 topic 已锁,则重定向到显示 topic
    if topic and topic.closed:
        return HttpResponseRedirect(topic.get_absolute_url())

    ip = ylinux_get_ip(request)

    form = build_form(AddPostForm,
                      request,
                      topic=topic,
                      user=request.user,
                      ip=ip)

    if form.is_valid():
        post = form.save()
        # set last post
        topic.last_post = Post.objects.filter(topic=topic).latest('updated')
        topic.save()
        url = reverse('wiki:show_topic', args=[post.topic.id])
        return HttpResponseRedirect(url)

    posts = topic.posts.all().select_related()
    return {'form': form, 'posts': posts, 'topic': topic}
コード例 #9
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def add_group(request):

    form = build_form(AddGroupForm, request)
    if form.is_valid():
        group = form.save()
        url = reverse('admin:show_group', args=[group.id])
        return HttpResponseRedirect(url)

    return {'form': form}
コード例 #10
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def add_permission(request):

    form = build_form(AddPermissionForm, request)
    if form.is_valid():
        permission = form.save()
        url = reverse("admin:show_permission", args=[permission.id])
        return HttpResponseRedirect(url)

    return {"form": form}
コード例 #11
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def add_user(request):

    form = build_form(AddUserForm, request)
    if form.is_valid():
        user = form.save()
        url = reverse('admin:show_user', args=[user.id])
        return HttpResponseRedirect(url)

    return {'form': form}
コード例 #12
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def add_permission(request):

    form = build_form(AddPermissionForm, request)
    if form.is_valid():
        permission = form.save()
        url = reverse('admin:show_permission', args=[permission.id])
        return HttpResponseRedirect(url)

    return {'form': form}
コード例 #13
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def add_group(request):

    form = build_form(AddGroupForm, request)
    if form.is_valid():
        group = form.save()
        url = reverse("admin:show_group", args=[group.id])
        return HttpResponseRedirect(url)

    return {"form": form}
コード例 #14
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def add_user(request):

    form = build_form(AddUserForm, request)
    if form.is_valid():
        user = form.save()
        url = reverse("admin:show_user", args=[user.id])
        return HttpResponseRedirect(url)

    return {"form": form}
コード例 #15
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def edit_user(request, id):

    user = get_object_or_404(User, pk=id)
    form = build_form(EditUserForm, request, instance=user)

    if form.is_valid():
        form.save()
        url = reverse("admin:show_user", args=[id])
        return HttpResponseRedirect(url)

    return {"form": form, "user": user}
コード例 #16
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def add_catalog(request, parent_id=None):

    if parent_id:
        catalog = get_object_or_404(Catalog, pk=parent_id)
        parents = get_parents(Catalog, catalog.id)

        form = build_form(AddCatalogForm, request, parent=catalog)

    else:
        form = build_form(AddCatalogForm, request)

    if form.is_valid():
        catalog = form.save()
        url = reverse("admin:show_catalog", args=[catalog.id])
        return HttpResponseRedirect(url)

    if parent_id:
        return {"catalog": catalog, "form": form, "parents": parents}
    else:
        return {"form": form}
コード例 #17
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def edit_user(request, id):

    user = get_object_or_404(User, pk=id)
    form = build_form(EditUserForm, request, instance=user)

    if form.is_valid():
        form.save()
        url = reverse('admin:show_user', args=[id])
        return HttpResponseRedirect(url)

    return {'form': form, 'user': user}
コード例 #18
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def edit_group(request, id):

    group = get_object_or_404(Group, pk=id)

    form = build_form(EditGroupForm, request, instance=group)

    if form.is_valid():
        form.save()
        url = reverse("admin:show_group", args=[id])
        return HttpResponseRedirect(url)

    return {"form": form, "group": group}
コード例 #19
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def edit_permission(request, id):

    permission = get_object_or_404(Permission, pk=id)

    form = build_form(EditPermissionForm, request, instance=permission)

    if form.is_valid():
        form.save()
        url = reverse('admin:show_permission', args=[id])
        return HttpResponseRedirect(url)

    return {'form': form, 'permission': permission}
コード例 #20
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def edit_permission(request, id):

    permission = get_object_or_404(Permission, pk=id)

    form = build_form(EditPermissionForm, request, instance=permission)

    if form.is_valid():
        form.save()
        url = reverse("admin:show_permission", args=[id])
        return HttpResponseRedirect(url)

    return {"form": form, "permission": permission}
コード例 #21
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def edit_group(request, id):

    group = get_object_or_404(Group, pk=id)

    form = build_form(EditGroupForm, request, instance=group)

    if form.is_valid():
        form.save()
        url = reverse('admin:show_group', args=[id])
        return HttpResponseRedirect(url)

    return {'form': form, 'group': group}
コード例 #22
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def ajax_add_topic(request, id):
    if not id:
        return {"errors": "没有指定 Catalog"}

    catalog = get_object_or_404(Catalog, pk=id)
    if not catalog.has_access(request.user):
        return HttpResponseForbidden(u"<h2>你没有权限在此组中发贴!</h2>")
    parents = get_parents(Catalog, id)
    ip = ylinux_get_ip(request)

    form = build_form(AddTopicForm, request, catalog=catalog, user=request.user, user_ip=ip)

    return {"parents": parents, "form": form, "id": id}
コード例 #23
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def edit_catalog(request, id):

    catalog = get_object_or_404(Catalog, pk=id)
    parents = get_parents(Catalog, id)

    form = build_form(EditCatalogForm, request, parent=catalog.parent, instance=catalog)

    if form.is_valid():
        catalog = form.save()
        url = reverse("admin:show_catalog", args=[catalog.id])
        return HttpResponseRedirect(url)

    return {"form": form, "parents": parents, "catalog": catalog}
コード例 #24
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def register(request, key=None):
    """用户注册视图,根据用户名和Email信息注册新用户。 """

    try:
        register = Register.objects.get(activation_key=key)
    except Register.DoesNotExist:
        return HttpResponseForbidden(u'<h1>错误的 Key : %s </h1>' % key)

    form = build_form(RegisterForm, request)

    if form.is_valid():
        # 从 POST 取得用户名,判断是否已存在
        username = form.cleaned_data['username']
        try:
            user = User.objects.get(username=username)
            return render_to_response("account/register_failed.html", {
                "title": "注册失败",
                "username": username,
                "error_type": "username",
            },
                                      context_instance=RequestContext(request))
        except User.DoesNotExist:
            pass

        # 从 POST 取得 password
        password_first = form.cleaned_data['password_first']
        password_second = form.cleaned_data['password_second']
        if not password_first == password_second:
            return render_to_response("account/register_failed.html", {
                "title": "注册失败",
                "username": username,
                "error_type": "密码不匹配",
            },
                                      context_instance=RequestContext(request))

        user = Register.objects.create_activate_user(username=username,
                                                     email=register.email,
                                                     password=password_first,
                                                     activation_key=key)
        #User.objects.create_user(username=username, email=register.email, password=password_first)
        # 注册成功
        return render_to_response("account/register_successful.html", {
            "title": "注册成功",
            "username": username
        },
                                  context_instance=RequestContext(request))

    # 打开注册页面
    return render_to_response("account/register.html", {'form': form},
                              context_instance=RequestContext(request))
コード例 #25
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def add_catalog(request, parent_id=None):

    if parent_id:
        catalog = get_object_or_404(Catalog, pk=parent_id)
        parents = get_parents(Catalog, catalog.id)

        form = build_form(AddCatalogForm, request, parent=catalog)

    else:
        form = build_form(AddCatalogForm, request)

    if form.is_valid():
        catalog = form.save()
        url = reverse('admin:show_catalog', args=[catalog.id])
        return HttpResponseRedirect(url)

    if parent_id:
        return {
            'catalog': catalog,
            'form': form,
            'parents': parents,
        }
    else:
        return {'form': form}
コード例 #26
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def edit_catalog(request, id):

    catalog = get_object_or_404(Catalog, pk=id)
    parents = get_parents(Catalog, id)

    form = build_form(EditCatalogForm,
                      request,
                      parent=catalog.parent,
                      instance=catalog)

    if form.is_valid():
        catalog = form.save()
        url = reverse('admin:show_catalog', args=[catalog.id])
        return HttpResponseRedirect(url)

    return {'form': form, 'parents': parents, 'catalog': catalog}
コード例 #27
0
def ajax_add_topic(request, id):
    if not id:
        return {'errors': '没有指定 Catalog'}

    catalog = get_object_or_404(Catalog, pk=id)
    if not catalog.has_access(request.user):
        return HttpResponseForbidden(u'<h2>你没有权限在此组中发贴!</h2>')
    parents = get_parents(Catalog, id)
    ip = ylinux_get_ip(request)

    form = build_form(AddTopicForm,
                      request,
                      catalog=catalog,
                      user=request.user,
                      user_ip=ip)

    return {'parents': parents, 'form': form, 'id': id}
コード例 #28
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def register(request, key=None):
    """用户注册视图,根据用户名和Email信息注册新用户。 """

    try:
        register = Register.objects.get(activation_key=key)
    except Register.DoesNotExist:
        return HttpResponseForbidden(u'<h1>错误的 Key : %s </h1>' % key)

    form = build_form (RegisterForm, request)

    if form.is_valid():
        # 从 POST 取得用户名,判断是否已存在
        username = form.cleaned_data['username']
        try:
            user = User.objects.get(username=username)
            return render_to_response("account/register_failed.html",
                                      {"title":"注册失败","username":username,
                                       "error_type":"username",},
                                      context_instance=RequestContext(request))
        except User.DoesNotExist:
            pass

        # 从 POST 取得 password
        password_first = form.cleaned_data['password_first']
        password_second = form.cleaned_data['password_second']
        if not password_first == password_second:
            return render_to_response("account/register_failed.html",
                                      {"title":"注册失败","username":username,
                                       "error_type":"密码不匹配",},
                                      context_instance=RequestContext(request))

        user = Register.objects.create_activate_user (
            username=username, 
            email=register.email,
            password=password_first,
            activation_key=key )
        #User.objects.create_user(username=username, email=register.email, password=password_first)
        # 注册成功
        return render_to_response("account/register_successful.html",
                                  {"title":"注册成功","username":username},
                                  context_instance=RequestContext(request))

    # 打开注册页面
    return render_to_response("account/register.html",
                              { 'form': form },
                              context_instance=RequestContext(request))
コード例 #29
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def edit_topic(request, id):

    topic = get_object_or_404(Topic, pk=id)

    if topic.user != request.user:
        return HttpResponseForbidden("<h1>您没有这个权限!</h1>")

    parents = get_parents(Catalog, topic.catalog.id)
    ip = ylinux_get_ip(request)

    form = build_form(EditTopicForm, request, text=topic.body, user_ip=ip, instance=topic)

    if form.is_valid():
        topic = form.save()
        url = reverse("wiki:show_topic", args=[id])
        return HttpResponseRedirect(url)

    attachments = Attachment.objects.filter(topic=topic)
    return {"form": form, "parents": parents, "topic": topic, "attachments": attachments}
コード例 #30
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def password_reset (request, key=None):
    """ 重置用户密码 """

    try:
        register = Register.objects.get(activation_key=key)
    except Register.DoesNotExist:
        return HttpResponseForbidden(u'<h1>错误的 Key : %s </h1>' % key)

    try:
        user = User.objects.get(email=register.email)
    except User.DoesNotExist:
        return HttpResponseForbidden(u'<h2>无此 email 注册的用户 : %s </h2>' % register.email)

    form = build_form (SetPasswordForm, request, user=user)

    if form.is_valid():
        form.clean_new_password2()
        form.save()

        return {'PASSWORD_RESET_DONE':True,}

    return {'NEW_REQUEST':True, 'form':form}
コード例 #31
0
ファイル: views.py プロジェクト: Czlyc/ylinux
def add_topic(request, id):
    """ id 是 Catalog """

    if not id:
        return {"errors": "没有指定 Catalog"}

    catalog = get_object_or_404(Catalog, pk=id)
    if not catalog.has_access(request.user):
        return HttpResponseForbidden(u"<h2>你没有权限在此组中发贴!</h2>")
    parents = get_parents(Catalog, id)
    ip = ylinux_get_ip(request)

    form = build_form(AddTopicForm, request, catalog=catalog, user=request.user, user_ip=ip)

    if form.is_valid():
        topic = form.save()
        # set last topic
        catalog.last_topic = topic
        catalog.save()
        url = reverse("wiki:show_topic", args=[topic.id])
        return HttpResponseRedirect(url)

    return {"parents": parents, "form": form}
コード例 #32
0
ファイル: views.py プロジェクト: xycfree/ylinux_old
def request_register(request):
    ''' 使用 email 申请一个注册 URL '''

    form = build_form(RequestRegisterForm, request)

    if form.is_valid():
        email = form.cleaned_data['email']
        try:
            register = Register.objects.get(email=email)
            return {
                'ALREADY_USED_EMAIL': True,
                'email': email,
                'REASON': '不要使用同一个 Email 重复申请注册!'
            }
        except Register.DoesNotExist:
            pass

        try:
            user = User.objects.get(email=email)
            return {
                'ALREADY_USED_EMAIL': True,
                'email': email,
                'REASON': '该用户已经成功加入 YLinux !'
            }
        except User.DoesNotExist:
            pass

        register = Register.objects.create_profile(email)
        if register:
            register.send_activation_email()
            #url= "http://ylinux.org/account/register/%s" % register.activation_key

        #return {'EMAIL_SENT':True, 'email':email, 'register_url':url}
        return {'EMAIL_SENT': True, 'email': email}

    return {'NEW_REQUEST': True, 'form': form}