--
-- PostgreSQL database dump
--

-- Started on 2011-12-03 17:50:08 CET

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

--
-- TOC entry 7 (class 2615 OID 16397)
-- Name: posta; Type: SCHEMA; Schema: -; Owner: posta
--

CREATE SCHEMA posta;


ALTER SCHEMA posta OWNER TO posta;

SET search_path = posta, pg_catalog;

--
-- TOC entry 189 (class 1255 OID 16398)
-- Dependencies: 7 551
-- Name: zmen_heslo(character varying, character varying, character varying, character varying); Type: FUNCTION; Schema: posta; Owner: posta
--

CREATE FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) RETURNS text
    LANGUAGE plpgsql SECURITY DEFINER
    AS $$DECLARE pocet integer;
BEGIN
UPDATE uzivatel
 SET heslo = md5("Nove_heslo")
 WHERE 	uzivatel.login = "Login"
	AND uzivatel.domena = "Domena"
	AND uzivatel.heslo = md5("Stare_heslo");
	GET DIAGNOSTICS pocet = ROW_COUNT;
	IF pocet = 1 THEN
		RETURN 'Změna hesla pro ' || "Login" || '@' || "Domena" || ' proběhla úspěšně.';
	ELSE
		RAISE EXCEPTION 'Nesprávné heslo, nebo uživatel % neexistuje', "Login" || '@' || "Domena";
	END IF;
END;
	$$;


ALTER FUNCTION posta.zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) OWNER TO posta;

--
-- TOC entry 1900 (class 0 OID 0)
-- Dependencies: 189
-- Name: FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying); Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) IS 'Změní heslo uživatele.';


SET default_tablespace = '';

SET default_with_oids = false;

--
-- TOC entry 143 (class 1259 OID 16399)
-- Dependencies: 7
-- Name: alias; Type: TABLE; Schema: posta; Owner: posta; Tablespace: 
--

CREATE TABLE alias (
    zdroj_jmeno character varying(255) NOT NULL,
    zdroj_domena character varying(255) NOT NULL,
    cil_jmeno character varying(255) NOT NULL,
    cil_domena character varying(255) NOT NULL
);


ALTER TABLE posta.alias OWNER TO posta;

--
-- TOC entry 1902 (class 0 OID 0)
-- Dependencies: 143
-- Name: COLUMN alias.zdroj_jmeno; Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON COLUMN alias.zdroj_jmeno IS 'Část zdrojové adresy před zavináčem.
(sem přijde zpráva)';


--
-- TOC entry 1903 (class 0 OID 0)
-- Dependencies: 143
-- Name: COLUMN alias.zdroj_domena; Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON COLUMN alias.zdroj_domena IS 'Část zdrojové adresy za zavináčem.
(sem přijde zpráva)';


--
-- TOC entry 1904 (class 0 OID 0)
-- Dependencies: 143
-- Name: COLUMN alias.cil_jmeno; Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON COLUMN alias.cil_jmeno IS 'Část cílové adresy před zavináčem.
(sem zprávu předáme)';


--
-- TOC entry 1905 (class 0 OID 0)
-- Dependencies: 143
-- Name: COLUMN alias.cil_domena; Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON COLUMN alias.cil_domena IS 'Část cílové adresy za zavináčem.
(sem zprávu předáme)';


--
-- TOC entry 144 (class 1259 OID 16405)
-- Dependencies: 7
-- Name: domena; Type: TABLE; Schema: posta; Owner: posta; Tablespace: 
--

CREATE TABLE domena (
    domena character varying(255) NOT NULL
);


ALTER TABLE posta.domena OWNER TO posta;

--
-- TOC entry 145 (class 1259 OID 16408)
-- Dependencies: 1691 7
-- Name: alias_externi; Type: VIEW; Schema: posta; Owner: posta
--

