Пример #1
0
def login_and_forward(request, user, forward=None, message=None):
    if user.is_suspended():
        return forward_suspended_user(request, user)

    user.backend = "django.contrib.auth.backends.ModelBackend"
    login(request, user)

    if message is None:
        message = _("Welcome back %s, you are now logged in") % user.username

    request.user.message_set.create(message=message)

    if not forward:
        forward = request.session.get(ON_SIGNIN_SESSION_ATTR, reverse('index'))

    pending_data = request.session.get(PENDING_SUBMISSION_SESSION_ATTR, None)

    if pending_data and (user.email_isvalid or pending_data['type'] not in settings.REQUIRE_EMAIL_VALIDATION_TO):
        submission_time = pending_data['time']
        if submission_time < datetime.datetime.now() - datetime.timedelta(minutes=int(settings.HOLD_PENDING_POSTS_MINUTES)):
            del request.session[PENDING_SUBMISSION_SESSION_ATTR]
        elif submission_time < datetime.datetime.now() - datetime.timedelta(minutes=int(settings.WARN_PENDING_POSTS_MINUTES)):
            user.message_set.create(message=(_("You have a %s pending submission.") % pending_data['data_name']) + " %s, %s, %s" % (
                html.hyperlink(reverse('manage_pending_data', kwargs={'action': _('save')}), _("save it")),
                html.hyperlink(reverse('manage_pending_data', kwargs={'action': _('review')}), _("review")),
                html.hyperlink(reverse('manage_pending_data', kwargs={'action': _('cancel')}), _("cancel"))
            ))
        else:
            return manage_pending_data(request, _('save'), forward)

    return HttpResponseRedirect(forward)
Пример #2
0
def login_and_forward(request, user, forward=None, message=None):
    if user.is_suspended():
        return forward_suspended_user(request, user)

    user.backend = "django.contrib.auth.backends.ModelBackend"
    login(request, user)

    if message is None:
        message = _("Welcome back %s, you are now logged in") % smart_unicode(user.username)

    request.user.message_set.create(message=message)

    if not forward:
        forward = request.session.get(ON_SIGNIN_SESSION_ATTR, reverse('index'))

    pending_data = request.session.get(PENDING_SUBMISSION_SESSION_ATTR, None)

    if pending_data and (user.email_isvalid or pending_data['type'] not in settings.REQUIRE_EMAIL_VALIDATION_TO):
        submission_time = pending_data['time']
        if submission_time < datetime.datetime.now() - datetime.timedelta(minutes=int(settings.HOLD_PENDING_POSTS_MINUTES)):
            del request.session[PENDING_SUBMISSION_SESSION_ATTR]
        elif submission_time < datetime.datetime.now() - datetime.timedelta(minutes=int(settings.WARN_PENDING_POSTS_MINUTES)):
            user.message_set.create(message=(_("You have a %s pending submission.") % pending_data['data_name']) + " %s, %s, %s" % (
                html.hyperlink(reverse('manage_pending_data', kwargs={'action': _('save')}), _("save it")),
                html.hyperlink(reverse('manage_pending_data', kwargs={'action': _('review')}), _("review")),
                html.hyperlink(reverse('manage_pending_data', kwargs={'action': _('cancel')}), _("cancel"))
            ))
        else:
            return manage_pending_data(request, _('save'), forward)

    return HttpResponseRedirect(forward)
Пример #3
0
def login_and_forward(request, user, forward=None, message=None):
    if user.is_suspended():
        return forward_suspended_user(request, user)

    user.backend = "django.contrib.auth.backends.ModelBackend"
    login(request, user)

    # Store the login action
    UserLoginAction(user=user, ip=request.META['REMOTE_ADDR']).save()

    if message is None:
        message = _("Welcome back %s, you are now logged in") % smart_unicode(
            user.username)

    request.user.message_set.create(message=message)

    if not forward:
        forward = request.session.get(ON_SIGNIN_SESSION_ATTR, reverse('index'))

    pending_data = request.session.get(PENDING_SUBMISSION_SESSION_ATTR, None)

    if pending_data and (user.email_isvalid or pending_data['type']
                         not in settings.REQUIRE_EMAIL_VALIDATION_TO):
        submission_time = pending_data['time']
        if submission_time < datetime.datetime.now() - datetime.timedelta(
                minutes=int(settings.HOLD_PENDING_POSTS_MINUTES)):
            del request.session[PENDING_SUBMISSION_SESSION_ATTR]
        elif submission_time < datetime.datetime.now() - datetime.timedelta(
                minutes=int(settings.WARN_PENDING_POSTS_MINUTES)):
            user.message_set.create(
                message=(_("You have a %s pending submission.") %
                         pending_data['data_name']) + " %s, %s, %s" %
                (html.hyperlink(
                    reverse('manage_pending_data',
                            kwargs={'action': _('save')}), _("save it")),
                 html.hyperlink(
                     reverse('manage_pending_data',
                             kwargs={'action': _('review')}), _("review")),
                 html.hyperlink(
                     reverse('manage_pending_data',
                             kwargs={'action': _('cancel')}), _("cancel"))))
        else:
            return manage_pending_data(request, _('save'), forward)

    additional_get_params = urllib.urlencode(
        dict([k, v.encode('utf-8')] for k, v in request.GET.items()))

    parsed_forward = urlparse(forward)

    # If there is already some parsed query in the URL then change the forward URL
    if parsed_forward.query:
        forward_url = forward + "&%s" % additional_get_params
    else:
        forward_url = forward + "?%s" % additional_get_params

    return HttpResponseRedirect(forward_url)
