view schema/auth_tests.sql @ 1865:ce80ab444e3b

client: translations: recover old de_AT and SK versions * Re-adding de_AT and sk_SK translations from 1885:1583cbca8ec5. They got lost after a make translations, probably because rev1885 had de_AT which was not properly merged, containing merge markers and thus broke its syntax.
author Fadi Abbud <fadi.abbud@intevation.de>
date Thu, 17 Jan 2019 15:54:15 +0100
parents cedadd4e3db5
children 9f8f7d3fd655
line wrap: on
line source

-- This is Free Software under GNU Affero General Public License v >= 3.0
-- without warranty, see README.md and license for details.

-- SPDX-License-Identifier: AGPL-3.0-or-later
-- License-Filename: LICENSES/AGPL-3.0.txt

-- Copyright (C) 2018 by via donau
--   – Österreichische Wasserstraßen-Gesellschaft mbH
-- Software engineering by Intevation GmbH

-- Author(s):
--  * Tom Gottfried <tom@intevation.de>

--
-- pgTAP test script for privileges and RLS policies
--

--
-- Run tests as unprivileged user
--
SET SESSION AUTHORIZATION test_user_at;

SELECT throws_ok($$
    CREATE TABLE test()
    $$,
    42501, NULL,
    'No objects can be created');

SELECT isnt_empty($$
    SELECT * FROM waterway.bottlenecks
    $$,
    'Staged data should be visible');

SELECT is_empty($$
    SELECT * FROM waterway.bottlenecks WHERE NOT staging_done
    $$,
    'Only staged data should be visible');

SELECT isnt_empty($$
    SELECT * FROM users.templates
    $$,
    'User should see templates associated to him');
SELECT is_empty($$
    SELECT * FROM users.templates
        JOIN users.user_templates USING (template_name)
        WHERE username <> current_user
    $$,
    'User should only see templates associated to him');

--
-- Run tests as waterway administrator
--
SET SESSION AUTHORIZATION test_admin_at;

PREPARE bn_insert (varchar, geometry(POLYGON, 4326)) AS
    INSERT INTO waterway.bottlenecks (
        bottleneck_id, fk_g_fid, stretch, area, rb, lb, responsible_country,
        revisiting_time, limiting, source_organization)
        VALUES (
            $1,
            ('AT', 'XXX', '00001', 'G0001', 1)::isrs,
            isrsrange(('AT', 'XXX', '00001', '00000', 0)::isrs,
                ('AT', 'XXX', '00001', '00000', 2)::isrs),
            $2, 'AT', 'AT', 'AT',
            1, 'depth', 'testorganization'
        );
SELECT lives_ok($$
    EXECUTE bn_insert(
        'test1',
        ST_geomfromtext('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))', 4326))
    $$,
    'Waterway admin can insert data within his region');
SELECT throws_ok($$
    EXECUTE bn_insert(
        'test2',
        ST_geomfromtext('POLYGON((1 0, 1 1, 2 1, 2 0, 1 0))', 4326))
    $$,
    42501, NULL,
    'Waterway admin cannot insert data outside his region');

-- template management
SELECT isnt_empty($$
    SELECT * FROM users.templates
        JOIN users.user_templates USING (template_name)
        WHERE username <> current_user
    $$,
    'Waterway admin should see templates of other users');

SELECT lives_ok($$
    INSERT INTO users.templates (template_name, template_data)
        VALUES ('New AT', '\x');
        INSERT INTO users.user_templates
        VALUES ('test_user_at', 'New AT')
    $$,
    'Waterway admin can add templates for users in his country');

SELECT throws_ok($$
    INSERT INTO users.user_templates VALUES ('waterway_user2', 'AT')
    $$,
    42501, NULL,
    'Waterway admin cannot add template for other country');

SELECT isnt_empty($$
    UPDATE users.templates SET template_data = '\xDABE'
        WHERE template_name = 'AT' RETURNING *
    $$,
    'Waterway admin can alter templates for own country');

SELECT is_empty($$
    UPDATE users.templates SET template_data = '\xDABE'
        WHERE template_name = 'RO' RETURNING *
    $$,
    'Waterway admin cannot alter templates for other country');

SELECT isnt_empty($$
    DELETE FROM users.templates WHERE template_name = 'AT' RETURNING *
    $$,
    'Waterway admin can delete templates for own country');

SELECT is_empty($$
    DELETE FROM users.templates WHERE template_name = 'RO' RETURNING *
    $$,
    'Waterway admin cannot delete templates for other country');