CREATE VIEW alias_externi AS
    SELECT a.zdroj_jmeno, a.zdroj_domena, a.cil_jmeno, a.cil_domena FROM (alias a LEFT JOIN domena d ON (((a.cil_domena)::text = (d.domena)::text))) WHERE (d.domena IS NULL);


ALTER TABLE posta.alias_externi OWNER TO posta;

--
-- TOC entry 1908 (class 0 OID 0)
-- Dependencies: 145
-- Name: VIEW alias_externi; Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON VIEW alias_externi IS 'Poštovní alias, který vede na doménu nacházející se na jiném serveru (tzn. e-mail opouští Veverku)';


--
-- TOC entry 146 (class 1259 OID 16412)
-- Dependencies: 1692 7
-- Name: alias_interni; Type: VIEW; Schema: posta; Owner: posta
--

CREATE VIEW alias_interni AS
    SELECT a.zdroj_jmeno, a.zdroj_domena, a.cil_jmeno, a.cil_domena FROM (alias a LEFT JOIN domena d ON (((a.cil_domena)::text = (d.domena)::text))) WHERE (d.domena IS NOT NULL);


ALTER TABLE posta.alias_interni OWNER TO posta;

--
-- TOC entry 1909 (class 0 OID 0)
-- Dependencies: 146
-- Name: VIEW alias_interni; Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON VIEW alias_interni IS 'Poštovní alias, který vede na doménu nacházející se na tomto serveru (tzn. e-mail neopouští Veverku)';


--
-- TOC entry 147 (class 1259 OID 16416)
-- Dependencies: 7
-- Name: uzivatel; Type: TABLE; Schema: posta; Owner: posta; Tablespace: 
--

CREATE TABLE uzivatel (
    login character varying(255) NOT NULL,
    heslo character varying(512),
    domena character varying(255) NOT NULL,
    jmeno character varying(32)
);


ALTER TABLE posta.uzivatel OWNER TO posta;

--
-- TOC entry 1910 (class 0 OID 0)
-- Dependencies: 147
-- Name: COLUMN uzivatel.jmeno; Type: COMMENT; Schema: posta; Owner: posta
--

COMMENT ON COLUMN uzivatel.jmeno IS 'Celé jméno uživatele';


--
-- TOC entry 148 (class 1259 OID 16422)
-- Dependencies: 1693 7
-- Name: dovecot_heslo; Type: VIEW; Schema: posta; Owner: posta
--

CREATE VIEW dovecot_heslo AS
    SELECT (((uzivatel.login)::text || '@'::text) || (uzivatel.domena)::text) AS "user", uzivatel.heslo AS password, uzivatel.login, uzivatel.domena FROM uzivatel;


ALTER TABLE posta.dovecot_heslo OWNER TO posta;

--
-- TOC entry 149 (class 1259 OID 16426)
-- Dependencies: 1694 7
-- Name: dovecot_uzivatel; Type: VIEW; Schema: posta; Owner: posta
--

CREATE VIEW dovecot_uzivatel AS
    SELECT 5000 AS uid, 5000 AS gid, ((('/var/mail/virtualniposta/'::text || (uzivatel.domena)::text) || '/'::text) || (uzivatel.login)::text) AS home, (((('maildir:/var/mail/virtualniposta/'::text || (uzivatel.domena)::text) || '/'::text) || (uzivatel.login)::text) || '/Maildir'::text) AS mail, 'maildir:Maximalni velikost schranky'::text AS quota, '*:storage=1G'::text AS quota_rule, uzivatel.login, uzivatel.domena FROM uzivatel;


ALTER TABLE posta.dovecot_uzivatel OWNER TO posta;

--
-- TOC entry 150 (class 1259 OID 16430)
-- Dependencies: 1695 7
-- Name: postfix_alias; Type: VIEW; Schema: posta; Owner: posta
--