Пример #4
0
def login_and_forward(request, user, forward=None, message=None):
    if user.is_suspended():
        return forward_suspended_user(request, user)

    user.backend = "django.contrib.auth.backends.ModelBackend"
    login(request, user)

    # Store the login action
    UserLoginAction(user=user, ip=request.META["REMOTE_ADDR"]).save()

    if message is None:
        message = _("Welcome back %s, you are now logged in") % smart_unicode(user.username)

    messages.success(request, message)

    if not forward:
        forward = request.session.get(ON_SIGNIN_SESSION_ATTR, reverse("index"))

    pending_data = request.session.get(PENDING_SUBMISSION_SESSION_ATTR, None)

    if pending_data and (user.email_isvalid or pending_data["type"] not in settings.REQUIRE_EMAIL_VALIDATION_TO):
        submission_time = pending_data["time"]
        if submission_time < datetime.datetime.now() - datetime.timedelta(
            minutes=int(settings.HOLD_PENDING_POSTS_MINUTES)
        ):
            del request.session[PENDING_SUBMISSION_SESSION_ATTR]
        elif submission_time < datetime.datetime.now() - datetime.timedelta(
            minutes=int(settings.WARN_PENDING_POSTS_MINUTES)
        ):
            messages.success(
                request,
                (_("You have a %s pending submission.") % pending_data["data_name"])
                + " %s, %s, %s"
                % (
                    html.hyperlink(reverse("manage_pending_data", kwargs={"action": _("save")}), _("save it")),
                    html.hyperlink(reverse("manage_pending_data", kwargs={"action": _("review")}), _("review")),
                    html.hyperlink(reverse("manage_pending_data", kwargs={"action": _("cancel")}), _("cancel")),
                ),
            )
        else:
            return manage_pending_data(request, _("save"), forward)

    additional_get_params = urllib.urlencode(dict([k, v.encode("utf-8")] for k, v in request.GET.items()))

    parsed_forward = urlparse(forward)

    # If there is already some parsed query in the URL then change the forward URL
    if parsed_forward.query:
        forward_url = forward + "&%s" % additional_get_params
    else:
        forward_url = forward + "?%s" % additional_get_params

    return HttpResponseRedirect(forward_url)
Пример #5
0
def user_questions(request, mode, user, slug):
    user = get_object_or_404(User, id=user)

    if mode == _('asked-by'):
        questions = Question.objects.filter(author=user)
        description = _("Questions asked by %s")
    elif mode == _('answered-by'):
        questions = Question.objects.filter(children__author=user, children__node_type='answer').distinct()
        description = _("Questions answered by %s")
    elif mode == _('subscribed-by'):
        if not (request.user.is_superuser or request.user == user):
            return HttpResponseUnauthorized(request)
        questions = user.subscriptions

        if request.user == user:
            description = _("Questions you subscribed %s")
        else:
            description = _("Questions subscribed by %s")
    else:
        raise Http404


    return question_list(request, questions,
                         mark_safe(description % hyperlink(user.get_profile_url(), user.username)),
                         page_title=description % user.username)
Пример #6
0
def user_questions(request, mode, user, slug):
    user = get_object_or_404(User, id=user)

    if mode == _('asked-by'):
        questions = Question.objects.filter(author=user)
        description = _("Questions asked by %s")
    elif mode == _('answered-by'):
        questions = Question.objects.filter(children__author=user, children__node_type='answer').distinct()
        description = _("Questions answered by %s")
    elif mode == _('subscribed-by'):
        if not (request.user.is_superuser or request.user == user):
            return HttpResponseUnauthorized(request)
        questions = user.subscriptions

        if request.user == user:
            description = _("Questions you subscribed %s")
        else:
            description = _("Questions subscribed by %s")
    else:
        raise Http404


    return question_list(request, questions,
                         mark_safe(description % hyperlink(user.get_profile_url(), user.username)),
                         page_title=description % user.username)
Пример #7
0
def create_user(request):
    if request.POST:
        form = CreateUserForm(request.POST)

        if form.is_valid():
            user_ = User(username=form.cleaned_data['username'],
                         email=form.cleaned_data['email'])
            user_.set_password(form.cleaned_data['password1'])

            if not form.cleaned_data.get('validate_email', False):
                user_.email_isvalid = True

            user_.save()
            UserJoinsAction(user=user_).save()

            request.user.message_set.create(
                message=_("New user created sucessfully. %s.") %
                html.hyperlink(user_.get_profile_url(),
                               _("See %s profile") % user_.username,
                               target="_blank"))

            return HttpResponseRedirect(
                reverse("admin_tools", kwargs={'name': 'createuser'}))
    else:
        form = CreateUserForm()

    return ('osqaadmin/createuser.html', {
        'form': form,
    })
