Update apps to new ACL app changes
This commit is contained in:
@@ -5,7 +5,8 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from actstream import registry
|
||||
|
||||
from acls.api import class_permissions
|
||||
from acls.permissions import acls_view_acl, acls_edit_acl
|
||||
from acls.links import link_acl_list
|
||||
from acls.permissions import permission_acl_edit, permission_acl_view
|
||||
from common import (
|
||||
MayanAppConfig, MissingItem, menu_facet, menu_front_page, menu_object,
|
||||
menu_secondary, menu_setup, menu_sidebar, menu_multi_item
|
||||
@@ -27,12 +28,11 @@ from statistics.classes import StatisticNamespace
|
||||
|
||||
from .handlers import create_default_document_type
|
||||
from .links import (
|
||||
link_clear_image_cache, link_document_acl_list,
|
||||
link_document_clear_transformations, link_document_delete,
|
||||
link_document_document_type_edit, link_document_events_view,
|
||||
link_document_multiple_document_type_edit, link_document_download,
|
||||
link_document_edit, link_document_list, link_document_list_recent,
|
||||
link_document_multiple_delete,
|
||||
link_clear_image_cache, link_document_clear_transformations,
|
||||
link_document_delete, link_document_document_type_edit,
|
||||
link_document_events_view, link_document_multiple_document_type_edit,
|
||||
link_document_download, link_document_edit, link_document_list,
|
||||
link_document_list_recent, link_document_multiple_delete,
|
||||
link_document_multiple_clear_transformations,
|
||||
link_document_multiple_download, link_document_multiple_update_page_count,
|
||||
link_document_page_navigation_first, link_document_page_navigation_last,
|
||||
@@ -82,10 +82,10 @@ class DocumentsApp(MayanAppConfig):
|
||||
])
|
||||
|
||||
class_permissions(Document, [
|
||||
acls_view_acl, acls_edit_acl, permission_document_delete,
|
||||
permission_document_download, permission_document_edit,
|
||||
permission_document_new_version, permission_document_print,
|
||||
permission_document_properties_edit,
|
||||
permission_acl_edit, permission_acl_view,
|
||||
permission_document_delete, permission_document_download,
|
||||
permission_document_edit, permission_document_new_version,
|
||||
permission_document_print, permission_document_properties_edit,
|
||||
permission_document_version_revert, permission_document_view,
|
||||
permission_events_view, permission_transformation_create,
|
||||
permission_transformation_delete, permission_transformation_edit,
|
||||
@@ -105,7 +105,7 @@ class DocumentsApp(MayanAppConfig):
|
||||
menu_object.bind_links(links=[link_document_edit, link_document_document_type_edit, link_document_print, link_document_delete, link_document_download, link_document_clear_transformations, link_document_update_page_count], sources=[Document])
|
||||
|
||||
# Document facet links
|
||||
menu_facet.bind_links(links=[link_document_acl_list], sources=[Document])
|
||||
menu_facet.bind_links(links=[link_acl_list], sources=[Document])
|
||||
menu_facet.bind_links(links=[link_document_preview], sources=[Document], position=0)
|
||||
menu_facet.bind_links(links=[link_document_properties], sources=[Document], position=2)
|
||||
menu_facet.bind_links(links=[link_document_events_view, link_document_version_list], sources=[Document], position=2)
|
||||
|
||||
@@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.permissions import acls_view_acl
|
||||
from converter.permissions import permission_transformation_delete
|
||||
from events.permissions import permission_events_view
|
||||
from navigation import Link
|
||||
@@ -39,7 +38,6 @@ def is_min_zoom(context):
|
||||
|
||||
|
||||
# Facet
|
||||
link_document_acl_list = Link(permissions=[acls_view_acl], text=_('ACLs'), view='documents:document_acl_list', args='object.pk')
|
||||
link_document_events_view = Link(permissions=[permission_events_view], text=_('Events'), view='events:events_for_object', args=['"documents"', '"document"', 'object.id'])
|
||||
link_document_preview = Link(permissions=[permission_document_view], text=_('Preview'), view='documents:document_preview', args='object.id')
|
||||
link_document_properties = Link(permissions=[permission_document_view], text=_('Properties'), view='documents:document_properties', args='object.id')
|
||||
|
||||
@@ -30,8 +30,6 @@ urlpatterns = patterns(
|
||||
url(r'^(?P<document_id>\d+)/reset_page_count/$', 'document_update_page_count', name='document_update_page_count'),
|
||||
url(r'^multiple/reset_page_count/$', 'document_multiple_update_page_count', name='document_multiple_update_page_count'),
|
||||
|
||||
url(r'^(?P<document_id>\d+)/acls/$', 'document_acl_list', name='document_acl_list'),
|
||||
|
||||
url(r'^(?P<document_id>\d+)/display/$', 'get_document_image', {'size': setting_display_size.value}, 'document_display'),
|
||||
url(r'^(?P<document_id>\d+)/display/print/$', 'get_document_image', {'size': setting_print_size.value}, 'document_display_print'),
|
||||
|
||||
@@ -43,7 +41,6 @@ urlpatterns = patterns(
|
||||
url(r'^document/version/(?P<document_version_pk>\d+)/download/$', 'document_download', name='document_version_download'),
|
||||
url(r'^document/version/(?P<document_version_pk>\d+)/revert/$', 'document_version_revert', name='document_version_revert'),
|
||||
|
||||
url(r'^(?P<document_id>\d+)/acls/$', 'document_acl_list', name='document_acl_list'),
|
||||
url(r'^(?P<pk>\d+)/pages/all/$', DocumentPageListView.as_view(), name='document_pages'),
|
||||
|
||||
url(r'^multiple/clear_transformations/$', 'document_multiple_clear_transformations', name='document_multiple_clear_transformations'),
|
||||
|
||||
@@ -14,8 +14,6 @@ from django.template import RequestContext
|
||||
from django.utils.http import urlencode
|
||||
from django.utils.translation import ugettext_lazy as _, ungettext
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from acls.views import acl_list_for
|
||||
from common.compressed_files import CompressedFile
|
||||
from common.utils import encapsulate, pretty_size
|
||||
from common.views import ParentChildListView, SingleObjectListView
|
||||
@@ -1083,14 +1081,3 @@ def document_version_revert(request, document_version_pk):
|
||||
'title': _('Are you sure you wish to revert to this version?'),
|
||||
'message': _('All later version after this one will be deleted too.'),
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_acl_list(request, document_id):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
return acl_list_for(
|
||||
request,
|
||||
document,
|
||||
extra_context={
|
||||
'object': document,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -3,7 +3,8 @@ from __future__ import unicode_literals
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.api import class_permissions
|
||||
from acls.permissions import acls_edit_acl, acls_view_acl
|
||||
from acls.links import link_acl_list
|
||||
from acls.permissions import permission_acl_edit, permission_acl_view
|
||||
from common import (
|
||||
MayanAppConfig, menu_facet, menu_main, menu_object, menu_secondary,
|
||||
menu_sidebar, menu_multi_item
|
||||
@@ -15,7 +16,7 @@ from rest_api.classes import APIEndPoint
|
||||
|
||||
from .links import (
|
||||
link_folder_list,
|
||||
link_document_folder_list, link_folder_acl_list, link_folder_add_document,
|
||||
link_document_folder_list, link_folder_add_document,
|
||||
link_folder_add_multiple_documents, link_folder_create,
|
||||
link_folder_delete, link_folder_document_multiple_remove,
|
||||
link_folder_edit, link_folder_view
|
||||
@@ -42,7 +43,7 @@ class FoldersApp(MayanAppConfig):
|
||||
])
|
||||
|
||||
class_permissions(Folder, [
|
||||
acls_edit_acl, acls_view_acl, permission_folder_delete,
|
||||
permission_acl_edit, permission_acl_view, permission_folder_delete,
|
||||
permission_folder_edit, permission_folder_view
|
||||
])
|
||||
|
||||
@@ -50,7 +51,7 @@ class FoldersApp(MayanAppConfig):
|
||||
menu_main.bind_links(links=[link_folder_list])
|
||||
menu_multi_item.bind_links(links=[link_folder_add_multiple_documents], sources=[Document])
|
||||
menu_multi_item.bind_links(links=[link_folder_document_multiple_remove], sources=[CombinedSource(obj=Document, view='folders:folder_view')])
|
||||
menu_object.bind_links(links=[link_folder_view, link_folder_edit, link_folder_acl_list, link_folder_delete], sources=[Folder])
|
||||
menu_object.bind_links(links=[link_folder_view, link_folder_edit, link_acl_list, link_folder_delete], sources=[Folder])
|
||||
menu_secondary.bind_links(links=[link_folder_list, link_folder_create], sources=[Folder, 'folders:folder_list', 'folders:folder_create'])
|
||||
menu_sidebar.bind_links(links=[link_folder_add_document], sources=['folders:document_folder_list', 'folders:folder_add_document'])
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.permissions import acls_view_acl
|
||||
from documents.permissions import permission_document_view
|
||||
from navigation import Link
|
||||
|
||||
@@ -13,7 +12,6 @@ from .permissions import (
|
||||
)
|
||||
|
||||
link_document_folder_list = Link(permissions=[permission_document_view], text=_('Folders'), view='folders:document_folder_list', args='object.pk')
|
||||
link_folder_acl_list = Link(permissions=[acls_view_acl], text=_('ACLs'), view='folders:folder_acl_list', args='object.pk')
|
||||
link_folder_add_document = Link(permissions=[permission_folder_add_document], text=_('Add to a folder'), view='folders:folder_add_document', args='object.pk')
|
||||
link_folder_add_multiple_documents = Link(text=_('Add to folder'), view='folders:folder_add_multiple_documents')
|
||||
link_folder_create = Link(permissions=[permission_folder_create], text=_('Create folder'), view='folders:folder_create')
|
||||
|
||||
@@ -20,8 +20,6 @@ urlpatterns = patterns(
|
||||
url(r'^document/(?P<document_id>\d+)/folder/add/$', 'folder_add_document', name='folder_add_document'),
|
||||
url(r'^document/multiple/folder/add/$', 'folder_add_multiple_documents', name='folder_add_multiple_documents'),
|
||||
url(r'^document/(?P<document_id>\d+)/folder/list/$', 'document_folder_list', name='document_folder_list'),
|
||||
|
||||
url(r'^(?P<folder_pk>\d+)/acl/list/$', 'folder_acl_list', name='folder_acl_list'),
|
||||
)
|
||||
|
||||
api_urls = patterns(
|
||||
|
||||
@@ -11,8 +11,6 @@ from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.translation import ugettext_lazy as _, ungettext
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from acls.views import acl_list_for
|
||||
from common.views import SingleObjectListView
|
||||
from documents.permissions import permission_document_view
|
||||
from documents.models import Document
|
||||
@@ -285,19 +283,6 @@ def folder_document_multiple_remove(request, folder_id):
|
||||
return folder_document_remove(request, folder_id, document_id_list=request.GET.get('id_list', []))
|
||||
|
||||
|
||||
def folder_acl_list(request, folder_pk):
|
||||
folder = get_object_or_404(Folder, pk=folder_pk)
|
||||
logger.debug('folder: %s', folder)
|
||||
|
||||
return acl_list_for(
|
||||
request,
|
||||
folder,
|
||||
extra_context={
|
||||
'object': folder,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def folder_add_multiple_documents(request):
|
||||
return folder_add_document(
|
||||
request, document_id_list=request.GET.get('id_list', [])
|
||||
|
||||
@@ -3,7 +3,8 @@ from __future__ import unicode_literals
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.api import class_permissions
|
||||
from acls.permissions import acls_edit_acl, acls_view_acl
|
||||
from acls.links import link_acl_list
|
||||
from acls.permissions import permission_acl_edit, permission_acl_view
|
||||
from common import (
|
||||
MayanAppConfig, menu_facet, menu_object, menu_secondary, menu_setup,
|
||||
menu_sidebar
|
||||
@@ -12,13 +13,12 @@ from documents.models import Document
|
||||
|
||||
from .classes import ResolvedSmartLink
|
||||
from .links import (
|
||||
link_smart_link_acl_list, link_smart_link_create,
|
||||
link_smart_link_condition_create, link_smart_link_condition_delete,
|
||||
link_smart_link_condition_edit, link_smart_link_condition_list,
|
||||
link_smart_link_delete, link_smart_link_document_types,
|
||||
link_smart_link_edit, link_smart_link_instance_view,
|
||||
link_smart_link_instances_for_document, link_smart_link_list,
|
||||
link_smart_link_setup
|
||||
link_smart_link_create, link_smart_link_condition_create,
|
||||
link_smart_link_condition_delete, link_smart_link_condition_edit,
|
||||
link_smart_link_condition_list, link_smart_link_delete,
|
||||
link_smart_link_document_types, link_smart_link_edit,
|
||||
link_smart_link_instance_view, link_smart_link_instances_for_document,
|
||||
link_smart_link_list, link_smart_link_setup
|
||||
)
|
||||
from .models import SmartLink, SmartLinkCondition
|
||||
from .permissions import (
|
||||
@@ -35,13 +35,14 @@ class LinkingApp(MayanAppConfig):
|
||||
super(LinkingApp, self).ready()
|
||||
|
||||
class_permissions(SmartLink, [
|
||||
acls_edit_acl, acls_view_acl, permission_smart_link_delete,
|
||||
permission_smart_link_edit, permission_smart_link_view
|
||||
permission_acl_edit, permission_acl_view,
|
||||
permission_smart_link_delete, permission_smart_link_edit,
|
||||
permission_smart_link_view
|
||||
])
|
||||
|
||||
menu_facet.bind_links(links=[link_smart_link_instances_for_document], sources=[Document])
|
||||
menu_object.bind_links(links=[link_smart_link_condition_edit, link_smart_link_condition_delete], sources=[SmartLinkCondition])
|
||||
menu_object.bind_links(links=[link_smart_link_edit, link_smart_link_document_types, link_smart_link_condition_list, link_smart_link_acl_list, link_smart_link_delete], sources=[SmartLink])
|
||||
menu_object.bind_links(links=[link_smart_link_edit, link_smart_link_document_types, link_smart_link_condition_list, link_acl_list, link_smart_link_delete], sources=[SmartLink])
|
||||
menu_object.bind_links(links=[link_smart_link_instance_view], sources=[ResolvedSmartLink])
|
||||
menu_secondary.bind_links(links=[link_smart_link_list, link_smart_link_create], sources=[SmartLink, 'linking:smart_link_list', 'linking:smart_link_create'])
|
||||
menu_setup.bind_links(links=[link_smart_link_setup])
|
||||
|
||||
@@ -2,7 +2,6 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.permissions import acls_view_acl
|
||||
from documents.permissions import permission_document_view
|
||||
from navigation import Link
|
||||
|
||||
@@ -11,7 +10,6 @@ from .permissions import (
|
||||
permission_smart_link_edit, permission_smart_link_view
|
||||
)
|
||||
|
||||
link_smart_link_acl_list = Link(permissions=[acls_view_acl], text=_('ACLs'), view='linking:smart_link_acl_list', args='object.pk')
|
||||
link_smart_link_condition_create = Link(permissions=[permission_smart_link_edit], text=_('Create condition'), view='linking:smart_link_condition_create', args='object.pk')
|
||||
link_smart_link_condition_delete = Link(permissions=[permission_smart_link_edit], tags='dangerous', text=_('Delete'), view='linking:smart_link_condition_delete', args='resolved_object.pk')
|
||||
link_smart_link_condition_edit = Link(permissions=[permission_smart_link_edit], text=_('Edit'), view='linking:smart_link_condition_edit', args='resolved_object.pk')
|
||||
|
||||
@@ -19,6 +19,4 @@ urlpatterns = patterns(
|
||||
url(r'^setup/(?P<smart_link_pk>\d+)/condition/create/$', 'smart_link_condition_create', name='smart_link_condition_create'),
|
||||
url(r'^setup/smart_link/condition/(?P<smart_link_condition_pk>\d+)/edit/$', 'smart_link_condition_edit', name='smart_link_condition_edit'),
|
||||
url(r'^setup/smart_link/condition/(?P<smart_link_condition_pk>\d+)/delete/$', 'smart_link_condition_delete', name='smart_link_condition_delete'),
|
||||
|
||||
url(r'^(?P<smart_link_pk>\d+)/acl/list/$', 'smart_link_acl_list', name='smart_link_acl_list'),
|
||||
)
|
||||
|
||||
@@ -11,8 +11,6 @@ from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from acls.views import acl_list_for
|
||||
from common.utils import encapsulate
|
||||
from common.views import AssignRemoveView
|
||||
from common.widgets import two_state_template
|
||||
@@ -336,17 +334,3 @@ def smart_link_condition_delete(request, smart_link_condition_pk):
|
||||
'previous': previous,
|
||||
'title': _('Are you sure you wish to delete smart link condition: "%s"?') % smart_link_condition,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def smart_link_acl_list(request, smart_link_pk):
|
||||
smart_link = get_object_or_404(SmartLink, pk=smart_link_pk)
|
||||
logger.debug('smart_link: %s', smart_link)
|
||||
|
||||
return acl_list_for(
|
||||
request,
|
||||
smart_link,
|
||||
extra_context={
|
||||
'object': smart_link,
|
||||
'smart_link': smart_link,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -3,6 +3,8 @@ from __future__ import unicode_literals
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.api import class_permissions
|
||||
from acls.links import link_acl_list
|
||||
from acls.permissions import permission_acl_edit, permission_acl_view
|
||||
from common import (
|
||||
MayanAppConfig, menu_facet, menu_secondary, menu_object, menu_main,
|
||||
menu_multi_item, menu_sidebar
|
||||
@@ -15,9 +17,9 @@ from rest_api.classes import APIEndPoint
|
||||
|
||||
from .links import (
|
||||
link_multiple_documents_attach_tag, link_multiple_documents_tag_remove,
|
||||
link_single_document_multiple_tag_remove, link_tag_acl_list,
|
||||
link_tag_attach, link_tag_create, link_tag_delete, link_tag_document_list,
|
||||
link_tag_edit, link_tag_list, link_tag_multiple_delete, link_tag_tagged_item_list
|
||||
link_single_document_multiple_tag_remove, link_tag_attach, link_tag_create,
|
||||
link_tag_delete, link_tag_document_list, link_tag_edit, link_tag_list,
|
||||
link_tag_multiple_delete, link_tag_tagged_item_list
|
||||
)
|
||||
from .models import Tag
|
||||
from .permissions import (
|
||||
@@ -45,7 +47,8 @@ class TagsApp(MayanAppConfig):
|
||||
permission_tag_attach, permission_tag_remove,
|
||||
])
|
||||
class_permissions(Tag, [
|
||||
permission_tag_delete, permission_tag_edit, permission_tag_view,
|
||||
permission_acl_edit, permission_acl_view, permission_tag_delete,
|
||||
permission_tag_edit, permission_tag_view,
|
||||
])
|
||||
|
||||
document_search.add_model_field(field='tags__label', label=_('Tags'))
|
||||
@@ -55,6 +58,6 @@ class TagsApp(MayanAppConfig):
|
||||
menu_multi_item.bind_links(links=[link_multiple_documents_attach_tag, link_multiple_documents_tag_remove], sources=[Document])
|
||||
menu_multi_item.bind_links(links=[link_tag_multiple_delete], sources=[Tag])
|
||||
menu_multi_item.bind_links(links=[link_single_document_multiple_tag_remove], sources=[CombinedSource(obj=Tag, view='tags:document_tags')])
|
||||
menu_object.bind_links(links=[link_tag_tagged_item_list, link_tag_edit, link_tag_acl_list, link_tag_delete], sources=[Tag])
|
||||
menu_object.bind_links(links=[link_tag_tagged_item_list, link_tag_edit, link_acl_list, link_tag_delete], sources=[Tag])
|
||||
menu_secondary.bind_links(links=[link_tag_list, link_tag_create], sources=[Tag, 'tags:tag_list', 'tags:tag_create'])
|
||||
menu_sidebar.bind_links(links=[link_tag_attach], sources=['tags:document_tags', 'tags:tag_remove', 'tags:tag_multiple_remove', 'tags:tag_attach'])
|
||||
|
||||
@@ -2,7 +2,6 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from acls.permissions import acls_view_acl
|
||||
from navigation import Link
|
||||
|
||||
from .permissions import (
|
||||
@@ -14,7 +13,6 @@ from .permissions import (
|
||||
link_multiple_documents_tag_remove = Link(text=_('Remove tag'), view='tags:multiple_documents_selection_tag_remove')
|
||||
link_multiple_documents_attach_tag = Link(text=_('Attach tag'), view='tags:multiple_documents_tag_attach')
|
||||
link_single_document_multiple_tag_remove = Link(permissions=[permission_tag_remove], text=_('remove tags'), view='tags:single_document_multiple_tag_remove', args='document.id')
|
||||
link_tag_acl_list = Link(permissions=[acls_view_acl], text=_('ACLs'), view='tags:tag_acl_list', args='object.pk')
|
||||
link_tag_attach = Link(permissions=[permission_tag_attach], text=_('Attach tag'), view='tags:tag_attach', args='object.pk')
|
||||
link_tag_create = Link(permissions=[permission_tag_create], text=_('Create new tag'), view='tags:tag_create')
|
||||
link_tag_delete = Link(permissions=[permission_tag_delete], tags='dangerous', text=_('Delete'), view='tags:tag_delete', args='object.id')
|
||||
|
||||
@@ -24,8 +24,6 @@ urlpatterns = patterns(
|
||||
url(r'^selection/attach/document/multiple/$', 'tag_multiple_attach', name='multiple_documents_tag_attach'),
|
||||
|
||||
url(r'^for/document/(?P<document_id>\d+)/$', 'document_tags', name='document_tags'),
|
||||
|
||||
url(r'^(?P<tag_pk>\d+)/acl/list/$', 'tag_acl_list', name='tag_acl_list'),
|
||||
)
|
||||
|
||||
api_urls = patterns(
|
||||
|
||||
@@ -11,8 +11,6 @@ from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.translation import ugettext_lazy as _, ungettext
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from acls.views import acl_list_for
|
||||
from documents.models import Document
|
||||
from documents.views import DocumentListView
|
||||
from documents.permissions import permission_document_view
|
||||
@@ -335,16 +333,3 @@ def single_document_multiple_tag_remove(request, document_id):
|
||||
|
||||
def multiple_documents_selection_tag_remove(request):
|
||||
return tag_remove(request, document_id_list=request.GET.get('id_list', []))
|
||||
|
||||
|
||||
def tag_acl_list(request, tag_pk):
|
||||
tag = get_object_or_404(Tag, pk=tag_pk)
|
||||
logger.debug('tag: %s', tag)
|
||||
|
||||
return acl_list_for(
|
||||
request,
|
||||
tag,
|
||||
extra_context={
|
||||
'object': tag,
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user