def signature_endpoint(request): user = request.user if not user.acl_cache['can_have_signature']: raise PermissionDenied( _("You don't have permission to change signature.")) if user.is_signature_locked: if user.signature_lock_user_message: extra = format_plaintext_for_html(user.signature_lock_user_message) else: extra = None return Response( { 'detail': _("Your signature is locked. You can't change it."), 'extra': extra }, status=403, ) if request.method == 'POST': return edit_signature(request, user) return get_signature_options(user)
def rank(request, rank_slug, page=0): rank = get_object_or_404(Rank.objects.filter(is_tab=True), slug=rank_slug) queryset = rank.user_set.select_related('rank').order_by('slug') page = paginate(queryset, page, settings.MISAGO_USERS_PER_PAGE, 4) paginator = pagination_dict(page) request.frontend_context['USERS'] = dict( results=UserSerializer(page.object_list, many=True).data, **paginator ) if rank.description: description = { 'plain': rank.description, 'html': format_plaintext_for_html(rank.description) } else: description = None template = "misago/userslists/rank.html" return render(request, template, { 'rank': rank, 'users': page.object_list, 'paginator': paginator })
def rank(request, slug, page=0): rank = get_object_or_404(Rank.objects.filter(is_tab=True), slug=slug) queryset = rank.user_set.select_related('rank').order_by('slug') if not request.user.is_staff: queryset = queryset.filter(is_active=True) page = paginate(queryset, page, settings.MISAGO_USERS_PER_PAGE, 4) data = pagination_dict(page) data.update({'results': UserSerializer(page.object_list, many=True).data}) request.frontend_context['USERS'] = data if rank.description: description = { 'plain': rank.description, 'html': format_plaintext_for_html(rank.description) } else: description = None template = "misago/userslists/rank.html" return render(request, template, { 'rank': rank, 'users': page.object_list, 'paginator': data })
def get_description(self, obj): if obj.description: return { 'plain': obj.description, 'html': format_plaintext_for_html(obj.description), } return None
def get_description(self, obj): if obj.description: return { 'plain': obj.description, 'html': format_plaintext_for_html(obj.description), } return None
def serialize_message(message): if message: return { 'plain': message, 'html': format_plaintext_for_html(message), } else: return None
def get_message(self, obj): if obj.user_message: message = obj.user_message elif obj.check_type == BAN_IP: message = _("Your IP address is banned.") else: message = _("You are banned.") return {'plain': message, 'html': format_plaintext_for_html(message)}
def test_format_plaintext_for_html(self): """format_plaintext_for_html correctly formats plaintext for html""" for plaintext, html in PLAINTEXT_FORMAT_CASES: output = format_plaintext_for_html(plaintext) assertion_message = """ format_plaintext_for_html failed to produce expected output: expected: %s return: %s """ % (html, output) self.assertEqual(output, html, assertion_message)
def test_format_plaintext_for_html(self): """format_plaintext_for_html correctly formats plaintext for html""" for plaintext, html in PLAINTEXT_FORMAT_CASES: output = format_plaintext_for_html(plaintext) assertion_message = """ format_plaintext_for_html failed to produce expected output: expected: %s return: %s """ % (html, output) self.assertEqual(output, html, assertion_message)
def get_message(self, obj): if obj.user_message: message = obj.user_message elif obj.check_type == BAN_IP: message = _("Your IP address is banned.") else: message = _("You are banned.") return { 'plain': message, 'html': format_plaintext_for_html(message) }
def get(self, request, *args, **kwargs): allow_browse_users_list(request.user) context_data = self.get_context_data(request, *args, **kwargs) sections = users_list.get_sections(request) context_data['pages'] = sections request.frontend_context['USERS_LISTS'] = [] for page in sections: page['reversed_link'] = reverse(page['link']) request.frontend_context['USERS_LISTS'].append({ 'name': six.text_type(page['name']), 'component': page['component'], }) active_rank = context_data.get('rank') for rank in Rank.objects.filter(is_tab=True).order_by('order'): context_data['pages'].append({ 'name': rank.name, 'reversed_link': reverse('misago:users-rank', kwargs={'slug': rank.slug}), 'is_active': active_rank.pk == rank.pk if active_rank else None }) if rank.description: description = { 'plain': rank.description, 'html': format_plaintext_for_html(rank.description) } else: description = None request.frontend_context['USERS_LISTS'].append({ 'id': rank.pk, 'name': rank.name, 'slug': rank.slug, 'css_class': rank.css_class, 'description': description, 'component': 'rank', }) active_section = list(filter(lambda x: x['is_active'], sections))[0] context_data['active_section'] = active_section return render(request, self.template_name, context_data)
def render(request, template, context): request.frontend_context['USERS_LISTS'] = [] context['pages'] = users_list.get_sections(request) for page in context['pages']: page['reversed_link'] = reverse(page['link']) request.frontend_context['USERS_LISTS'].append({ 'name': six.text_type(page['name']), 'component': page['component'], }) active_rank = context.get('rank') for rank in Rank.objects.filter(is_tab=True).order_by('order'): context['pages'].append({ 'name': rank.name, 'reversed_link': reverse('misago:users-rank', kwargs={'slug': rank.slug}), 'is_active': active_rank.pk == rank.pk if active_rank else None }) if rank.description: description = { 'plain': rank.description, 'html': format_plaintext_for_html(rank.description) } else: description = None request.frontend_context['USERS_LISTS'].append({ 'id': rank.pk, 'name': rank.name, 'slug': rank.slug, 'css_class': rank.css_class, 'description': description, 'component': 'rank', }) for page in context['pages']: if page['is_active']: context['active_page'] = page break return django_render(request, template, context)
def render(request, template, context): request.frontend_context['USERS_LISTS'] = [] context['pages'] = users_list.get_sections(request) for page in context['pages']: page['reversed_link'] = reverse(page['link']) request.frontend_context['USERS_LISTS'].append({ 'name': six.text_type(page['name']), 'component': page['component'], }) active_rank = context.get('rank') for rank in Rank.objects.filter(is_tab=True).order_by('order'): context['pages'].append({ 'name': rank.name, 'reversed_link': reverse('misago:users-rank', kwargs={ 'slug': rank.slug }), 'is_active': active_rank.pk == rank.pk if active_rank else None }) if rank.description: description = { 'plain': rank.description, 'html': format_plaintext_for_html(rank.description) } else: description = None request.frontend_context['USERS_LISTS'].append({ 'id': rank.pk, 'name': rank.name, 'slug': rank.slug, 'css_class': rank.css_class, 'description': description, 'component': 'rank', }) for page in context['pages']: if page['is_active']: context['active_page'] = page break return django_render(request, template, context)
def avatar_endpoint(request, pk=None): if request.user.is_avatar_locked: if request.user.avatar_lock_user_message: reason = format_plaintext_for_html( request.user.avatar_lock_user_message) else: reason = None return Response({ 'detail': _("Your avatar is locked. You can't change it."), 'reason': reason }, status=status.HTTP_403_FORBIDDEN) avatar_options = get_avatar_options(request.user) if request.method == 'POST': return avatar_post(avatar_options, request.user, request.data) else: return Response(avatar_options)
def avatar_endpoint(request, pk=None): if request.user.is_avatar_locked: if request.user.avatar_lock_user_message: reason = format_plaintext_for_html( request.user.avatar_lock_user_message) else: reason = None return Response( { 'detail': _("Your avatar is locked. You can't change it."), 'reason': reason }, status=status.HTTP_403_FORBIDDEN) avatar_options = get_avatar_options(request.user) if request.method == 'POST': return avatar_post(avatar_options, request.user, request.data) else: return Response(avatar_options)
def signature_endpoint(request): user = request.user if not user.acl_cache['can_have_signature']: raise PermissionDenied(_("You don't have permission to change signature.")) if user.is_signature_locked: if user.signature_lock_user_message: reason = format_plaintext_for_html(user.signature_lock_user_message) else: reason = None return Response({ 'detail': _("Your signature is locked. You can't change it."), 'reason': reason }, status=status.HTTP_403_FORBIDDEN) if request.method == 'POST': return edit_signature(request, user) return get_signature_options(user)
def get_description(self, obj): if obj.description: return format_plaintext_for_html(obj.description) else: return ''
def get_value_display_data(self, request, user, value): return { 'html': format_plaintext_for_html(value), }
def get_value_display_data(self, request, user, value): return { 'html': format_plaintext_for_html(value), }
def get_description(self, obj): if obj.description: return format_plaintext_for_html(obj.description) else: return ''