CREATE VIEW postfix_alias AS
    SELECT (((alias.zdroj_jmeno)::text || '@'::text) || (alias.zdroj_domena)::text) AS zdroj, (((alias.cil_jmeno)::text || '@'::text) || (alias.cil_domena)::text) AS cil FROM alias;


ALTER TABLE posta.postfix_alias OWNER TO posta;

--
-- TOC entry 151 (class 1259 OID 16434)
-- Dependencies: 1696 7
-- Name: postfix_uzivatel; Type: VIEW; Schema: posta; Owner: posta
--

CREATE VIEW postfix_uzivatel AS
    SELECT ((((uzivatel.domena)::text || '/'::text) || (uzivatel.login)::text) || '/Maildir/'::text) AS cesta, uzivatel.login, uzivatel.domena FROM uzivatel;


ALTER TABLE posta.postfix_uzivatel OWNER TO posta;

--
-- TOC entry 152 (class 1259 OID 16438)
-- Dependencies: 1697 7
-- Name: sogo_uzivatel; Type: VIEW; Schema: posta; Owner: posta
--

CREATE VIEW sogo_uzivatel AS
    SELECT (((uzivatel.login)::text || '@'::text) || (uzivatel.domena)::text) AS c_uid, COALESCE((uzivatel.jmeno)::text, (((uzivatel.login)::text || '@'::text) || (uzivatel.domena)::text)) AS c_cn, (((uzivatel.login)::text || '@'::text) || (uzivatel.domena)::text) AS c_name, (((uzivatel.login)::text || '@'::text) || (uzivatel.domena)::text) AS mail, uzivatel.heslo AS c_password FROM uzivatel;


ALTER TABLE posta.sogo_uzivatel OWNER TO posta;

--
-- TOC entry 1890 (class 2606 OID 16443)
-- Dependencies: 143 143 143 143 143
-- Name: aliasy_pk; Type: CONSTRAINT; Schema: posta; Owner: posta; Tablespace: 
--

ALTER TABLE ONLY alias
    ADD CONSTRAINT aliasy_pk PRIMARY KEY (zdroj_jmeno, zdroj_domena, cil_jmeno, cil_domena);


--
-- TOC entry 1892 (class 2606 OID 16445)
-- Dependencies: 144 144
-- Name: domena_pk; Type: CONSTRAINT; Schema: posta; Owner: posta; Tablespace: 
--

ALTER TABLE ONLY domena
    ADD CONSTRAINT domena_pk PRIMARY KEY (domena);


--
-- TOC entry 1894 (class 2606 OID 16447)
-- Dependencies: 147 147 147
-- Name: uzivatel_pk; Type: CONSTRAINT; Schema: posta; Owner: posta; Tablespace: 
--

ALTER TABLE ONLY uzivatel
    ADD CONSTRAINT uzivatel_pk PRIMARY KEY (login, domena);


--
-- TOC entry 1895 (class 2606 OID 16448)
-- Dependencies: 143 1891 144
-- Name: alias_domena_fk; Type: FK CONSTRAINT; Schema: posta; Owner: posta
--

ALTER TABLE ONLY alias
    ADD CONSTRAINT alias_domena_fk FOREIGN KEY (zdroj_domena) REFERENCES domena(domena);


--
-- TOC entry 1896 (class 2606 OID 16453)
-- Dependencies: 1891 144 147
-- Name: uzivatel_domena_fk; Type: FK CONSTRAINT; Schema: posta; Owner: posta
--

ALTER TABLE ONLY uzivatel
    ADD CONSTRAINT uzivatel_domena_fk FOREIGN KEY (domena) REFERENCES domena(domena);


--
-- TOC entry 1899 (class 0 OID 0)
-- Dependencies: 7
-- Name: posta; Type: ACL; Schema: -; Owner: posta
--