Пример #8
0
 def render(self, context):
     return html.buildtag(
         "li",
         html.buildtag("span", self.span_label(context), **self.span_attrs(context))
         + html.hyperlink(self.url(context), self.label(context), **self.a_attrs(context)),
         **{"class": "item"}
     )
Пример #9
0
def login_and_forward(request, user, forward=None, message=None):
    if user.is_suspended():
        return forward_suspended_user(request, user)

    user.backend = "django.contrib.auth.backends.ModelBackend"
    login(request, user)

    # Store the login action
    UserLoginAction(user=user, ip=request.META["REMOTE_ADDR"]).save()

    if message is None:
        message = _("Welcome back %s, you are now logged in") % smart_unicode(user.username)

    request.user.message_set.create(message=message)

    if not forward:
        forward = request.session.get(ON_SIGNIN_SESSION_ATTR, reverse("index"))

    pending_data = request.session.get(PENDING_SUBMISSION_SESSION_ATTR, None)

    if pending_data and (user.email_isvalid or pending_data["type"] not in settings.REQUIRE_EMAIL_VALIDATION_TO):
        submission_time = pending_data["time"]
        if submission_time < datetime.datetime.now() - datetime.timedelta(
            minutes=int(settings.HOLD_PENDING_POSTS_MINUTES)
        ):
            del request.session[PENDING_SUBMISSION_SESSION_ATTR]
        elif submission_time < datetime.datetime.now() - datetime.timedelta(
            minutes=int(settings.WARN_PENDING_POSTS_MINUTES)
        ):
            user.message_set.create(
                message=(_("You have a %s pending submission.") % pending_data["data_name"])
                + " %s, %s, %s"
                % (
                    html.hyperlink(reverse("manage_pending_data", kwargs={"action": _("save")}), _("save it")),
                    html.hyperlink(reverse("manage_pending_data", kwargs={"action": _("review")}), _("review")),
                    html.hyperlink(reverse("manage_pending_data", kwargs={"action": _("cancel")}), _("cancel")),
                )
            )
        else:
            return manage_pending_data(request, _("save"), forward)

    return HttpResponseRedirect(forward)
Пример #10
0
def create_user(request):
    if request.POST:
        form = CreateUserForm(request.POST)

        if form.is_valid():
            user_ = User(username=form.cleaned_data['username'], email=form.cleaned_data['email'])
            user_.set_password(form.cleaned_data['password1'])

            if not form.cleaned_data.get('validate_email', False):
                user_.email_isvalid = True

            user_.save()
            UserJoinsAction(user=user_).save()

            messages.info(request, _("New user created sucessfully. %s.") % html.hyperlink(
                    user_.get_profile_url(), _("See %s profile") % user_.username, target="_blank"))

            return HttpResponseRedirect(reverse("admin_tools", kwargs={'name': 'createuser'}))
    else:
        form = CreateUserForm()

    return ('osqaadmin/createuser.html', {
        'form': form,
    })
Пример #11
0
def create_user(request):
    if request.POST:
        form = CreateUserForm(request.POST)

        if form.is_valid():
            user_ = User(username=form.cleaned_data["username"], email=form.cleaned_data["email"])
            user_.set_password(form.cleaned_data["password1"])

            if not form.cleaned_data.get("validate_email", False):
                user_.email_isvalid = True

            user_.save()
            UserJoinsAction(user=user_).save()

            request.user.message_set.create(
                message=_("New user created sucessfully. %s.")
                % html.hyperlink(user_.get_profile_url(), _("See %s profile") % user_.username, target="_blank")
            )

            return HttpResponseRedirect(reverse("admin_tools", kwargs={"name": "createuser"}))
    else:
        form = CreateUserForm()

    return ("podporaadmin/createuser.html", {"form": form})
Пример #12
0
 def render(self, context):
     return html.buildtag('li',
         html.buildtag('span', self.span_label(context), **self.span_attrs(context)) + \
         html.hyperlink(self.url(context), self.label(context), **self.a_attrs(context)),
         **{'class': 'item'})
Пример #13
0
 def render(self, context):
     return "%s %s %s" % (self.pre_code(context),
         html.hyperlink(self.url(context), self.text(context), **self.attrs(context)),
         self.post_code(context))
Пример #14
0
 def hyperlink(self, url, title, **attrs):
     return html.hyperlink(url, title, **attrs)
Пример #15
0
 def hyperlink(self, url, title, **attrs):
     return html.hyperlink(url, title, **attrs)
Пример #16
0
def get_manage_link(action, title):
    result = django_settings.APP_URL + reverse("manage_pending_data", prefix="/", kwargs={"action": _(action)})
    return html.hyperlink(result, _(title))