Esempio n. 1
0
Created on 24 abr. 2020
@author: julio

Copyright (C) 2020  Julio Santa Cruz <*****@*****.**>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

'''

from django.utils.translation import ugettext_lazy as _
from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Barcodes'), name='mayan_barcodes')

permission_barcodes_view = namespace.add_permission(
    label=_('View the barcodes found in documents'), name='barcodes_view')
permission_barcodes_setup = namespace.add_permission(
    label=_('Setup barcode scan'), name='barcodes_setup')
Esempio n. 2
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Task manager'), name='task_manager')

permission_task_view = namespace.add_permission(
    label=_('View tasks'), name='task_view'
)
Esempio n. 3
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Converter'), name='converter')

permission_asset_create = namespace.add_permission(
    label=_('Create new assets'), name='asset_create')
permission_asset_delete = namespace.add_permission(label=_('Delete assets'),
                                                   name='asset_delete')
permission_asset_edit = namespace.add_permission(label=_('Edit assets'),
                                                 name='asset_edit')
permission_asset_view = namespace.add_permission(
    label=_('View existing assets'), name='asset_view')

permission_transformation_create = namespace.add_permission(
    label=_('Create new transformations'), name='transformation_create')
permission_transformation_delete = namespace.add_permission(
    label=_('Delete transformations'), name='transformation_delete')
permission_transformation_edit = namespace.add_permission(
    label=_('Edit transformations'), name='transformation_edit')
permission_transformation_view = namespace.add_permission(
    label=_('View existing transformations'), name='transformation_view')
Esempio n. 4
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Documents'), name='documents')

permission_document_create = namespace.add_permission(
    label=_('Create documents'), name='document_create')
permission_document_delete = namespace.add_permission(
    label=_('Delete documents'), name='document_delete')
permission_document_trash = namespace.add_permission(
    label=_('Trash documents'), name='document_trash')
permission_document_download = namespace.add_permission(
    label=_('Download documents'), name='document_download')
permission_document_edit = namespace.add_permission(label=_('Edit documents'),
                                                    name='document_edit')
permission_document_new_version = namespace.add_permission(
    label=_('Create new document versions'), name='document_new_version')
permission_document_properties_edit = namespace.add_permission(
    label=_('Edit document properties'), name='document_properties_edit')
permission_document_print = namespace.add_permission(
    label=_('Print documents'), name='document_print')
permission_document_restore = namespace.add_permission(
    label=_('Restore trashed document'), name='document_restore')
permission_document_tools = namespace.add_permission(
    label=_('Execute document modifying tools'), name='document_tools')
permission_document_version_revert = namespace.add_permission(
    label=_('Revert documents to a previous version'),
    name='document_version_revert')
permission_document_version_view = namespace.add_permission(
    label=_('View documents\' versions list'), name='document_version_view')
Esempio n. 5
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('File caching'), name='file_caching')

permission_cache_purge = namespace.add_permission(
    label=_('Purge a file cache'), name='file_caching_cache_purge')
permission_cache_view = namespace.add_permission(
    label=_('View a file cache'), name='file_caching_cache_view')
Esempio n. 6
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Events'), name='events')

permission_events_view = namespace.add_permission(
    label=_('Access the events of an object'), name='events_view'
)
Esempio n. 7
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Web links'), name='web_links')

permission_web_link_create = namespace.add_permission(
    label=_('Create new web links'), name='web_link_create')
permission_web_link_delete = namespace.add_permission(
    label=_('Delete web links'), name='web_link_delete')
permission_web_link_edit = namespace.add_permission(label=_('Edit web links'),
                                                    name='web_link_edit')
permission_web_link_view = namespace.add_permission(
    label=_('View existing web links'), name='web_link_view')
permission_web_link_instance_view = namespace.add_permission(
    label=_('View web link instances'), name='web_link_instance_view')
Esempio n. 8
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('File metadata'), name='file_metadata')

permission_document_type_file_metadata_setup = namespace.add_permission(
    label=_('Change document type file metadata settings'),
    name='file_metadata_document_type_setup')
permission_file_metadata_submit = namespace.add_permission(
    label=_('Submit document for file metadata processing'),
    name='file_metadata_submit')
permission_file_metadata_view = namespace.add_permission(
    label=_('View file metadata'), name='file_metadata_view')
Esempio n. 9
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Templating'), name='templating')

permission_template_sandbox = namespace.add_permission(
    label=_('Use the template sandbox'), name='template_sandbox')
Esempio n. 10
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Logging'), name='logging')

permission_error_log_view = namespace.add_permission(label=_('View error log'),
                                                     name='error_log_view')
Esempio n. 11
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Mailing'), name='mailing')

permission_mailing_link = namespace.add_permission(
    label=_('Send document link via email'), name='mail_link')
permission_mailing_send_document = namespace.add_permission(
    label=_('Send document via email'), name='mail_document')
permission_user_mailer_create = namespace.add_permission(
    label=_('Create a mailing profile'), name='user_mailer_create')
permission_user_mailer_delete = namespace.add_permission(
    label=_('Delete a mailing profile'), name='user_mailer_delete')
permission_user_mailer_edit = namespace.add_permission(
    label=_('Edit a mailing profile'), name='user_mailer_edit')
permission_user_mailer_view = namespace.add_permission(
    label=_('View a mailing profile'), name='user_mailer_view')
permission_user_mailer_use = namespace.add_permission(
    label=_('Use a mailing profile'), name='user_mailer_use')
Esempio n. 12
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Tags'), name='tags')

permission_tag_create = namespace.add_permission(
    label=_('Create new tags'), name='tag_create'
)
permission_tag_delete = namespace.add_permission(
    label=_('Delete tags'), name='tag_delete'
)
permission_tag_view = namespace.add_permission(
    label=_('View tags'), name='tag_view'
)
permission_tag_edit = namespace.add_permission(
    label=_('Edit tags'), name='tag_edit'
)
permission_tag_attach = namespace.add_permission(
    label=_('Attach tags to documents'), name='tag_attach'
)
permission_tag_remove = namespace.add_permission(
    label=_('Remove tags from documents'), name='tag_remove'
)
Esempio n. 13
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('OCR'), name='ocr')

permission_ocr_document = namespace.add_permission(
    label=_('Submit documents for OCR'), name='ocr_document')
permission_ocr_content_view = namespace.add_permission(
    label=_('View the transcribed text from document'),
    name='ocr_content_view')
permission_document_type_ocr_setup = namespace.add_permission(
    label=_('Change document type OCR settings'),
    name='ocr_document_type_setup')
Esempio n. 14
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Comments'), name='comments')

permission_document_comment_create = namespace.add_permission(
    label=_('Create new comments'), name='comment_create')
permission_document_comment_delete = namespace.add_permission(
    label=_('Delete comments'), name='comment_delete')
permission_document_comment_edit = namespace.add_permission(
    label=_('Edit comments'), name='comment_edit')
permission_document_comment_view = namespace.add_permission(
    label=_('View comments'), name='comment_view')
Esempio n. 15
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Statistics'), name='statistics')

permission_statistics_view = namespace.add_permission(
    label=_('View statistics'), name='statistics_view')
Esempio n. 16
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('User management'),
                                name='user_management')

permission_group_create = namespace.add_permission(
    label=_('Create new groups'), name='group_create')
permission_group_delete = namespace.add_permission(
    label=_('Delete existing groups'), name='group_delete')
permission_group_edit = namespace.add_permission(
    label=_('Edit existing groups'), name='group_edit')
permission_group_view = namespace.add_permission(
    label=_('View existing groups'), name='group_view')
permission_user_create = namespace.add_permission(label=_('Create new users'),
                                                  name='user_create')
permission_user_delete = namespace.add_permission(
    label=_('Delete existing users'), name='user_delete')
permission_user_edit = namespace.add_permission(label=_('Edit existing users'),
                                                name='user_edit')
permission_user_view = namespace.add_permission(label=_('View existing users'),
                                                name='user_view')
Esempio n. 17
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Redactions'), name='redactions')

permission_redaction_create = namespace.add_permission(
    label=_('Create new redactions'), name='redaction_create')
permission_redaction_delete = namespace.add_permission(
    label=_('Delete redactions'), name='redaction_delete')
permission_redaction_edit = namespace.add_permission(
    label=_('Edit redactions'), name='redaction_edit')
permission_redaction_exclude = namespace.add_permission(
    label=_('Exclude redactions'), name='redaction_exclude')
permission_redaction_view = namespace.add_permission(
    label=_('View existing redactions'), name='redaction_view')
Esempio n. 18
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Metadata'), name='metadata')

permission_document_metadata_add = namespace.add_permission(
    label=_('Add metadata to a document'), name='metadata_document_add'
)
permission_document_metadata_edit = namespace.add_permission(
    label=_('Edit a document\'s metadata'), name='metadata_document_edit'
)
permission_document_metadata_remove = namespace.add_permission(
    label=_('Remove metadata from a document'),
    name='metadata_document_remove'
)
permission_document_metadata_view = namespace.add_permission(
    label=_('View metadata from a document'), name='metadata_document_view'
)

setup_namespace = PermissionNamespace(
    label=_('Metadata setup'), name='metadata_setup'
)

permission_metadata_type_edit = setup_namespace.add_permission(
    label=_('Edit metadata types'), name='metadata_type_edit'
)
permission_metadata_type_create = setup_namespace.add_permission(
    label=_('Create new metadata types'), name='metadata_type_create'
Esempio n. 19
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(name='document_states',
                                label=_('Document workflows'))

permission_workflow_create = namespace.add_permission(
    name='workflow_create', label=_('Create workflows'))
permission_workflow_delete = namespace.add_permission(
    name='workflow_delte', label=_('Delete workflows'))
permission_workflow_edit = namespace.add_permission(name='workflow_edit',
                                                    label=_('Edit workflows'))
permission_workflow_view = namespace.add_permission(name='workflow_view',
                                                    label=_('View workflows'))
# Translators: This text refers to the permission to grant user the ability to
# 'transition workflows' from one state to another, to move the workflow
# forwards
permission_workflow_transition = namespace.add_permission(
    name='workflow_transition', label=_('Transition workflows'))
permission_workflow_tools = namespace.add_permission(
    name='workflow_tools', label=_('Execute workflow tools'))
Esempio n. 20
0
class LinkClassTestCase(GenericViewTestCase):
    def setUp(self):
        super(LinkClassTestCase, self).setUp()

        self.test_object = self._test_case_group

        self.add_test_view(test_object=self.test_object)

        self.namespace = PermissionNamespace(
            label=TEST_PERMISSION_NAMESPACE_TEXT,
            name=TEST_PERMISSION_NAMESPACE_NAME
        )

        self.test_permission = self.namespace.add_permission(
            name=TEST_PERMISSION_NAME, label=TEST_PERMISSION_LABEL
        )

        ModelPermission.register(
            model=self.test_object._meta.model,
            permissions=(self.test_permission,)
        )

        self.link = Link(text=TEST_LINK_TEXT, view=TEST_VIEW_NAME)
        Permission.invalidate_cache()

    def test_link_resolve(self):
        response = self.get(viewname=TEST_VIEW_NAME)

        context = Context({'request': response.wsgi_request})

        resolved_link = self.link.resolve(context=context)
        self.assertEqual(
            resolved_link.url, reverse(viewname=TEST_VIEW_NAME)
        )

    def test_link_permission_resolve_no_permission(self):
        link = Link(
            permissions=(self.test_permission,), text=TEST_LINK_TEXT,
            view=TEST_VIEW_NAME
        )

        response = self.get(viewname=TEST_VIEW_NAME)
        response.context.update({'request': response.wsgi_request})

        context = Context(response.context)

        resolved_link = link.resolve(context=context)
        self.assertEqual(resolved_link, None)

    def test_link_permission_resolve_with_permission(self):
        link = Link(
            permissions=(self.test_permission,), text=TEST_LINK_TEXT,
            view=TEST_VIEW_NAME
        )

        self.grant_access(obj=self.test_object, permission=self.test_permission)

        response = self.get(viewname=TEST_VIEW_NAME)
        response.context.update({'request': response.wsgi_request})

        context = Context(response.context)

        resolved_link = link.resolve(context=context)
        self.assertEqual(resolved_link.url, reverse(viewname=TEST_VIEW_NAME))

    def test_link_permission_resolve_with_acl(self):
        # ACL is tested agains the resolved_object or just {{ object }} if not
        link = Link(
            permissions=(self.test_permission,), text=TEST_LINK_TEXT,
            view=TEST_VIEW_NAME
        )

        self.grant_access(obj=self.test_object, permission=self.test_permission)

        response = self.get(viewname=TEST_VIEW_NAME)
        response.context.update({'request': response.wsgi_request})

        context = Context(response.context)

        resolved_link = link.resolve(context=context)
        self.assertNotEqual(resolved_link, None)
        self.assertEqual(resolved_link.url, reverse(viewname=TEST_VIEW_NAME))

    def test_link_with_unicode_querystring_request(self):
        url = furl(reverse(TEST_VIEW_NAME))
        url.args['unicode_key'] = TEST_UNICODE_STRING

        self.link.keep_query = True
        response = self.get(path=url.url)

        context = Context({'request': response.wsgi_request})

        resolved_link = self.link.resolve(context=context)

        self.assertEqual(resolved_link.url, url.url)

    def test_link_with_querystring_preservation(self):
        previous_url = '{}?{}'.format(
            reverse(TEST_VIEW_NAME), TEST_QUERYSTRING_TWO_KEYS
        )
        self.link.keep_query = True
        self.link.url = TEST_URL
        self.link.view = None
        response = self.get(path=previous_url)

        context = Context({'request': response.wsgi_request})

        resolved_link = self.link.resolve(context=context)
        self.assertEqual(
            resolved_link.url,
            '{}?{}'.format(TEST_URL, TEST_QUERYSTRING_TWO_KEYS)
        )

    def test_link_with_querystring_preservation_with_key_removal(self):
        previous_url = '{}?{}'.format(
            reverse(TEST_VIEW_NAME), TEST_QUERYSTRING_TWO_KEYS
        )
        self.link.keep_query = True
        self.link.url = TEST_URL
        self.link.view = None
        self.link.remove_from_query = ['key2']
        response = self.get(path=previous_url)

        context = Context({'request': response.wsgi_request})

        resolved_link = self.link.resolve(context=context)
        self.assertEqual(
            resolved_link.url,
            '{}?{}'.format(TEST_URL, TEST_QUERYSTRING_ONE_KEY)
        )
Esempio n. 21
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Smart settings'),
                                name='smart_settings')

permission_settings_edit = namespace.add_permission(
    label=_('Edit settings'), name='permission_settings_edit')
permission_settings_view = namespace.add_permission(
    label=_('View settings'), name='permission_settings_view')
Esempio n. 22
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Key management'), name='django_gpg')

permission_key_delete = namespace.add_permission(label=_('Delete keys'),
                                                 name='key_delete')
permission_key_download = namespace.add_permission(label=_('Download keys'),
                                                   name='key_download')
permission_key_receive = namespace.add_permission(
    label=_('Import keys from keyservers'), name='key_receive')
permission_key_sign = namespace.add_permission(
    label=_('Use keys to sign content'), name='key_sign')
permission_key_upload = namespace.add_permission(label=_('Upload keys'),
                                                 name='key_upload')
permission_key_view = namespace.add_permission(label=_('View keys'),
                                               name='key_view')
permission_keyserver_query = namespace.add_permission(
    label=_('Query keyservers'), name='keyserver_query')
Esempio n. 23
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Message of the day'), name='motd')

permission_message_create = namespace.add_permission(
    label=_('Create messages'), name='message_create')
permission_message_delete = namespace.add_permission(
    label=_('Delete messages'), name='message_delete')
permission_message_edit = namespace.add_permission(label=_('Edit messages'),
                                                   name='message_edit')
permission_message_view = namespace.add_permission(label=_('View messages'),
                                                   name='message_view')
Esempio n. 24
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Common'), name='common')

permission_object_copy = namespace.add_permission(label=_('Copy object'),
                                                  name='object_copy')
Esempio n. 25
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Document signatures'),
                                name='document_signatures')

permission_document_version_sign_detached = namespace.add_permission(
    label=_('Sign documents with detached signatures'),
    name='document_version_sign_detached')
permission_document_version_sign_embedded = namespace.add_permission(
    label=_('Sign documents with embedded signatures'),
    name='document_version_sign_embedded')
permission_document_version_signature_delete = namespace.add_permission(
    label=_('Delete detached signatures'),
    name='document_version_signature_delete')
permission_document_version_signature_download = namespace.add_permission(
    label=_('Download detached document signatures'),
    name='document_version_signature_download')
permission_document_version_signature_upload = namespace.add_permission(
    label=_('Upload detached document signatures'),
    name='document_version_signature_upload')
permission_document_version_signature_verify = namespace.add_permission(
    label=_('Verify document signatures'),
    name='document_version_signature_verify')
permission_document_version_signature_view = namespace.add_permission(
    label=_('View details of document signatures'),
    name='document_version_signature_view')
Esempio n. 26
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Access control lists'), name='acls')

permission_acl_edit = namespace.add_permission(label=_('Edit ACLs'),
                                               name='acl_edit')
permission_acl_view = namespace.add_permission(label=_('View ACLs'),
                                               name='acl_view')
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Common'), name='common')

permission_error_log_view = namespace.add_permission(label=_('View error log'),
                                                     name='error_log_view')
Esempio n. 28
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Authentication'),
                                name='authentication')

permission_users_impersonate = namespace.add_permission(
    label=_('Impersonate users'), name='users_impersonate')
Esempio n. 29
0
from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Indexing'), name='document_indexing')

permission_document_indexing_create = namespace.add_permission(
    label=_('Create new document indexes'), name='document_index_create')
permission_document_indexing_edit = namespace.add_permission(
    label=_('Edit document indexes'), name='document_index_edit')
permission_document_indexing_delete = namespace.add_permission(
    label=_('Delete document indexes'), name='document_index_delete')
permission_document_indexing_instance_view = namespace.add_permission(
    label=_('View document index instances'),
    name='document_index_instance_view')
permission_document_indexing_view = namespace.add_permission(
    label=_('View document indexes'), name='document_index_view')
permission_document_indexing_rebuild = namespace.add_permission(
    label=_('Rebuild document indexes'), name='document_rebuild_indexes')
Esempio n. 30
0
from __future__ import absolute_import, unicode_literals

from django.utils.translation import ugettext_lazy as _

from mayan.apps.permissions import PermissionNamespace

namespace = PermissionNamespace(label=_('Smart links'), name='linking')

permission_smart_link_create = namespace.add_permission(
    label=_('Create new smart links'), name='smart_link_create')
permission_smart_link_delete = namespace.add_permission(
    label=_('Delete smart links'), name='smart_link_delete')
permission_smart_link_edit = namespace.add_permission(
    label=_('Edit smart links'), name='smart_link_edit')
permission_smart_link_view = namespace.add_permission(
    label=_('View existing smart links'), name='smart_link_view')