REVOKE ALL ON SCHEMA posta FROM PUBLIC;
REVOKE ALL ON SCHEMA posta FROM posta;
GRANT ALL ON SCHEMA posta TO posta;
GRANT USAGE ON SCHEMA posta TO posta_cteni;
GRANT USAGE ON SCHEMA posta TO posta_zmena_hesla;


--
-- TOC entry 1901 (class 0 OID 0)
-- Dependencies: 189
-- Name: zmen_heslo(character varying, character varying, character varying, character varying); Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) FROM PUBLIC;
REVOKE ALL ON FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) FROM posta;
GRANT ALL ON FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) TO posta;
GRANT ALL ON FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) TO PUBLIC;
GRANT ALL ON FUNCTION zmen_heslo("Login" character varying, "Domena" character varying, "Stare_heslo" character varying, "Nove_heslo" character varying) TO posta_zmena_hesla;


--
-- TOC entry 1906 (class 0 OID 0)
-- Dependencies: 143
-- Name: alias; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE alias FROM PUBLIC;
REVOKE ALL ON TABLE alias FROM posta;
GRANT ALL ON TABLE alias TO posta;


--
-- TOC entry 1907 (class 0 OID 0)
-- Dependencies: 144
-- Name: domena; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE domena FROM PUBLIC;
REVOKE ALL ON TABLE domena FROM posta;
GRANT ALL ON TABLE domena TO posta;
GRANT SELECT ON TABLE domena TO posta_cteni;


--
-- TOC entry 1911 (class 0 OID 0)
-- Dependencies: 147
-- Name: uzivatel; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE uzivatel FROM PUBLIC;
REVOKE ALL ON TABLE uzivatel FROM posta;
GRANT ALL ON TABLE uzivatel TO posta;
GRANT SELECT ON TABLE uzivatel TO posta_cteni;


--
-- TOC entry 1912 (class 0 OID 0)
-- Dependencies: 148
-- Name: dovecot_heslo; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE dovecot_heslo FROM PUBLIC;
REVOKE ALL ON TABLE dovecot_heslo FROM posta;
GRANT ALL ON TABLE dovecot_heslo TO posta;
GRANT SELECT ON TABLE dovecot_heslo TO posta_cteni;


--
-- TOC entry 1913 (class 0 OID 0)
-- Dependencies: 149
-- Name: dovecot_uzivatel; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE dovecot_uzivatel FROM PUBLIC;
REVOKE ALL ON TABLE dovecot_uzivatel FROM posta;
GRANT ALL ON TABLE dovecot_uzivatel TO posta;
GRANT SELECT ON TABLE dovecot_uzivatel TO posta_cteni;


--
-- TOC entry 1914 (class 0 OID 0)
-- Dependencies: 150
-- Name: postfix_alias; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE postfix_alias FROM PUBLIC;
REVOKE ALL ON TABLE postfix_alias FROM posta;
GRANT ALL ON TABLE postfix_alias TO posta;
GRANT SELECT ON TABLE postfix_alias TO posta_cteni;


--
-- TOC entry 1915 (class 0 OID 0)
-- Dependencies: 151
-- Name: postfix_uzivatel; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE postfix_uzivatel FROM PUBLIC;
REVOKE ALL ON TABLE postfix_uzivatel FROM posta;
GRANT ALL ON TABLE postfix_uzivatel TO posta;
GRANT SELECT ON TABLE postfix_uzivatel TO posta_cteni;


--
-- TOC entry 1916 (class 0 OID 0)
-- Dependencies: 152
-- Name: sogo_uzivatel; Type: ACL; Schema: posta; Owner: posta
--

REVOKE ALL ON TABLE sogo_uzivatel FROM PUBLIC;
REVOKE ALL ON TABLE sogo_uzivatel FROM posta;
GRANT ALL ON TABLE sogo_uzivatel TO posta;
GRANT SELECT ON TABLE sogo_uzivatel TO posta_cteni;


-- Completed on 2011-12-03 17:50:08 CET

--
-- PostgreSQL database dump complete
--

