Robin Thoni 8 роки тому
джерело
коміт
6caebd5043
2 змінених файлів з 49 додано та 27 видалено
  1. 4
    14
      sql/data_init.sql
  2. 45
    13
      sql/struct_init.sql

+ 4
- 14
sql/data_init.sql Переглянути файл

1
 --
1
 --
2
 -- PostgreSQL database dump
2
 -- PostgreSQL database dump
3
 --
3
 --
4
-
5
-SET statement_timeout = 0;
6
-SET lock_timeout = 0;
7
-SET client_encoding = 'UTF8';
8
-SET standard_conforming_strings = on;
9
-SET check_function_bodies = false;
10
-SET client_min_messages = warning;
11
-
12
-SET search_path = public, pg_catalog;
13
-
14
 --
4
 --
15
 -- Data for Name: luticate_groups; Type: TABLE DATA; Schema: public; Owner: dev
5
 -- Data for Name: luticate_groups; Type: TABLE DATA; Schema: public; Owner: dev
16
 --
6
 --
23
 -- Name: luticate_groups_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dev
13
 -- Name: luticate_groups_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dev
24
 --
14
 --
25
 
15
 
26
-SELECT pg_catalog.setval('luticate_groups_id_seq', 1, true);
16
+SELECT pg_catalog.setval('luticate_groups_id_seq', 2, true);
27
 
17
 
28
 
18
 
29
 --
19
 --
124
 --
114
 --
125
 
115
 
126
 INSERT INTO luticate_users VALUES (0, 'anonymous', 'anonymous@example.com', '', '', NULL, 'anonymous', 'anonymous');
116
 INSERT INTO luticate_users VALUES (0, 'anonymous', 'anonymous@example.com', '', '', NULL, 'anonymous', 'anonymous');
127
-INSERT INTO luticate_users VALUES (1, 'root', 'root@example.com', '$2y$10$ec8HHsBm1hFoiCtyj51Gwuj42PZ2oUp5BOnYq5/oh.FNAHIkgSGYO', 'LNzBBugvD6', NULL, 'root', 'root');
117
+INSERT INTO luticate_users VALUES (1, 'root', 'root@me.com', '$2y$10$m1aN1a1ZEr1vmjFPfWl4Pu/63EhcxVCrC/DF0DFhdGbvORwtJtCmy', '3vwW1qQ28I', NULL, 'root', 'root');
128
 
118
 
129
 
119
 
130
 --
120
 --
134
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_ADD', false, 0);
124
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_ADD', false, 0);
135
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_DEL', false, 0);
125
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_DEL', false, 0);
136
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_EDIT', false, 0);
126
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_EDIT', false, 0);
137
-INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_GET', false, 0);
138
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_USER_ADD', false, 0);
127
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_USER_ADD', false, 0);
139
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_USER_DEL', false, 0);
128
 INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_USER_DEL', false, 0);
140
 INSERT INTO luticate_permissions_users VALUES ('LU_PERM_ADD', false, 0);
129
 INSERT INTO luticate_permissions_users VALUES ('LU_PERM_ADD', false, 0);
158
 INSERT INTO luticate_permissions_users VALUES ('LU_USER_SET_PASSWORD', false, 0);
147
 INSERT INTO luticate_permissions_users VALUES ('LU_USER_SET_PASSWORD', false, 0);
159
 INSERT INTO luticate_permissions_users VALUES ('LU_USER_SET_PASSWORD_ME', false, 0);
148
 INSERT INTO luticate_permissions_users VALUES ('LU_USER_SET_PASSWORD_ME', false, 0);
160
 INSERT INTO luticate_permissions_users VALUES ('LU_USER_LOGIN', true, 0);
149
 INSERT INTO luticate_permissions_users VALUES ('LU_USER_LOGIN', true, 0);
150
+INSERT INTO luticate_permissions_users VALUES ('LU_GROUP_GET', false, 0);
161
 
151
 
162
 
152
 
163
 --
153
 --
171
 -- Name: luticate_users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dev
161
 -- Name: luticate_users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dev
172
 --
162
 --
173
 
163
 
174
-SELECT pg_catalog.setval('luticate_users_id_seq', 1, true);
164
+SELECT pg_catalog.setval('luticate_users_id_seq', 2, true);
175
 
165
 
176
 
166
 
177
 --
167
 --

+ 45
- 13
sql/struct_init.sql Переглянути файл

8
 CREATE FUNCTION sp_lu_get_all_user_permission(_user_id integer, OUT _permisson_name character varying, OUT val boolean) RETURNS SETOF record
