Example #1
0
File: views.py Project: xyzz/Misago
def signature(request):
    # Intercept all requests if we can't use signature
    if not request.acl.usercp.can_use_signature():
        return error403(request)
    if request.user.signature_ban:
        return request.theme.render_to_response('usercp/signature_banned.html',
                                                context_instance=RequestContext(request, {
                                                 'tab': 'signature',
                                                 }));

    siggy_text = ''
    message = request.messages.get_message('usercp_signature')
    if request.method == 'POST':
        form = SignatureForm(request.POST, request=request, initial={'signature': request.user.signature})
        if form.is_valid():
            request.user.signature = form.cleaned_data['signature']
            if request.user.signature:
                request.user.signature_preparsed = signature_markdown(request.acl,
                                                                      request.user.signature)
            else:
                request.user.signature_preparsed = None
            request.user.save(force_update=True)
            request.messages.set_flash(Message(_("Your signature has been changed.")), 'success', 'usercp_signature')
            return redirect(reverse('usercp_signature'))
        else:
            message = Message(form.non_field_errors()[0], 'error')
    else:
        form = SignatureForm(request=request, initial={'signature': request.user.signature})

    return request.theme.render_to_response('usercp/signature.html',
                                            context_instance=RequestContext(request, {
                                             'message': message,
                                             'tab': 'signature',
                                             'form': FormLayout(form),
                                             }));
Example #2
0
def signature(request):
    # Intercept all requests if we can't use signature
    if not request.acl.usercp.can_use_signature():
        return error403(request)
    if request.user.signature_ban:
        return render_to_response('usercp/signature_banned.html',
                                  context_instance=RequestContext(request, {
                                      'tab': 'signature'}));

    siggy_text = ''
    message = request.messages.get_message('usercp_signature')
    if request.method == 'POST':
        form = SignatureForm(request.POST, request=request, initial={'signature': request.user.signature})
        if form.is_valid():
            request.user.signature = form.cleaned_data['signature']
            if request.user.signature:
                request.user.signature_preparsed = signature_markdown(request.acl,
                                                                      request.user.signature)
            else:
                request.user.signature_preparsed = None
            request.user.save(force_update=True)
            messages.success(request, _("Your signature has been changed."), 'usercp_signature')
            return redirect(reverse('usercp_signature'))
        else:
            message = Message(form.non_field_errors()[0], messages.ERROR)
    else:
        form = SignatureForm(request=request, initial={'signature': request.user.signature})

    return render_to_response('usercp/signature.html',
                              context_instance=RequestContext(request, {
                                  'message': message,
                                  'tab': 'signature',
                                  'form': form}));
Example #3
0
    def submit_form(self, form, target):
        target.title = form.cleaned_data['title']
        target.rank = form.cleaned_data['rank']
        target.avatar_ban_reason_user = form.cleaned_data['avatar_ban_reason_user']
        target.avatar_ban_reason_admin = form.cleaned_data['avatar_ban_reason_admin']
        target.signature_ban = form.cleaned_data['signature_ban']
        target.signature_ban_reason_user = form.cleaned_data['signature_ban_reason_user']
        target.signature_ban_reason_admin = form.cleaned_data['signature_ban_reason_admin']

        # Sync username?
        if target.username != self.original_name:
            target.sync_username()

        # Change email?
        if form.cleaned_data.get('email'):
            target.set_email(form.cleaned_data.get('email'))

        # Change password?
        if form.cleaned_data.get('new_password'):
            target.set_password(form.cleaned_data.get('new_password'))

        # Do signature mumbo-jumbo
        if form.cleaned_data['signature']:
            target.signature = form.cleaned_data['signature']
            target.signature_preparsed = signature_markdown(target.acl(),
                                                            form.cleaned_data['signature'])
        else:
            target.signature = None
            target.signature_preparsed = None

        # Do avatar ban mumbo-jumbo
        if target.avatar_ban != form.cleaned_data['avatar_ban']:
            if form.cleaned_data['avatar_ban']:
                target.lock_avatar()
            else:
                target.default_avatar()
        target.avatar_ban = form.cleaned_data['avatar_ban']

        # Set custom avatar
        if form.cleaned_data['avatar_custom']:
            target.delete_avatar()
            target.avatar_image = form.cleaned_data['avatar_custom']
            target.avatar_type = 'gallery'

        # Update user roles
        if self.request.user.is_god():
            target.roles.clear()
        else:
            target.roles.remove(*target.roles.filter(protected=False))
        for role in form.cleaned_data['roles']:
            target.roles.add(role)

        target.make_acl_key(True)
        target.save(force_update=True)
        return target, Message(_('Changes in user\'s "%(name)s" account have been saved.') % {'name': self.original_name}, messages.SUCCESS)
Example #4
0
File: views.py Project: xyzz/Misago
    def submit_form(self, form, target):
        target.title = form.cleaned_data['title']
        target.rank = form.cleaned_data['rank']
        target.avatar_ban_reason_user = form.cleaned_data[
            'avatar_ban_reason_user']
        target.avatar_ban_reason_admin = form.cleaned_data[
            'avatar_ban_reason_admin']
        target.signature_ban = form.cleaned_data['signature_ban']
        target.signature_ban_reason_user = form.cleaned_data[
            'signature_ban_reason_user']
        target.signature_ban_reason_admin = form.cleaned_data[
            'signature_ban_reason_admin']

        # Sync username?
        if target.username != self.original_name:
            target.sync_username()

        # Do signature mumbo-jumbo
        if form.cleaned_data['signature']:
            target.signature = form.cleaned_data['signature']
            target.signature_preparsed = signature_markdown(
                target.acl(self.request), form.cleaned_data['signature'])
        else:
            target.signature = None
            target.signature_preparsed = None

        # Do avatar ban mumbo-jumbo
        if target.avatar_ban != form.cleaned_data['avatar_ban']:
            if form.cleaned_data['avatar_ban']:
                target.lock_avatar()
            else:
                target.default_avatar(self.request.settings)
        target.avatar_ban = form.cleaned_data['avatar_ban']

        # Set custom avatar
        if form.cleaned_data['avatar_custom']:
            target.delete_avatar()
            target.avatar_image = form.cleaned_data['avatar_custom']
            target.avatar_type = 'gallery'

        # Update user roles
        if self.request.user.is_god():
            target.roles.clear()
        else:
            target.roles.remove(*target.roles.filter(protected=False))
        for role in form.cleaned_data['roles']:
            target.roles.add(role)

        target.make_acl_key(True)
        target.save(force_update=True)
        return target, Message(
            _('Changes in user\'s "%(name)s" account have been saved.') %
            {'name': self.original_name}, 'success')