コード例 #1
0
def create_permission(apps, schema_editor):
    Permission = apps.get_model('auth', 'Permission')
    ContentType = apps.get_model('contenttypes', 'ContentType')

    get_permission_object_by_name('auth.browse_user',
                                  Permission,
                                  ContentType,
                                  create_if_needed=True)
    get_permission_object_by_name('auth.read_user',
                                  Permission,
                                  ContentType,
                                  create_if_needed=True)
コード例 #2
0
def changeset_permissions(apps, schema_editor):
    Permission = apps.get_model('auth', 'Permission')
    ContentType = apps.get_model('contenttypes', 'ContentType')
    Group = apps.get_model('auth', 'Group')

    # Make sure there's a group "ApproveChangesets" and another one
    # "QueueChangesets"
    change_changesets_group, __ = Group.objects.get_or_create(name=CHANGE_CHANGESETS_GROUP)
    approve_changesets_group, __ = Group.objects.get_or_create(name=APPROVE_CHANGESETS_GROUP)
    queue_changesets_group, __ = Group.objects.get_or_create(name=QUEUE_CHANGESETS_GROUP)

    # Useful permissions
    approve_changeset_permission = get_permission_object_by_name(
        APPROVE_CHANGESET_PERMISSION, Permission, ContentType, True)
    queue_changeset_permission = get_permission_object_by_name(
        QUEUE_CHANGESET_PERMISSION, Permission, ContentType, True)

    browse_permission = get_permission_object_by_name(BROWSE_CHANGESETS_PERMISSION, Permission, ContentType, True)
    read_permission = get_permission_object_by_name(READ_CHANGESET_PERMISSION, Permission, ContentType, True)
    edit_permission = get_permission_object_by_name(EDIT_CHANGESET_PERMISSION, Permission, ContentType, True)
    add_permission = get_permission_object_by_name(ADD_CHANGESET_PERMISSION, Permission, ContentType, True)
    delete_permission = get_permission_object_by_name(DELETE_CHANGESET_PERMISSION, Permission, ContentType, True)

    browse_changerecords_permission = get_permission_object_by_name('changesets.browse_changerecord', Permission, ContentType, True)
    browse_citizens_permission = get_permission_object_by_name('civil_registry.browse_citizen', Permission, ContentType, True)

    change_changesets_group.permissions.add(
        browse_permission,
        read_permission,
        edit_permission,
        add_permission,
        delete_permission,
        browse_changerecords_permission,
        browse_citizens_permission,
    )
    approve_changesets_group.permissions.add(
        approve_changeset_permission,
        browse_permission,
        read_permission,
        edit_permission,
        add_permission,
        delete_permission,
        browse_changerecords_permission,
        browse_citizens_permission,
    )
    queue_changesets_group.permissions.add(
        queue_changeset_permission,
        browse_permission,
        read_permission,
        edit_permission,
        add_permission,
        delete_permission,
        browse_changerecords_permission,
        browse_citizens_permission,
    )
コード例 #3
0
ファイル: test_forms.py プロジェクト: pysoft-net/SmartElect
    def test_approval_warning_checkbox(self):
        # If the changeset has approvals, we include the approval warning checkbox
        # If not, we don't.

        # New changeset
        form = ChangesetForm(data=self.data, request=MagicMock())
        self.assertNotIn('okay_to_remove_approvals', form.fields)

        # Existing changeset without approvals
        changeset = ChangesetFactory()
        form = ChangesetForm(instance=changeset, data=self.data, request=MagicMock())
        self.assertNotIn('okay_to_remove_approvals', form.fields)

        # Approvals
        self.approver = UserFactory()
        self.approver.user_permissions.add(
            get_permission_object_by_name(APPROVE_CHANGESET_PERMISSION))
        changeset.approve(self.approver)
        form = ChangesetForm(instance=changeset, data=self.data, request=MagicMock())
        self.assertIn('okay_to_remove_approvals', form.fields)

        # And we must check it
        self.assertFalse(form.is_valid())
        self.assertIn('okay_to_remove_approvals', form.errors)

        # If we save, it removes the approvals
        self.data['okay_to_remove_approvals'] = True
        mock_request = MagicMock()
        mock_request.__class__ = HttpRequest
        form = ChangesetForm(instance=changeset, data=self.data, request=mock_request)
        self.assertTrue(form.is_valid(), form.errors)
        changeset = form.save()
        self.assertEqual(0, changeset.number_of_approvals)
コード例 #4
0
def give_edit_permission(user):
    """Give user edit permission, and return updated object"""
    perm = get_permission_object_by_name(EDIT_CHANGESET_PERMISSION)
    user.user_permissions.add(perm)
    return refresh_model(user)
コード例 #5
0
def give_queue_permission(user):
    """Give user approve permission, and return updated object"""
    perm = get_permission_object_by_name(QUEUE_CHANGESET_PERMISSION)
    user.user_permissions.add(perm)
    return refresh_model(user)
コード例 #6
0
def give_approve_permission(user):
    """Give user approve permission, and return updated object"""
    user.user_permissions.add(
        get_permission_object_by_name(APPROVE_CHANGESET_PERMISSION))
    return refresh_model(user)
コード例 #7
0
ファイル: test_models.py プロジェクト: chaabni/SmartElect
def give_edit_permission(user):
    """Give user edit permission, and return updated object"""
    perm = get_permission_object_by_name(EDIT_CHANGESET_PERMISSION)
    user.user_permissions.add(perm)
    return refresh_model(user)
コード例 #8
0
ファイル: test_models.py プロジェクト: chaabni/SmartElect
def give_queue_permission(user):
    """Give user approve permission, and return updated object"""
    perm = get_permission_object_by_name(QUEUE_CHANGESET_PERMISSION)
    user.user_permissions.add(perm)
    return refresh_model(user)
コード例 #9
0
ファイル: test_models.py プロジェクト: chaabni/SmartElect
def give_approve_permission(user):
    """Give user approve permission, and return updated object"""
    user.user_permissions.add(get_permission_object_by_name(APPROVE_CHANGESET_PERMISSION))
    return refresh_model(user)
コード例 #10
0
def create_permission(apps, schema_editor):
    Permission = apps.get_model('auth', 'Permission')
    ContentType = apps.get_model('contenttypes', 'ContentType')

    get_permission_object_by_name('auth.browse_user', Permission, ContentType, create_if_needed=True)
    get_permission_object_by_name('auth.read_user', Permission, ContentType, create_if_needed=True)