8
 CREATE FUNCTION sp_lu_get_all_user_permission(_user_id integer, OUT _permisson_name character varying, OUT val boolean) RETURNS SETOF record
9
 LANGUAGE sql IMMUTABLE SECURITY DEFINER COST 10
9
 LANGUAGE sql IMMUTABLE SECURITY DEFINER COST 10
10
 AS $$
10
 AS $$
11
-	SELECT p.name, sp_lu_get_user_permission(_user_id, p.name) FROM luticate_permissions p
11
+SELECT p.name, sp_lu_get_user_permission(_user_id, p.name) FROM luticate_permissions p ORDER bY p.name
12
 $$;
12
 $$;
13
 
13
 
14
+
15
+
14
 --
16
 --
15
 -- Name: sp_lu_get_user_permission(integer, character varying); Type: FUNCTION; Schema: public; Owner: dev
17
 -- Name: sp_lu_get_user_permission(integer, character varying); Type: FUNCTION; Schema: public; Owner: dev
16
 --
18
 --
24
 BEGIN
26
 BEGIN
25
     SELECT "value" INTO val FROM luticate_permissions_users WHERE "user_id" = _user_id AND "name" = _permisson_name;
27
     SELECT "value" INTO val FROM luticate_permissions_users WHERE "user_id" = _user_id AND "name" = _permisson_name;
26
     IF val is null THEN
28
     IF val is null THEN
27
-	SELECT array_agg("group_id") INTO groups FROM luticate_users_groups  WHERE "user_id" = _user_id;
28
-	IF groups is not null then
29
-	    FOREACH g in ARRAY groups LOOP
30
-	        SELECT "value" INTO val FROM luticate_permissions_groups WHERE "group_id" = g AND "name" = _permisson_name;
31
-	        IF val = FALSE THEN
32
-	            EXIT;
33
-	        END IF;
34
-	    END LOOP;
35
-	END if;
36
-	IF val is null then
37
-	    SELECT "value" INTO val FROM luticate_permissions WHERE "name" = _permisson_name;
38
-	end if;
29
+        SELECT lpg."value" into val FROM luticate_permissions_groups lpg
30
+            INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
31
+            INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
32
+        WHERE lpg."name" = _permisson_name and lpg."value" = FALSE;
33
+        IF val is null then
34
+            SELECT lpg."value" into val FROM luticate_permissions_groups lpg
35
+                INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
36
+                INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
37
+            WHERE lpg."name" = _permisson_name and lpg."value" = TRUE;
38
+            IF val is null then
39
+                SELECT "value" INTO val FROM luticate_permissions WHERE "name" = _permisson_name;
40
+            END IF;
41
+        end if;
39
     END IF;
42
     END IF;
40
 END;
43
 END;
41
 $$;
44
 $$;
56
 SET default_with_oids = false;
59
 SET default_with_oids = false;
57
 
60
 
58
 --
61
 --
62
+-- Name: luticate_groups; Type: TABLE; Schema: public; Owner: dev; Tablespace:
59
 --
63
 --
60
 
64
 
61
 CREATE TABLE luticate_groups (
65
 CREATE TABLE luticate_groups (
64
     name character varying NOT NULL
67
     name character varying NOT NULL
65
 );
68
 );
66
 
69
 
70
+
71
+
67
 --
72
 --
73
+-- Name: luticate_permissions; Type: TABLE; Schema: public; Owner: dev; Tablespace:
68
 --
74
 --
69
 
75
 
70
 CREATE TABLE luticate_permissions (
76
 CREATE TABLE luticate_permissions (
73
     value boolean NOT NULL
78
     value boolean NOT NULL
74
 );
79
 );
75
 
80
 
81
+
82
+
76
 --
83
 --
84
+-- Name: luticate_permissions_groups; Type: TABLE; Schema: public; Owner: dev; Tablespace:
77
 --
85
 --
78
 
86
 
79
 CREATE TABLE luticate_permissions_groups (
87
 CREATE TABLE luticate_permissions_groups (
83
     group_id integer NOT NULL
90
     group_id integer NOT NULL
84
 );
91
 );
85
 
92
 
93
+
94
+
86
 --
95
 --
96
+-- Name: luticate_permissions_users; Type: TABLE; Schema: public; Owner: dev; Tablespace:
87
 --
97
 --
88
 
98
 
89
 CREATE TABLE luticate_permissions_users (
99
 CREATE TABLE luticate_permissions_users (
93
     user_id integer NOT NULL
102
     user_id integer NOT NULL
94
 );
103
 );
