From 983efebd4643e41b3dea32f3ff89ec7d64ce5d2d Mon Sep 17 00:00:00 2001 From: Sophie Herold <sophie@hemio.de> Date: Tue, 8 Oct 2019 17:07:08 +0200 Subject: [PATCH] Releases v0.13.0 --- CHANGELOG | 10 + docs/schemas/dns.rst | 292 +++++++------------ docs/schemas/domain_reseller.rst | 82 ++---- docs/schemas/email.rst | 180 +++--------- docs/schemas/jabber.rst | 36 +-- docs/schemas/server_access.rst | 39 +-- docs/schemas/web.rst | 186 ++++-------- docs/{schemas => schemas_system}/backend.rst | 118 +++++--- docs/{schemas => schemas_system}/commons.rst | 15 +- docs/{schemas => schemas_system}/system.rst | 160 +++++----- docs/{schemas => schemas_system}/user.rst | 99 +++++-- 11 files changed, 497 insertions(+), 720 deletions(-) rename docs/{schemas => schemas_system}/backend.rst (80%) rename docs/{schemas => schemas_system}/commons.rst (96%) rename docs/{schemas => schemas_system}/system.rst (91%) rename docs/{schemas => schemas_system}/user.rst (86%) diff --git a/CHANGELOG b/CHANGELOG index 13ed4ae..ef30c18 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,13 @@ +v0.13.0 + - [dns] Adds differentiation between domains and hostnames, allowing to use + additional valid custom dns entries. + - Adds option field to several more tables + - Adds some basic tests for development + - Changes to only allow a more limited set of login names + - Changes to a better structure in docs + - Fixes performance issue + - Fixes many static code anlaysis warnings + - Fixes missing consitency checks v0.12.0 - Changes uids to centralized sequence - Fixes srv_record cannot serve if "domain_prefix" contains underscore (#21) diff --git a/docs/schemas/dns.rst b/docs/schemas/dns.rst index 3b5d89b..f921d7f 100644 --- a/docs/schemas/dns.rst +++ b/docs/schemas/dns.rst @@ -87,12 +87,13 @@ Columns - .. _COLUMN-dns.custom.registered: - ``registered`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``registered`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Registered domain of which domain is a sub domain References :ref:`dns.registered.domain <COLUMN-dns.registered.domain>` + On Delete: CASCADE - .. _COLUMN-dns.custom.domain: @@ -189,7 +190,7 @@ Columns - .. _COLUMN-dns.registered.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -216,7 +217,7 @@ Columns - .. _COLUMN-dns.registered.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain @@ -266,7 +267,7 @@ Foreign keys Columns - .. _COLUMN-dns.service.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -300,7 +301,7 @@ Columns - .. _COLUMN-dns.service.registered: - ``registered`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``registered`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Registered domain of which domain is a sub domain @@ -310,7 +311,7 @@ Columns - .. _COLUMN-dns.service.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` domain for which the entries should be created @@ -356,6 +357,36 @@ Execute privilege +.. _FUNCTION-dns._is_subdomain_of: + +``dns._is_subdomain_of`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Checks if `p_subdomain` is a subdomain of `p_domain` + +Parameters + - ``p_subdomain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + + + - ``p_domain`` :ref:`varchar <DOMAIN-varchar>` + + + + + +Returns + bool + + + +.. code-block:: plpgsql + + + RETURN p_domain = p_subdomain OR + '.' || p_domain = right(p_subdomain, char_length(p_domain) + 1); + + + .. _FUNCTION-dns._rdata_txtdata_valid: ``dns._rdata_txtdata_valid`` @@ -400,7 +431,7 @@ Parameters Variables defined for body - - ``v_nameserver`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_nameserver`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_managed`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -409,9 +440,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -423,7 +451,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -454,13 +481,13 @@ Execute privilege Delete registered domain Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Variables defined for body - - ``v_nameserver`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_nameserver`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_managed`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -469,9 +496,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -483,7 +507,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -509,7 +532,7 @@ Execute privilege deletes all service entries of a specific domain Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -518,7 +541,7 @@ Parameters Variables defined for body - - ``v_nameserver`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_nameserver`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_managed`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -527,9 +550,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -541,7 +561,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -589,7 +608,7 @@ Execute privilege Update status Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -600,10 +619,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns void @@ -614,7 +629,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); UPDATE dns.registered @@ -632,7 +647,7 @@ Execute privilege Ins Custom Parameters - - ``p_registered`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_registered`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` @@ -650,7 +665,7 @@ Parameters Variables defined for body - - ``v_nameserver`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_nameserver`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_managed`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -659,9 +674,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -673,7 +685,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -708,13 +719,13 @@ Execute privilege registeres new domain Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_public_suffix`` :ref:`varchar <DOMAIN-varchar>` @@ -726,9 +737,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -740,7 +748,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -762,13 +769,13 @@ Execute privilege Creates service dns entry Parameters - - ``p_registered`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_registered`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -777,7 +784,7 @@ Parameters Variables defined for body - - ``v_nameserver`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_nameserver`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_managed`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -786,9 +793,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -800,7 +804,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -836,9 +839,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -846,7 +846,7 @@ Returns Returned columns - ``service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Execute privilege @@ -855,7 +855,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -876,73 +875,6 @@ Execute privilege -.. _FUNCTION-dns.sel_available_service: - -``dns.sel_available_service`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -List all domains that have a service entry in dns with their service. -This is particularly usefull since these domains are ready for use with -this service. Usually this means that accounts etc. can be created for this -domain. - -Parameters - *None* - - -Variables defined for body - - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - - -Returns - TABLE - -Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - - ``service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - -Execute privilege - - :ref:`userlogin <ROLE-userlogin>` - -.. code-block:: plpgsql - - -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); - v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); - -- end userlogin prelude - - - RETURN QUERY - SELECT t.domain, t.service FROM dns.service AS t - JOIN dns.registered AS s - ON s.domain = t.registered - WHERE - ( - s.owner = v_owner AND - - system._contingent_total( - p_owner := s.owner, - p_service := t.service, - p_service_entity_name := t.service_entity_name - ) IS NOT NULL - ) OR - system._contingent_domain( - p_owner := s.owner, - p_service := t.service, - p_service_entity_name := t.service_entity_name, - p_domain := t.domain - ) IS NOT NULL - ORDER BY t.service - ; - - - .. _FUNCTION-dns.sel_custom: ``dns.sel_custom`` @@ -958,9 +890,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -968,7 +897,7 @@ Returns Returned columns - ``id`` :ref:`uuid <DOMAIN-uuid>` - - ``registered`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``registered`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` @@ -987,7 +916,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1025,9 +953,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1035,7 +960,7 @@ Returns Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Execute privilege @@ -1044,7 +969,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1082,15 +1006,12 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``public_suffix`` :ref:`varchar <DOMAIN-varchar>` @@ -1098,7 +1019,7 @@ Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Execute privilege @@ -1107,7 +1028,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1136,21 +1056,18 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``registered`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``registered`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -1161,7 +1078,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1202,17 +1118,14 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Execute privilege @@ -1221,7 +1134,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1268,18 +1180,14 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE Returned columns - - ``registered`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``registered`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``domain`` :ref:`varchar <DOMAIN-varchar>` + - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - ``type`` :ref:`dns.t_type <DOMAIN-dns.t_type>` @@ -1295,7 +1203,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -1398,7 +1306,7 @@ Parameters Variables defined for body - - ``v_nameserver`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_nameserver`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_managed`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -1407,9 +1315,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1421,13 +1326,15 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude UPDATE dns.custom AS t - SET rdata = p_rdata, ttl = p_ttl + SET + rdata = p_rdata, + ttl = p_ttl, + backend_status = 'upd' FROM dns.registered AS s WHERE @@ -1453,15 +1360,15 @@ Domains ``dns.t_domain`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Fully qualified domain name (without trailing dot) +Fully qualified hostname (without trailing dot) Checks - - ``domain valid regex`` - check domain validity + - ``hostname valid regex`` + Hostname .. code-block:: sql - VALUE ~ '^[a-z\d][a-z\d-]{0,62}(\.[a-z\d][a-z\d-]{0,62})+$' AND + VALUE ~ '^[a-z\d_-]{1,63}(\.[a-z\d_-]{1,63})+$' AND octet_length(VALUE) <= 253 @@ -1474,6 +1381,8 @@ Checks Fully qualified or relative domain name. Trailing dot marks a FQDN. +.. todo :: checks might be off + Checks - ``invalid rdata domain`` check @@ -1487,29 +1396,21 @@ Checks -.. _DOMAIN-dns.t_type: +.. _DOMAIN-dns.t_hostname: -``dns.t_type`` +``dns.t_hostname`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Resource record type +Fully qualified hostname (without trailing dot) Checks - - ``Invalid or unsupported resource type`` - Resource type (A, AAAA, CNAME, MX, SRV, TXT, ...) + - ``hostname valid regex`` + Hostname .. code-block:: sql - VALUE IN ( - 'A', - 'AAAA', - 'CNAME', - 'MX', - 'NS', - 'SRV', - 'SSHFP', - 'TXT' - ) + VALUE ~ '^([a-z\d]|[a-z\d][a-z\d-]{0,61}[a-z\d])(\.([a-z\d]|[a-z\d][a-z\d-]{0,61}[a-z\d]))+$' AND + octet_length(VALUE) <= 253 @@ -1542,6 +1443,33 @@ Checks +.. _DOMAIN-dns.t_type: + +``dns.t_type`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Resource record type + +Checks + - ``Invalid or unsupported resource type`` + Resource type (A, AAAA, CNAME, MX, SRV, TXT, ...) + + .. code-block:: sql + + VALUE IN ( + 'A', + 'AAAA', + 'CNAME', + 'MX', + 'NS', + 'SRV', + 'SSHFP', + 'TXT' + ) + + + + diff --git a/docs/schemas/domain_reseller.rst b/docs/schemas/domain_reseller.rst index 3011d3a..a9b7277 100644 --- a/docs/schemas/domain_reseller.rst +++ b/docs/schemas/domain_reseller.rst @@ -66,7 +66,7 @@ Foreign keys Columns - .. _COLUMN-domain_reseller.handle.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -266,7 +266,7 @@ Primary key Columns - .. _COLUMN-domain_reseller.registered.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain @@ -384,15 +384,12 @@ Parameters Variables defined for body - - ``v_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -404,7 +401,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -453,10 +449,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns void @@ -467,7 +459,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); UPDATE domain_reseller.handle @@ -484,7 +476,7 @@ Execute privilege Update status Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_payable`` :ref:`timestamp <DOMAIN-timestamp>` @@ -507,10 +499,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns void @@ -521,7 +509,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); UPDATE domain_reseller.registered @@ -546,7 +534,7 @@ Parameters - ``p_alias`` :ref:`varchar <DOMAIN-varchar>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_fname`` :ref:`varchar <DOMAIN-varchar>` @@ -591,9 +579,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -605,7 +590,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -663,7 +647,7 @@ Execute privilege Inserts details for registered domain Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_registrant`` :ref:`varchar <DOMAIN-varchar>` @@ -678,9 +662,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -692,7 +673,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -721,9 +701,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns SETOF domain_reseller."handle" @@ -735,7 +712,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -743,7 +719,7 @@ Execute privilege RETURN QUERY SELECT * FROM domain_reseller.handle WHERE - owner=v_owner OR (owner=v_login AND NOT p_hide_foreign) + owner=v_owner OR (owner="user"._login_user() AND NOT p_hide_foreign) ORDER BY backend_status, fname, lname, alias; @@ -763,15 +739,12 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``registrant`` :ref:`varchar <DOMAIN-varchar>` @@ -800,7 +773,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -843,9 +815,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -853,7 +822,7 @@ Returns Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Execute privilege @@ -862,7 +831,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -896,10 +864,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns SETOF domain_reseller."handle" @@ -910,7 +874,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -953,16 +917,12 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``registrant`` :ref:`varchar <DOMAIN-varchar>` @@ -988,7 +948,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -1055,15 +1015,12 @@ Parameters Variables defined for body - - ``v_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1075,7 +1032,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1113,7 +1069,7 @@ Execute privilege Updates details for registered domain Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_admin_c`` :ref:`varchar <DOMAIN-varchar>` @@ -1122,7 +1078,7 @@ Parameters Variables defined for body - - ``v_nameserver`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_nameserver`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_managed`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -1131,9 +1087,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1145,7 +1098,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude diff --git a/docs/schemas/email.rst b/docs/schemas/email.rst index 23dbdaf..60f08f6 100644 --- a/docs/schemas/email.rst +++ b/docs/schemas/email.rst @@ -65,7 +65,7 @@ Foreign keys Columns - .. _COLUMN-email.address.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -83,7 +83,7 @@ Columns - .. _COLUMN-email.address.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -166,7 +166,7 @@ Foreign keys Columns - .. _COLUMN-email.alias.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -184,7 +184,7 @@ Columns - .. _COLUMN-email.alias.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -236,7 +236,7 @@ Columns - .. _COLUMN-email.alias.mailbox_domain: - ``mailbox_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``mailbox_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Mailbox to which the mails will be delivered @@ -291,7 +291,7 @@ Foreign keys Columns - .. _COLUMN-email.list.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -309,7 +309,7 @@ Columns - .. _COLUMN-email.list.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -474,7 +474,7 @@ Columns - .. _COLUMN-email.list_subscriber.list_domain: - ``list_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``list_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` List @@ -531,7 +531,7 @@ Foreign keys Columns - .. _COLUMN-email.mailbox.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -549,7 +549,7 @@ Columns - .. _COLUMN-email.mailbox.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -693,7 +693,7 @@ Foreign keys Columns - .. _COLUMN-email.redirection.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -711,7 +711,7 @@ Columns - .. _COLUMN-email.redirection.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -800,7 +800,7 @@ Returns Returned columns - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``owner`` :ref:`user.t_user <DOMAIN-user.t_user>` @@ -838,7 +838,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -875,13 +875,13 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_mailbox_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_mailbox_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_mailbox_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -890,9 +890,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -904,7 +901,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -936,7 +932,7 @@ Execute privilege Delete mailing list Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` @@ -948,9 +944,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -962,7 +955,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -988,7 +980,7 @@ Parameters - ``p_list_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_list_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_list_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_address`` :ref:`email.t_address <DOMAIN-email.t_address>` @@ -1000,9 +992,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1014,7 +1003,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1047,7 +1035,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -1056,9 +1044,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1070,7 +1055,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1097,7 +1081,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -1106,9 +1090,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1120,7 +1101,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1147,13 +1127,13 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_mailbox_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_mailbox_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_mailbox_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -1171,9 +1151,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1185,7 +1162,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1237,7 +1213,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_admin`` :ref:`email.t_address <DOMAIN-email.t_address>` @@ -1258,9 +1234,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1272,7 +1245,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1313,7 +1285,7 @@ Parameters - ``p_list_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_list_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_list_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -1322,9 +1294,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1336,7 +1305,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1371,7 +1339,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_password`` :ref:`commons.t_password_plaintext <DOMAIN-commons.t_password_plaintext>` @@ -1392,9 +1360,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1406,7 +1371,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1447,7 +1411,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_destination`` :ref:`email.t_address <DOMAIN-email.t_address>` @@ -1468,9 +1432,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1482,7 +1443,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1526,9 +1486,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1536,11 +1493,11 @@ Returns Returned columns - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``mailbox_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``mailbox_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``mailbox_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -1551,7 +1508,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1590,15 +1546,12 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` @@ -1619,7 +1572,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1658,9 +1610,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1670,7 +1619,7 @@ Returned columns - ``list_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``list_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``list_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -1681,7 +1630,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1719,15 +1667,12 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` @@ -1744,7 +1689,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1780,15 +1724,12 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` @@ -1803,7 +1744,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1835,10 +1775,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -1846,11 +1782,11 @@ Returns Returned columns - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``mailbox_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``mailbox_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``mailbox_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -1860,7 +1796,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -1911,10 +1847,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -1922,7 +1854,7 @@ Returns Returned columns - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``admin`` :ref:`email.t_address <DOMAIN-email.t_address>` @@ -1936,7 +1868,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -1987,10 +1919,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -1998,7 +1926,7 @@ Returns Returned columns - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``address`` :ref:`email.t_address <DOMAIN-email.t_address>` @@ -2010,7 +1938,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -2072,10 +2000,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -2083,7 +2007,7 @@ Returns Returned columns - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``password`` :ref:`commons.t_password <DOMAIN-commons.t_password>` @@ -2101,7 +2025,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -2154,10 +2078,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -2165,7 +2085,7 @@ Returns Returned columns - ``localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``destination`` :ref:`email.t_address <DOMAIN-email.t_address>` @@ -2177,7 +2097,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -2225,7 +2145,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_admin`` :ref:`email.t_address <DOMAIN-email.t_address>` @@ -2237,9 +2157,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -2251,7 +2168,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -2281,7 +2197,7 @@ Parameters - ``p_localpart`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_password`` :ref:`commons.t_password_plaintext <DOMAIN-commons.t_password_plaintext>` @@ -2293,9 +2209,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -2307,7 +2220,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -2346,7 +2258,7 @@ Checks .. code-block:: sql - VALUE ~ '^[a-z0-9.-]+$' + VALUE ~ '^[a-z0-9.\-]+$' - ``no_starting_dot`` b diff --git a/docs/schemas/jabber.rst b/docs/schemas/jabber.rst index 7029dbc..9f34b6a 100644 --- a/docs/schemas/jabber.rst +++ b/docs/schemas/jabber.rst @@ -62,7 +62,7 @@ Foreign keys Columns - .. _COLUMN-jabber.account.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -80,7 +80,7 @@ Columns - .. _COLUMN-jabber.account.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -162,7 +162,7 @@ Parameters - ``p_node`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -171,9 +171,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -185,7 +182,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -212,7 +208,7 @@ Parameters - ``p_node`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_password`` :ref:`commons.t_password_plaintext <DOMAIN-commons.t_password_plaintext>` @@ -230,9 +226,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -244,7 +237,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -284,9 +276,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -294,7 +283,7 @@ Returns Returned columns - ``node`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -305,7 +294,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -335,10 +323,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -346,7 +330,7 @@ Returns Returned columns - ``node`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``password`` :ref:`commons.t_password <DOMAIN-commons.t_password>` @@ -358,7 +342,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -406,7 +390,7 @@ Parameters - ``p_node`` :ref:`email.t_localpart <DOMAIN-email.t_localpart>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_password`` :ref:`commons.t_password_plaintext <DOMAIN-commons.t_password_plaintext>` @@ -418,9 +402,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -432,7 +413,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude diff --git a/docs/schemas/server_access.rst b/docs/schemas/server_access.rst index e807a69..780aa53 100644 --- a/docs/schemas/server_access.rst +++ b/docs/schemas/server_access.rst @@ -62,7 +62,7 @@ Foreign keys Columns - .. _COLUMN-server_access.user.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -166,7 +166,7 @@ Parameters - ``p_user`` :ref:`server_access.t_user <DOMAIN-server_access.t_user>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -178,9 +178,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -192,7 +189,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -235,7 +231,7 @@ Parameters - ``p_user`` :ref:`server_access.t_user <DOMAIN-server_access.t_user>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -253,9 +249,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -267,7 +260,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -302,9 +294,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -318,7 +307,7 @@ Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -329,7 +318,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -364,10 +352,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -381,7 +365,7 @@ Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``backend_status`` :ref:`backend.t_status <DOMAIN-backend.t_status>` @@ -393,7 +377,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -444,7 +428,7 @@ Parameters - ``p_user`` :ref:`server_access.t_user <DOMAIN-server_access.t_user>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_password`` :ref:`commons.t_password_plaintext <DOMAIN-commons.t_password_plaintext>` @@ -462,9 +446,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -476,7 +457,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -491,7 +471,8 @@ Execute privilege backend_status = 'upd' WHERE "user" = p_user AND - service_entity_name = p_service_entity_name + service_entity_name = p_service_entity_name AND + owner = v_owner RETURNING subservice INTO v_subservice; PERFORM backend._conditional_notify_service_entity_name( @@ -520,7 +501,7 @@ Checks .. code-block:: sql - VALUE ~ '^[a-z0-9_-]+$' + VALUE ~ '^[a-z0-9\-_]+$' - ``no_repeated_hyphens`` Reserve double hyphens as a seperator for system generated users. diff --git a/docs/schemas/web.rst b/docs/schemas/web.rst index 72f2a5d..efeb5c2 100644 --- a/docs/schemas/web.rst +++ b/docs/schemas/web.rst @@ -87,7 +87,7 @@ Foreign keys Columns - .. _COLUMN-web.alias.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -105,7 +105,7 @@ Columns - .. _COLUMN-web.alias.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -139,7 +139,7 @@ Columns - .. _COLUMN-web.alias.site: - ``site`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``site`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Site @@ -219,7 +219,7 @@ Columns - .. _COLUMN-web.https.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain @@ -355,7 +355,7 @@ Foreign keys Columns - .. _COLUMN-web.intermediate_chain.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain @@ -457,10 +457,12 @@ Foreign keys Local Columns - user - service_entity_name + - owner Referenced Columns - :ref:`server_access.user.user <COLUMN-server_access.user.user>` - :ref:`server_access.user.service_entity_name <COLUMN-server_access.user.service_entity_name>` + - :ref:`server_access.user.owner <COLUMN-server_access.user.owner>` .. END FKs @@ -469,7 +471,7 @@ Foreign keys Columns - .. _COLUMN-web.site.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Domain name @@ -487,7 +489,7 @@ Columns - .. _COLUMN-web.site.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` ent. name @@ -532,6 +534,17 @@ Columns + - .. _COLUMN-web.site.owner: + + ``owner`` :ref:`user.t_user <DOMAIN-user.t_user>` + Owner + + + References :ref:`user.user.owner <COLUMN-user.user.owner>` + + + On Update: CASCADE + - .. _COLUMN-web.site.port: ``port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -577,7 +590,7 @@ Functions del Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_site_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -589,9 +602,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -603,7 +613,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -635,7 +644,7 @@ Execute privilege sdf Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -650,9 +659,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -664,7 +670,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -685,7 +690,7 @@ Execute privilege del Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -697,9 +702,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -711,7 +713,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -740,7 +741,7 @@ Execute privilege x509 request Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -757,10 +758,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns void @@ -771,7 +768,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); UPDATE web.https @@ -791,10 +788,10 @@ Execute privilege Insert alias Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``p_site`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_site`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_site_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -806,9 +803,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -820,7 +814,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -864,7 +857,7 @@ Create new HTTPS certificate Fix missing owner verification (not critical) Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -879,9 +872,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -893,7 +883,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -930,9 +919,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -944,7 +930,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -964,7 +949,7 @@ Execute privilege sdf Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -985,9 +970,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -999,7 +981,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1021,7 +1002,7 @@ Insert site .. todo:: check owner and contingent Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1030,7 +1011,7 @@ Parameters - ``p_user`` :ref:`server_access.t_user <DOMAIN-server_access.t_user>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -1039,9 +1020,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1053,15 +1031,25 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude + PERFORM system._contingent_ensure( + p_owner:=v_owner, + p_domain:=p_domain, + p_service:='web', + p_subservice:='site', + p_current_quantity_total:= + (SELECT COUNT(*) FROM web.site WHERE owner=v_owner)::int, + p_current_quantity_domain:= + (SELECT COUNT(*) FROM web.site WHERE owner=v_owner AND domain = p_domain)::int + ); + INSERT INTO web.site - (domain, service, subservice, port, "user", service_entity_name) + (domain, service, subservice, port, "user", service_entity_name, owner) VALUES - (p_domain, 'web', 'site', p_port, p_user, p_service_entity_name); + (p_domain, 'web', 'site', p_port, p_user, p_service_entity_name, v_owner); PERFORM backend._notify_domain('web', 'site', p_domain); @@ -1082,17 +1070,14 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``site`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``site`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``site_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1105,7 +1090,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1148,9 +1132,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1158,7 +1139,7 @@ Returns Returned columns - ``identifier`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1177,7 +1158,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1213,9 +1193,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1234,7 +1211,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1265,15 +1241,12 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1292,7 +1265,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1327,9 +1299,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1339,13 +1308,13 @@ Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` - ``user`` :ref:`server_access.t_user <DOMAIN-server_access.t_user>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``https`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -1360,7 +1329,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1398,18 +1366,14 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``site`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``site`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``site_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1421,7 +1385,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -1471,10 +1435,6 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE @@ -1482,7 +1442,7 @@ Returns Returned columns - ``identifier`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1500,7 +1460,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -1557,22 +1517,18 @@ Parameters -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns TABLE Returned columns - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` - ``user`` :ref:`server_access.t_user <DOMAIN-server_access.t_user>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``https`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -1588,7 +1544,7 @@ Execute privilege .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); + PERFORM backend._get_login(); RETURN QUERY @@ -1637,7 +1593,7 @@ Execute privilege upd https Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1658,9 +1614,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1672,7 +1625,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1698,7 +1650,7 @@ Execute privilege set https identif. Parameters - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_port`` :ref:`commons.t_port <DOMAIN-commons.t_port>` @@ -1713,9 +1665,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -1727,25 +1676,16 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude - UPDATE web.site AS t + UPDATE web.site AS s SET https = p_identifier - FROM server_access.user AS s, dns.service AS u WHERE - s.user = t.user AND - s.service_entity_name = u.service_entity_name AND - - -- dns.service JOIN - t.domain = u.domain AND - t.service = u.service AND - s.owner = v_owner AND - t.domain = p_domain AND - t.port = p_port; + s.domain = p_domain AND + s.port = p_port; PERFORM backend._conditional_notify(FOUND, 'web', 'site', p_domain); diff --git a/docs/schemas/backend.rst b/docs/schemas_system/backend.rst similarity index 80% rename from docs/schemas/backend.rst rename to docs/schemas_system/backend.rst index f92b0f2..413c8e9 100644 --- a/docs/schemas/backend.rst +++ b/docs/schemas_system/backend.rst @@ -35,6 +35,19 @@ Primary key Columns + - .. _COLUMN-backend.auth.option: + + ``option`` :ref:`jsonb <DOMAIN-jsonb>` + Free options in JSON format + + Default + .. code-block:: sql + + '{}' + + + + - .. _COLUMN-backend.auth.role: ``role`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -47,7 +60,7 @@ Columns - .. _COLUMN-backend.auth.machine: - ``machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``machine`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Machine for which the rights are granted. @@ -76,9 +89,22 @@ Primary key Columns + - .. _COLUMN-backend.machine.option: + + ``option`` :ref:`jsonb <DOMAIN-jsonb>` + Free options in JSON format + + Default + .. code-block:: sql + + '{}' + + + + - .. _COLUMN-backend.machine.name: - ``name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Machine name @@ -138,7 +164,7 @@ Parameters - ``p_subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -171,7 +197,7 @@ Parameters - ``p_condition`` :ref:`boolean <DOMAIN-boolean>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -243,7 +269,7 @@ Returns TABLE Returned columns - - ``machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``machine`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -261,6 +287,30 @@ Returned columns +.. _FUNCTION-backend._login_machine: + +``backend._login_machine`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Shows machine for the current backend login. + +Parameters + *None* + + + +Returns + dns.t_hostname + + + +.. code-block:: plpgsql + + + RETURN (SELECT machine FROM backend._get_login()); + + + .. _FUNCTION-backend._machine_priviledged: ``backend._machine_priviledged`` @@ -270,37 +320,27 @@ Checks if a currently connected machine is priviledged to obtain data for a certain service for a certain domain name. .. warning:: - The parameter p_domain must be a domain, which means an entry in - the column dns.service.domain. It must not be confused with a service_entity_name. + The parameter ``p_domain`` must be a domain, which means an entry in + the column dns.service.domain. It must not be confused with a + ``service_entity_name``. Parameters - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - - - ``p_include_inactive`` :ref:`boolean <DOMAIN-boolean>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns boolean -Execute privilege - - :ref:`backend <ROLE-backend>` .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); - RETURN COALESCE( ( @@ -313,7 +353,7 @@ Execute privilege WHERE t.service = p_service AND t.service_entity_name = s.service_entity_name AND - t.machine_name = v_machine + t.machine_name = backend._login_machine() ) , FALSE); @@ -328,37 +368,26 @@ Checks if a currently connected machine is priviledged to obtain data for a certain service for a certain servicee name. .. warning:: - The parameter p_server_name must be a service name. It must not be - confused with a domain. + The parameter ``p_service_entity_name`` must be the name of a service entity. + It must not be confused with a domain. Parameters - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - - - ``p_include_inactive`` :ref:`boolean <DOMAIN-boolean>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` -Variables defined for body - - ``v_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - Returns boolean -Execute privilege - - :ref:`backend <ROLE-backend>` .. code-block:: plpgsql - v_machine := (SELECT "machine" FROM "backend"._get_login()); - RETURN COALESCE( ( @@ -366,7 +395,7 @@ Execute privilege WHERE t.service = p_service AND t.service_entity_name = p_service_entity_name AND - t.machine_name = v_machine + t.machine_name = backend._login_machine() ) , FALSE); @@ -377,16 +406,21 @@ Execute privilege ``backend._notify`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Informs all machines about changes. +Informs a machine about changes. To listen to signals use + +.. code-block :: sql + + LISTEN "carnivora/machine.name.example" -To listen to signals use LISTEN "carnivora/machine.name.example". -The payload has the form 'mail.domain.example/email/list'. +on the machine. The payload has the form +``<service_entity_name>/<service>/<subservice>``. For example +``mail.domain.example/email/mailbox`` for a mailbox related update. Parameters - - ``p_machine`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_machine`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -432,7 +466,7 @@ Parameters - ``p_subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` @@ -474,7 +508,7 @@ Informs all machines about changes. confused with a domain. Parameters - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` diff --git a/docs/schemas/commons.rst b/docs/schemas_system/commons.rst similarity index 96% rename from docs/schemas/commons.rst rename to docs/schemas_system/commons.rst index 1961d63..993bdf4 100644 --- a/docs/schemas/commons.rst +++ b/docs/schemas_system/commons.rst @@ -194,6 +194,8 @@ Parameters +Language + sql Returns @@ -204,16 +206,13 @@ Execute privilege - :ref:`userlogin <ROLE-userlogin>` - :ref:`backend <ROLE-backend>` -.. code-block:: plpgsql +.. code-block:: guess - RETURN + SELECT ARRAY( - SELECT p_array[i] - FROM generate_series( - array_lower(p_array,1), - array_upper(p_array,1) - ) AS s(i) + SELECT $1[i] + FROM generate_subscripts($1,1) AS s(i) ORDER BY i DESC ); @@ -239,7 +238,7 @@ Returns .. code-block:: plpgsql - RETURN uuid_generate_v4(); + RETURN public.uuid_generate_v4(); diff --git a/docs/schemas/system.rst b/docs/schemas_system/system.rst similarity index 91% rename from docs/schemas/system.rst rename to docs/schemas_system/system.rst index 6a8a0b4..59e85ad 100644 --- a/docs/schemas/system.rst +++ b/docs/schemas_system/system.rst @@ -93,6 +93,19 @@ Primary key Columns + - .. _COLUMN-system.service.option: + + ``option`` :ref:`jsonb <DOMAIN-jsonb>` + Free options in JSON format + + Default + .. code-block:: sql + + '{}' + + + + - .. _COLUMN-system.service.service: ``service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` @@ -146,9 +159,22 @@ Primary key Columns + - .. _COLUMN-system.service_entity.option: + + ``option`` :ref:`jsonb <DOMAIN-jsonb>` + Free options in JSON format + + Default + .. code-block:: sql + + '{}' + + + + - .. _COLUMN-system.service_entity.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Host name @@ -205,7 +231,7 @@ Foreign keys Columns - .. _COLUMN-system.service_entity_dns.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -248,6 +274,19 @@ Columns + - .. _COLUMN-system.service_entity_dns.option: + + ``option`` :ref:`jsonb <DOMAIN-jsonb>` + Free options in JSON format + + Default + .. code-block:: sql + + '{}' + + + + - .. _COLUMN-system.service_entity_dns.id: ``id`` :ref:`uuid <DOMAIN-uuid>` @@ -309,7 +348,7 @@ Foreign keys Columns - .. _COLUMN-system.service_entity_machine.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -325,9 +364,22 @@ Columns + - .. _COLUMN-system.service_entity_machine.option: + + ``option`` :ref:`jsonb <DOMAIN-jsonb>` + Free options in JSON format + + Default + .. code-block:: sql + + '{}' + + + + - .. _COLUMN-system.service_entity_machine.machine_name: - ``machine_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``machine_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Assigns machine @@ -422,9 +474,22 @@ Foreign keys Columns + - .. _COLUMN-system.subservice_entity.option: + + ``option`` :ref:`jsonb <DOMAIN-jsonb>` + Free options in JSON format + + Default + .. code-block:: sql + + '{}' + + + + - .. _COLUMN-system.subservice_entity.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -497,7 +562,7 @@ Foreign keys Columns - .. _COLUMN-system.subservice_entity_contingent.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -601,7 +666,7 @@ Foreign keys Columns - .. _COLUMN-system.subservice_entity_domain_contingent.service_entity_name: - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Service entity name @@ -640,7 +705,7 @@ Columns - .. _COLUMN-system.subservice_entity_domain_contingent.domain: - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Specific domain for which the access is granted @@ -683,7 +748,7 @@ Parameters - ``p_subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``p_domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``p_domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``p_current_quantity_total`` :ref:`integer <DOMAIN-integer>` @@ -695,9 +760,6 @@ Parameters Variables defined for body - - ``v_remaining`` :ref:`integer <DOMAIN-integer>` - - - ``v_total_contingent`` :ref:`integer <DOMAIN-integer>` @@ -710,7 +772,7 @@ Variables defined for body - ``v_domain_contingent_specific`` :ref:`integer <DOMAIN-integer>` - - ``v_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``v_service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``v_domain_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` @@ -812,62 +874,6 @@ Returns -.. _FUNCTION-system._contingent_total: - -``system._contingent_total`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Contingent - -Parameters - - ``p_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - - - ``p_service`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - - - ``p_service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` - - - - -Variables defined for body - - ``v_user`` :ref:`integer <DOMAIN-integer>` - - - - ``v_default`` :ref:`integer <DOMAIN-integer>` - - - -Returns - integer - - - -.. code-block:: plpgsql - - - v_user := ( - SELECT t.quantity - FROM system.contingent_total AS t - WHERE - t.owner = p_owner AND - t.service = p_service AND - t.service_entity_name = p_service_entity_name - ); - - v_default := ( - SELECT t.quantity - FROM system.contingent_default_total AS t - WHERE - t.service = p_service AND - t.service_entity_name = p_service_entity_name - ); - - RETURN COALESCE(v_user, v_default); - - - .. _FUNCTION-system._effective_contingent: ``system._effective_contingent`` @@ -888,7 +894,7 @@ Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``owner`` :ref:`user.t_user <DOMAIN-user.t_user>` @@ -947,9 +953,9 @@ Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - - ``domain`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``domain`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` - ``owner`` :ref:`user.t_user <DOMAIN-user.t_user>` @@ -1130,9 +1136,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1151,7 +1154,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -1180,9 +1182,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -1190,7 +1189,7 @@ Returns Returned columns - ``subservice`` :ref:`commons.t_key <DOMAIN-commons.t_key>` - - ``service_entity_name`` :ref:`dns.t_domain <DOMAIN-dns.t_domain>` + - ``service_entity_name`` :ref:`dns.t_hostname <DOMAIN-dns.t_hostname>` Execute privilege @@ -1199,7 +1198,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude diff --git a/docs/schemas/user.rst b/docs/schemas_system/user.rst similarity index 86% rename from docs/schemas/user.rst rename to docs/schemas_system/user.rst index e0a9260..b5d8a5b 100644 --- a/docs/schemas/user.rst +++ b/docs/schemas_system/user.rst @@ -230,11 +230,37 @@ Returned columns WHERE "id"="user"._session_id(); ELSE RAISE 'Database connection is not associated to a user login.' - USING HINT := 'Use user.login(...) first.'; + USING HINT := 'Use user.ins_login(...) first.'; END IF; +.. _FUNCTION-user._login_user: + +``user._login_user`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Shows informations for the current user login. +Throws an exception if no login is associated to the +current database connection. + +Parameters + *None* + + + +Returns + user.t_user + + + +.. code-block:: plpgsql + + + RETURN (SELECT owner FROM "user"._get_login()); + + + .. _FUNCTION-user._session_id: ``user._session_id`` @@ -259,13 +285,43 @@ Returns RETURN - session_user || '.' || pg_backend_pid() || '.' || COALESCE((SELECT backend_start FROM pg_stat_get_activity(pg_backend_pid()))::varchar, 'xxx') || '.' || pg_conf_load_time(); +.. _FUNCTION-user.del_login: + +``user.del_login`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Try to logout + +Parameters + *None* + + + +Returns + void + + +Execute privilege + - :ref:`userlogin <ROLE-userlogin>` + +.. code-block:: plpgsql + + + DELETE FROM "user".session WHERE id = "user"._session_id(); + + IF NOT FOUND THEN + RAISE 'Carnivora: user logout failed, not logged in' + USING DETAIL = '$carnivora:user:logout_failed$'; + END IF; + + + .. _FUNCTION-user.ins_deputy: ``user.ins_deputy`` @@ -283,9 +339,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void @@ -297,7 +350,6 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude @@ -308,7 +360,8 @@ Execute privilege WHERE s.deputy = t.owner AND s.represented = p_act_as AND - t.id = "user"._session_id(); + t.id = "user"._session_id() AND + t.owner = v_owner; IF NOT FOUND THEN RAISE 'Acting as deputy failed.' @@ -355,7 +408,7 @@ Execute privilege WHERE p_login IS NOT NULL AND t.password IS NOT NULL AND - p_login IN (owner, contact_email) AND + lower(p_login) IN (owner, contact_email) AND commons._passwords_equal(p_password, t.password); IF v_login_owner IS NOT NULL THEN @@ -383,9 +436,6 @@ Variables defined for body - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns TABLE @@ -400,14 +450,13 @@ Execute privilege .. code-block:: plpgsql -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); -- end userlogin prelude RETURN QUERY SELECT t.represented FROM "user".deputy AS t - WHERE t.deputy = v_login + WHERE t.deputy = "user"._login_user() ORDER BY t.represented; @@ -425,34 +474,20 @@ Parameters -Variables defined for body - - ``v_owner`` :ref:`user.t_user <DOMAIN-user.t_user>` - - - - ``v_login`` :ref:`user.t_user <DOMAIN-user.t_user>` - - Returns void -Execute privilege - - :ref:`userlogin <ROLE-userlogin>` .. code-block:: plpgsql - -- begin userlogin prelude - v_login := (SELECT t.owner FROM "user"._get_login() AS t); - v_owner := (SELECT t.act_as FROM "user"._get_login() AS t); - -- end userlogin prelude - UPDATE "user".user SET password = commons._hash_password(p_password) WHERE - owner = v_login; + owner = "user"._login_user(); @@ -470,6 +505,14 @@ Domains Username +Checks + - ``valid_characters`` + Only lower-case letters, numbers and .-_ + + .. code-block:: sql + + VALUE ~ '^[a-z0-9.\-_]+$' + -- GitLab