95
 
104
 
105
+
106
+
96
 --
107
 --
97
 -- Name: luticate_users_id_seq; Type: SEQUENCE; Schema: public; Owner: dev
108
 -- Name: luticate_users_id_seq; Type: SEQUENCE; Schema: public; Owner: dev
98
 --
109
 --
104
 NO MAXVALUE
115
 NO MAXVALUE
105
 CACHE 1;
116
 CACHE 1;
106
 
117
 
118
+
119
+
107
 --
120
 --
121
+-- Name: luticate_users; Type: TABLE; Schema: public; Owner: dev; Tablespace:
108
 --
122
 --
109
 
123
 
110
 CREATE TABLE luticate_users (
124
 CREATE TABLE luticate_users (
119
     lastname character varying(255) NOT NULL
132
     lastname character varying(255) NOT NULL
120
 );
133
 );
121
 
134
 
135
+
136
+
122
 --
137
 --
138
+-- Name: luticate_users_groups; Type: TABLE; Schema: public; Owner: dev; Tablespace:
123
 --
139
 --
124
 
140
 
125
 CREATE TABLE luticate_users_groups (
141
 CREATE TABLE luticate_users_groups (
128
     group_id integer NOT NULL
143
     group_id integer NOT NULL
129
 );
144
 );
130
 
145
 
146
+
131
 --
147
 --
148
+-- Name: luticate_groups_name_key; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
132
 --
149
 --
133
 
150
 
134
 ALTER TABLE ONLY luticate_groups
151
 ALTER TABLE ONLY luticate_groups
137
 
153
 
138
 
154
 
139
 --
155
 --
156
+-- Name: luticate_groups_pkey; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
140
 --
157
 --
141
 
158
 
142
 ALTER TABLE ONLY luticate_groups
159
 ALTER TABLE ONLY luticate_groups
145
 
161
 
146
 
162
 
147
 --
163
 --
164
+-- Name: luticate_permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
148
 --
165
 --
149
 
166
 
150
 ALTER TABLE ONLY luticate_permissions
167
 ALTER TABLE ONLY luticate_permissions
153
 
169
 
154
 
170
 
155
 --
171
 --
172
+-- Name: luticate_permissions_users_pkey; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
156
 --
173
 --
157
 
174
 
158
 ALTER TABLE ONLY luticate_permissions_users
175
 ALTER TABLE ONLY luticate_permissions_users
161
 
177
 
162
 
178
 
163
 --
179
 --
180
+-- Name: luticate_users_email_key; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
164
 --
181
 --
165
 
182
 
166
 ALTER TABLE ONLY luticate_users
183
 ALTER TABLE ONLY luticate_users
169
 
185
 
170
 
186
 
171
 --
187
 --
188
+-- Name: luticate_users_groups_pkey; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
172
 --
189
 --
173
 
190
 
174
 ALTER TABLE ONLY luticate_users_groups
191
 ALTER TABLE ONLY luticate_users_groups
177
 
193
 
178
 
194
 
179
 --
195
 --
196
+-- Name: luticate_users_pkey; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
180
 --
197
 --
181
 
198
 
182
 ALTER TABLE ONLY luticate_users
199
 ALTER TABLE ONLY luticate_users
185
 
201
 
186
 
202
 
187
 --
203
 --
204
+-- Name: luticate_users_username_key; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
188
 --
205
 --
189
 
206
 
190
 ALTER TABLE ONLY luticate_users
207
 ALTER TABLE ONLY luticate_users
193
 
209
 
194
 
210
 
195
 --
211
 --
212
+-- Name: pkey; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace:
196
 --
213
 --
197
 
214
 
198
 ALTER TABLE ONLY luticate_permissions_groups
215
 ALTER TABLE ONLY luticate_permissions_groups
247
 ALTER TABLE ONLY luticate_users_groups
263
 ALTER TABLE ONLY luticate_users_groups
248
 ADD CONSTRAINT foreign_user FOREIGN KEY (user_id) REFERENCES luticate_users(id) ON DELETE CASCADE;
264
 ADD CONSTRAINT foreign_user FOREIGN KEY (user_id) REFERENCES luticate_users(id) ON DELETE CASCADE;
249
 
265
 
266
+
250
 --
267
 --
251
 -- PostgreSQL database dump complete
268
 -- PostgreSQL database dump complete
252
 --
269
 --

Завантаження…
Відмінити
Зберегти