@opengis/fastify-table 2.6.2 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +86 -86
  2. package/dist/functions.js +20 -20
  3. package/dist/module/core/cls/constraint_action.json +9 -9
  4. package/dist/module/core/cls/constraint_matchtype.json +5 -5
  5. package/dist/module/core/cls/constraint_type_full.json +17 -17
  6. package/dist/module/core/cls/core.user_type.json +13 -13
  7. package/dist/module/core/pt/schemaItem.pt.hbs +17 -17
  8. package/dist/module/core/select/core.user_mentioned.sql +1 -1
  9. package/dist/script/adduser +14 -14
  10. package/dist/script/dump.js +48 -48
  11. package/dist/script/dump.ts +216 -216
  12. package/dist/script/migrate.ts +23 -23
  13. package/dist/server/helpers/core/badge.js +1 -1
  14. package/dist/server/helpers/list/descriptionList.js +8 -8
  15. package/dist/server/helpers/list/tableList.js +4 -4
  16. package/dist/server/helpers/list/utils/button.js +1 -1
  17. package/dist/server/helpers/list/utils/buttonDel.js +3 -3
  18. package/dist/server/helpers/list/utils/buttonEdit.js +3 -3
  19. package/dist/server/helpers/utils/button.js +1 -1
  20. package/dist/server/helpers/utils/buttonAdd.js +15 -15
  21. package/dist/server/helpers/utils/buttonDel.js +11 -11
  22. package/dist/server/helpers/utils/buttonEdit.js +3 -3
  23. package/dist/server/migrations/0.sql +99 -99
  24. package/dist/server/migrations/1_users.sql +145 -145
  25. package/dist/server/migrations/cls.sql +105 -105
  26. package/dist/server/migrations/context.sql +136 -136
  27. package/dist/server/migrations/dictionaries.sql +78 -78
  28. package/dist/server/migrations/oauth.sql +79 -79
  29. package/dist/server/migrations/properties.sql +115 -115
  30. package/dist/server/migrations/roles.sql +201 -201
  31. package/dist/server/migrations/template.sql +43 -43
  32. package/dist/server/plugins/access/funcs/getUserPermissions.js +7 -7
  33. package/dist/server/plugins/auth/funcs/authorizeUser.js +4 -4
  34. package/dist/server/plugins/auth/funcs/getQuery.js +20 -20
  35. package/dist/server/plugins/auth/index.js +3 -3
  36. package/dist/server/plugins/crud/funcs/dataUpdate.js +7 -7
  37. package/dist/server/plugins/crud/funcs/getAccess.js +14 -14
  38. package/dist/server/plugins/crud/funcs/utils/getInsertQuery.js +6 -6
  39. package/dist/server/plugins/crud/funcs/utils/logChanges.js +18 -18
  40. package/dist/server/plugins/grpc/utils/convertp.proto +143 -143
  41. package/dist/server/plugins/grpc/utils/htmlTemplate.js +10 -10
  42. package/dist/server/plugins/grpc/utils/office2pdf.proto +13 -13
  43. package/dist/server/plugins/metric/loggerSystem.js +1 -1
  44. package/dist/server/plugins/pg/funcs/autoIndex.js +5 -5
  45. package/dist/server/plugins/pg/funcs/getMeta.js +15 -15
  46. package/dist/server/plugins/pg/funcs/init.js +36 -36
  47. package/dist/server/plugins/sqlite/funcs/init.js +22 -22
  48. package/dist/server/plugins/table/funcs/getData.js +13 -13
  49. package/dist/server/plugins/table/funcs/getFilterSQL/util/getCustomQuery.js +1 -1
  50. package/dist/server/plugins/table/funcs/getSelect.js +1 -1
  51. package/dist/server/plugins/table/funcs/gisIRColumn.js +3 -3
  52. package/dist/server/plugins/usercls/index.js +2 -2
  53. package/dist/server/routes/access/controllers/access.group.js +6 -6
  54. package/dist/server/routes/access/controllers/access.group.post.js +3 -3
  55. package/dist/server/routes/access/controllers/access.interface.js +14 -14
  56. package/dist/server/routes/access/controllers/access.user.js +6 -6
  57. package/dist/server/routes/auth/controllers/2factor/providers/totp.js +5 -5
  58. package/dist/server/routes/auth/controllers/2factor/qrcode.js +1 -1
  59. package/dist/server/routes/auth/controllers/2factor/recovery.js +1 -1
  60. package/dist/server/routes/auth/controllers/2factor/verify.js +1 -1
  61. package/dist/server/routes/auth/controllers/core/getUserInfo.js +33 -33
  62. package/dist/server/routes/auth/controllers/core/passwordRecovery.js +1 -1
  63. package/dist/server/routes/auth/controllers/core/registration.js +2 -2
  64. package/dist/server/routes/auth/controllers/page/login2faTemplate.js +1 -1
  65. package/dist/server/routes/crud/functions/deleteTableRelation.js +9 -9
  66. package/dist/server/routes/crud/functions/updateTableRelation.js +9 -9
  67. package/dist/server/routes/file/controllers/resizeAll.js +7 -7
  68. package/dist/server/routes/grpc/controllers/file2geojson.js +13 -13
  69. package/dist/server/routes/menu/controllers/getMenu.js +9 -9
  70. package/dist/server/routes/notifications/controllers/readNotifications.js +4 -4
  71. package/dist/server/routes/notifications/controllers/userNotifications.js +3 -3
  72. package/dist/server/routes/table/controllers/card.js +1 -1
  73. package/dist/server/routes/table/controllers/filter.js +6 -6
  74. package/dist/server/routes/table/controllers/form.js +1 -1
  75. package/dist/server/routes/table/controllers/getFormByTable.js +6 -6
  76. package/dist/server/routes/table/controllers/suggest.d.ts.map +1 -1
  77. package/dist/server/routes/table/controllers/suggest.js +33 -22
  78. package/dist/server/routes/table/controllers/tableData.js +2 -2
  79. package/dist/server/routes/table/controllers/tableInfo.js +10 -10
  80. package/dist/server/routes/table/functions/getData.js +13 -13
  81. package/dist/server/routes/table/schema.d.ts +5 -0
  82. package/dist/server/routes/table/schema.d.ts.map +1 -1
  83. package/dist/server/routes/table/schema.js +1 -0
  84. package/dist/server/routes/widget/controllers/widget.get.js +33 -33
  85. package/dist/server/routes/widget/controllers/widget.set.js +4 -4
  86. package/dist/server/routes/widget/services/widget.entity.get.js +33 -33
  87. package/dist/server/routes/widget/services/widget.entity.set.js +4 -4
  88. package/dist/server/templates/page/2factor-recovery.html +101 -101
  89. package/dist/server/templates/page/2factor.html +140 -140
  90. package/dist/server/templates/page/login.html +90 -90
  91. package/dist/server/templates/pt/recovery-codes-email-template.hbs +12 -12
  92. package/dist/server/templates/pt/recovery-password-email-template.html +20 -20
  93. package/package.json +99 -99
@@ -1,201 +1,201 @@
1
- create schema if not exists admin;
2
- create schema if not exists public;
3
- CREATE EXTENSION if not exists pg_trgm SCHEMA public VERSION "1.5";
4
-
5
-
6
- -- Admin Menu
7
- -- DROP TABLE if exists admin.menu;
8
- CREATE TABLE if not exists admin.menu();
9
- alter table admin.menu DROP CONSTRAINT if exists admin_menu_id_pkey cascade;
10
- alter table admin.menu DROP CONSTRAINT if exists admin_menu_name_unique;
11
-
12
- alter table admin.menu add column if not exists menu_id text NOT NULL default next_id();
13
- alter table admin.menu add column if not exists name text;
14
- alter table admin.menu add column if not exists ord numeric;
15
- alter table admin.menu add column if not exists enabled boolean NOT NULL DEFAULT true;
16
- alter table admin.menu add column if not exists uid text;
17
- alter table admin.menu add column if not exists editor_id text;
18
- alter table admin.menu add column if not exists editor_date timestamp without time zone;
19
- alter table admin.menu add column if not exists cdate timestamp without time zone DEFAULT now();
20
- alter table admin.menu add CONSTRAINT admin_menu_id_pkey PRIMARY KEY (menu_id);
21
- alter table admin.menu add CONSTRAINT admin_menu_name_unique UNIQUE (name);
22
-
23
- COMMENT ON TABLE admin.menu IS 'Пункти меню';
24
- COMMENT ON COLUMN admin.menu.menu_id IS 'Ідентифікатор пункту меню';
25
- COMMENT ON COLUMN admin.menu.name IS 'Назва пункту меню';
26
- COMMENT ON COLUMN admin.menu.ord IS 'Порядковий номер';
27
- COMMENT ON COLUMN admin.menu.enabled IS 'On / Off';
28
-
29
-
30
-
31
-
32
- -- Role (Group)
33
- -- drop table if exists admin.roles;
34
- CREATE TABLE if not exists admin.roles();
35
- alter table admin.roles DROP CONSTRAINT if exists admin_roles_id_pkey cascade;
36
-
37
- ALTER TABLE admin.roles ADD COLUMN if not exists role_id text NOT NULL DEFAULT next_id();
38
- ALTER TABLE admin.roles ADD COLUMN if not exists name text;
39
- ALTER TABLE admin.roles ADD COLUMN if not exists enabled boolean;
40
- ALTER TABLE admin.roles ADD COLUMN if not exists info text;
41
- ALTER TABLE admin.roles ADD COLUMN if not exists cdate timestamp without time zone DEFAULT date_trunc('seconds'::text, now());
42
- ALTER TABLE admin.roles ADD COLUMN if not exists uid text;
43
- ALTER TABLE admin.roles ADD COLUMN if not exists editor_id text;
44
- ALTER TABLE admin.roles ADD COLUMN if not exists editor_date timestamp without time zone;
45
-
46
- ALTER TABLE admin.roles ADD CONSTRAINT admin_roles_id_pkey PRIMARY KEY(role_id);
47
-
48
- COMMENT ON TABLE admin.roles IS 'Групи';
49
- COMMENT ON COLUMN admin.roles.role_id IS 'ID';
50
- COMMENT ON COLUMN admin.roles.name IS 'Назва групи';
51
- COMMENT ON COLUMN admin.roles.enabled IS 'On / Off';
52
- COMMENT ON COLUMN admin.roles.info IS 'Опис групи';
53
- COMMENT ON COLUMN admin.roles.cdate IS 'Дата створення';
54
- COMMENT ON COLUMN admin.roles.uid IS 'Хто створив';
55
- COMMENT ON COLUMN admin.roles.editor_id IS 'Останній редагувач';
56
- COMMENT ON COLUMN admin.roles.editor_date IS 'Дата останнього редагування';
57
-
58
- -- Routes (Interfaces)
59
- -- DROP TABLE if exists admin.routes;
60
- CREATE TABLE if not exists admin.routes();
61
- alter table admin.routes DROP CONSTRAINT if exists admin_route_id_pkey cascade;
62
- alter table admin.routes DROP constraint if exists admin_route_menu_id_fkey cascade;
63
- alter table admin.routes DROP constraint if exists admin_route_alias_query_unique cascade;
64
-
65
- alter table admin.routes add column if not exists route_id text;
66
- alter table admin.routes alter column route_id set not null;
67
- alter table admin.routes alter column route_id set default next_id();
68
- alter table admin.routes add column if not exists alias text;
69
- alter table admin.routes alter column alias drop not null;
70
- -- alter table admin.routes alter column alias set not null;
71
- alter table admin.routes add column if not exists table_name text;
72
- alter table admin.routes alter column table_name drop not null;
73
- -- alter table admin.routes alter column table_name set not null;
74
- alter table admin.routes add column if not exists query text;
75
- alter table admin.routes add column if not exists actions text[];
76
- alter table admin.routes add column if not exists access text;
77
- alter table admin.routes add column if not exists title text;
78
- alter table admin.routes add column if not exists public boolean;
79
- alter table admin.routes add column if not exists menu_id text;
80
- alter table admin.routes add column if not exists uid text;
81
- alter table admin.routes add column if not exists editor_id text;
82
- alter table admin.routes add column if not exists editor_date timestamp without time zone;
83
- alter table admin.routes add column if not exists cdate timestamp without time zone DEFAULT now();
84
- alter table admin.routes alter column cdate set DEFAULT now();
85
- alter table admin.routes add column if not exists enabled boolean;
86
- alter table admin.routes alter column enabled set NOT NULL;
87
- alter table admin.routes alter column enabled set DEFAULT true;
88
-
89
- alter table admin.routes add CONSTRAINT admin_route_id_pkey PRIMARY KEY (route_id);
90
- alter table admin.routes add constraint admin_route_menu_id_fkey FOREIGN KEY (menu_id) REFERENCES admin.menu(menu_id);
91
-
92
- -- alter table admin.routes add CONSTRAINT admin_route_alias_query_unique UNIQUE (alias, query);
93
-
94
- COMMENT ON TABLE admin.routes IS 'Список інтерфейсів';
95
- COMMENT ON COLUMN admin.routes.route_id IS 'Ідентифікатор інтерфейса';
96
- COMMENT ON COLUMN admin.routes.alias IS 'Назва файлу інтерфейса';
97
-
98
- COMMENT ON COLUMN admin.routes.table_name IS 'Таблиця в БД';
99
- comment on column admin.routes.query is 'Запит до таблиці';
100
- COMMENT ON COLUMN admin.routes.actions IS 'Дії';
101
- COMMENT ON COLUMN admin.routes.access IS 'Рівень доступу';
102
- COMMENT ON COLUMN admin.routes.title IS 'Назва інтерфейсу українською';
103
- COMMENT ON COLUMN admin.routes.public IS 'Ознака чи для всіх показується';
104
- COMMENT ON COLUMN admin.routes.enabled IS 'On / Off';
105
- COMMENT ON COLUMN admin.routes.menu_id IS 'Пункт меню (для collapse)';
106
-
107
- -- User <> Role (Group)
108
- -- DROP TABLE if exists admin.user_roles;
109
-
110
- CREATE TABLE if not exists admin.user_roles();
111
- ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_role_id_pkey;
112
- ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_pkey;
113
- ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_role_id_fkey;
114
- ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_user_uid_fkey;
115
- ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_user_uid_role_id_key;
116
- alter table admin.user_roles drop constraint if exists user_roles_user_uid_fkey;
117
- alter table admin.user_roles drop constraint if exists user_roles_role_id_fkey;
118
- alter table admin.user_roles drop constraint if exists admin_user_roles_role_id_fkey;
119
-
120
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS ugr_id text NOT NULL DEFAULT next_id();
121
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS user_uid text NOT NULL;
122
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS role_id text NOT NULL;
123
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS cdate timestamp without time zone DEFAULT date_trunc('seconds'::text, now());
124
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS uid text;
125
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS editor_id text;
126
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
127
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS expiration date;
128
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS access_granted text;
129
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS access_granted_time timestamp without time zone;
130
- ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS actions text [];
131
-
132
- ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_pkey PRIMARY KEY (ugr_id);
133
- delete from admin.user_roles where user_uid not in (select uid from admin.users); -- prevent migration errors caused by missing users
134
- ALTER TABLE admin.user_roles ADD CONSTRAINT user_roles_user_uid_fkey FOREIGN KEY (user_uid) REFERENCES admin.users (uid) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE;
135
- ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_role_id_fkey FOREIGN KEY (role_id) REFERENCES admin.roles (role_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE;
136
- ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_user_uid_role_id_key UNIQUE (user_uid, role_id);
137
-
138
-
139
- COMMENT ON TABLE admin.user_roles IS 'Відношення користувачів до груп';
140
- COMMENT ON COLUMN admin.user_roles.user_uid IS 'ID користувача';
141
- COMMENT ON COLUMN admin.user_roles.role_id IS 'ID групи';
142
- COMMENT ON COLUMN admin.user_roles.uid IS 'Користувач, який створив запис в БД';
143
- COMMENT ON COLUMN admin.user_roles.expiration IS 'закінчення терміну дії доступу до групи';
144
- COMMENT ON COLUMN admin.user_roles.access_granted IS 'Ідентифікатор користувача який надав доступ';
145
- COMMENT ON COLUMN admin.user_roles.access_granted_time IS 'Час коли надали доступ';
146
- COMMENT ON COLUMN admin.user_roles.actions IS 'Рівень доступу користувача в межах групи';
147
-
148
- CREATE INDEX IF NOT EXISTS admin_user_roles_access_user_uid_idx ON admin.user_roles USING btree (user_uid COLLATE pg_catalog."default");
149
- CREATE INDEX IF NOT EXISTS admin_user_roles_cdate_btree_idx ON admin.user_roles USING btree (cdate);
150
- CREATE INDEX IF NOT EXISTS admin_user_roles_editor_date_btree_idx ON admin.user_roles USING btree (editor_date);
151
- CREATE INDEX IF NOT EXISTS admin_user_roles_user_uid_gin_idx ON admin.user_roles USING gin (user_uid COLLATE pg_catalog."default" public.gin_trgm_ops);
152
- CREATE INDEX IF NOT EXISTS admin_user_roles_role_id_idx ON admin.user_roles USING btree (role_id COLLATE pg_catalog."default");
153
-
154
-
155
- -- Route (Interface) <> User / Role (Group)
156
- -- drop table if exists admin.role_access;
157
- drop table if exists admin.access;
158
-
159
- CREATE TABLE if not exists admin.role_access();
160
- alter table admin.role_access DROP CONSTRAINT if exists admin_access_id_pkey;
161
- alter table admin.role_access DROP CONSTRAINT if exists admin_role_access_id_pkey;
162
- alter table admin.role_access DROP CONSTRAINT if exists admin_access_role_id_fkey;
163
- alter table admin.role_access DROP CONSTRAINT if exists admin_access_route_id_uid_unique;
164
- alter table admin.role_access DROP CONSTRAINT if exists admin_access_route_id_fkey;
165
-
166
- alter table admin.role_access add column if not exists access_id text NOT NULL DEFAULT next_id();
167
- alter table admin.role_access add column if not exists route_id text NOT NULL;
168
- alter table admin.role_access add column if not exists role_id text;
169
- alter table admin.role_access add column if not exists user_uid text;
170
- alter table admin.role_access add column if not exists scope text;
171
- alter table admin.role_access add column if not exists actions text[];
172
- ALTER TABLE admin.role_access ADD COLUMN IF NOT EXISTS access_granted text;
173
- ALTER TABLE admin.role_access ADD COLUMN IF NOT EXISTS access_granted_time timestamp without time zone;
174
- alter table admin.role_access add column if not exists cdate timestamp without time zone NOT NULL DEFAULT date_trunc('seconds'::text, now());
175
- alter table admin.role_access add column if not exists uid text;
176
- alter table admin.role_access add column if not exists editor_id text;
177
- alter table admin.role_access add column if not exists editor_date timestamp without time zone;
178
-
179
- alter table admin.role_access add CONSTRAINT admin_role_access_id_pkey PRIMARY KEY (access_id);
180
- alter table admin.role_access add CONSTRAINT admin_access_role_id_fkey FOREIGN KEY (role_id) REFERENCES admin.roles (role_id);
181
- alter table admin.role_access add CONSTRAINT admin_access_route_id_uid_unique UNIQUE (route_id, user_uid, role_id);
182
- alter table admin.role_access add constraint admin_access_route_id_fkey FOREIGN KEY (route_id) REFERENCES admin.routes(route_id);
183
-
184
-
185
- COMMENT ON TABLE admin.role_access IS 'Налаштування прав. Відношення груп / окремих користувачів до шаблонів';
186
- COMMENT ON COLUMN admin.role_access.route_id IS 'ID шаблона';
187
- COMMENT ON COLUMN admin.role_access.role_id IS 'ID групи';
188
- COMMENT ON COLUMN admin.role_access.user_uid IS 'ID користувача';
189
- COMMENT ON COLUMN admin.role_access.scope IS 'Обмеження виведення (власні, відповідальний, всі)';
190
- COMMENT ON COLUMN admin.role_access.actions IS 'Доступні дії';
191
- COMMENT ON COLUMN admin.role_access.access_granted IS 'Ідентифікатор користувача який надав доступ';
192
- COMMENT ON COLUMN admin.role_access.access_granted_time IS 'Час коли надали доступ';
193
-
194
- CREATE INDEX if not exists admin_access_route_id_idx ON admin.role_access USING btree (route_id COLLATE pg_catalog."default");
195
- CREATE INDEX if not exists admin_access_role_id_idx ON admin.role_access USING btree (role_id COLLATE pg_catalog."default");
196
-
197
- alter table admin.role_access add column if not exists resource_id text;
198
- COMMENT ON COLUMN admin.role_access.resource_id IS 'ID ресурсу';
199
- alter table admin.role_access alter column route_id drop not null;
200
-
201
-
1
+ create schema if not exists admin;
2
+ create schema if not exists public;
3
+ CREATE EXTENSION if not exists pg_trgm SCHEMA public VERSION "1.5";
4
+
5
+
6
+ -- Admin Menu
7
+ -- DROP TABLE if exists admin.menu;
8
+ CREATE TABLE if not exists admin.menu();
9
+ alter table admin.menu DROP CONSTRAINT if exists admin_menu_id_pkey cascade;
10
+ alter table admin.menu DROP CONSTRAINT if exists admin_menu_name_unique;
11
+
12
+ alter table admin.menu add column if not exists menu_id text NOT NULL default next_id();
13
+ alter table admin.menu add column if not exists name text;
14
+ alter table admin.menu add column if not exists ord numeric;
15
+ alter table admin.menu add column if not exists enabled boolean NOT NULL DEFAULT true;
16
+ alter table admin.menu add column if not exists uid text;
17
+ alter table admin.menu add column if not exists editor_id text;
18
+ alter table admin.menu add column if not exists editor_date timestamp without time zone;
19
+ alter table admin.menu add column if not exists cdate timestamp without time zone DEFAULT now();
20
+ alter table admin.menu add CONSTRAINT admin_menu_id_pkey PRIMARY KEY (menu_id);
21
+ alter table admin.menu add CONSTRAINT admin_menu_name_unique UNIQUE (name);
22
+
23
+ COMMENT ON TABLE admin.menu IS 'Пункти меню';
24
+ COMMENT ON COLUMN admin.menu.menu_id IS 'Ідентифікатор пункту меню';
25
+ COMMENT ON COLUMN admin.menu.name IS 'Назва пункту меню';
26
+ COMMENT ON COLUMN admin.menu.ord IS 'Порядковий номер';
27
+ COMMENT ON COLUMN admin.menu.enabled IS 'On / Off';
28
+
29
+
30
+
31
+
32
+ -- Role (Group)
33
+ -- drop table if exists admin.roles;
34
+ CREATE TABLE if not exists admin.roles();
35
+ alter table admin.roles DROP CONSTRAINT if exists admin_roles_id_pkey cascade;
36
+
37
+ ALTER TABLE admin.roles ADD COLUMN if not exists role_id text NOT NULL DEFAULT next_id();
38
+ ALTER TABLE admin.roles ADD COLUMN if not exists name text;
39
+ ALTER TABLE admin.roles ADD COLUMN if not exists enabled boolean;
40
+ ALTER TABLE admin.roles ADD COLUMN if not exists info text;
41
+ ALTER TABLE admin.roles ADD COLUMN if not exists cdate timestamp without time zone DEFAULT date_trunc('seconds'::text, now());
42
+ ALTER TABLE admin.roles ADD COLUMN if not exists uid text;
43
+ ALTER TABLE admin.roles ADD COLUMN if not exists editor_id text;
44
+ ALTER TABLE admin.roles ADD COLUMN if not exists editor_date timestamp without time zone;
45
+
46
+ ALTER TABLE admin.roles ADD CONSTRAINT admin_roles_id_pkey PRIMARY KEY(role_id);
47
+
48
+ COMMENT ON TABLE admin.roles IS 'Групи';
49
+ COMMENT ON COLUMN admin.roles.role_id IS 'ID';
50
+ COMMENT ON COLUMN admin.roles.name IS 'Назва групи';
51
+ COMMENT ON COLUMN admin.roles.enabled IS 'On / Off';
52
+ COMMENT ON COLUMN admin.roles.info IS 'Опис групи';
53
+ COMMENT ON COLUMN admin.roles.cdate IS 'Дата створення';
54
+ COMMENT ON COLUMN admin.roles.uid IS 'Хто створив';
55
+ COMMENT ON COLUMN admin.roles.editor_id IS 'Останній редагувач';
56
+ COMMENT ON COLUMN admin.roles.editor_date IS 'Дата останнього редагування';
57
+
58
+ -- Routes (Interfaces)
59
+ -- DROP TABLE if exists admin.routes;
60
+ CREATE TABLE if not exists admin.routes();
61
+ alter table admin.routes DROP CONSTRAINT if exists admin_route_id_pkey cascade;
62
+ alter table admin.routes DROP constraint if exists admin_route_menu_id_fkey cascade;
63
+ alter table admin.routes DROP constraint if exists admin_route_alias_query_unique cascade;
64
+
65
+ alter table admin.routes add column if not exists route_id text;
66
+ alter table admin.routes alter column route_id set not null;
67
+ alter table admin.routes alter column route_id set default next_id();
68
+ alter table admin.routes add column if not exists alias text;
69
+ alter table admin.routes alter column alias drop not null;
70
+ -- alter table admin.routes alter column alias set not null;
71
+ alter table admin.routes add column if not exists table_name text;
72
+ alter table admin.routes alter column table_name drop not null;
73
+ -- alter table admin.routes alter column table_name set not null;
74
+ alter table admin.routes add column if not exists query text;
75
+ alter table admin.routes add column if not exists actions text[];
76
+ alter table admin.routes add column if not exists access text;
77
+ alter table admin.routes add column if not exists title text;
78
+ alter table admin.routes add column if not exists public boolean;
79
+ alter table admin.routes add column if not exists menu_id text;
80
+ alter table admin.routes add column if not exists uid text;
81
+ alter table admin.routes add column if not exists editor_id text;
82
+ alter table admin.routes add column if not exists editor_date timestamp without time zone;
83
+ alter table admin.routes add column if not exists cdate timestamp without time zone DEFAULT now();
84
+ alter table admin.routes alter column cdate set DEFAULT now();
85
+ alter table admin.routes add column if not exists enabled boolean;
86
+ alter table admin.routes alter column enabled set NOT NULL;
87
+ alter table admin.routes alter column enabled set DEFAULT true;
88
+
89
+ alter table admin.routes add CONSTRAINT admin_route_id_pkey PRIMARY KEY (route_id);
90
+ alter table admin.routes add constraint admin_route_menu_id_fkey FOREIGN KEY (menu_id) REFERENCES admin.menu(menu_id);
91
+
92
+ -- alter table admin.routes add CONSTRAINT admin_route_alias_query_unique UNIQUE (alias, query);
93
+
94
+ COMMENT ON TABLE admin.routes IS 'Список інтерфейсів';
95
+ COMMENT ON COLUMN admin.routes.route_id IS 'Ідентифікатор інтерфейса';
96
+ COMMENT ON COLUMN admin.routes.alias IS 'Назва файлу інтерфейса';
97
+
98
+ COMMENT ON COLUMN admin.routes.table_name IS 'Таблиця в БД';
99
+ comment on column admin.routes.query is 'Запит до таблиці';
100
+ COMMENT ON COLUMN admin.routes.actions IS 'Дії';
101
+ COMMENT ON COLUMN admin.routes.access IS 'Рівень доступу';
102
+ COMMENT ON COLUMN admin.routes.title IS 'Назва інтерфейсу українською';
103
+ COMMENT ON COLUMN admin.routes.public IS 'Ознака чи для всіх показується';
104
+ COMMENT ON COLUMN admin.routes.enabled IS 'On / Off';
105
+ COMMENT ON COLUMN admin.routes.menu_id IS 'Пункт меню (для collapse)';
106
+
107
+ -- User <> Role (Group)
108
+ -- DROP TABLE if exists admin.user_roles;
109
+
110
+ CREATE TABLE if not exists admin.user_roles();
111
+ ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_role_id_pkey;
112
+ ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_pkey;
113
+ ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_role_id_fkey;
114
+ ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_user_uid_fkey;
115
+ ALTER TABLE admin.user_roles DROP CONSTRAINT IF EXISTS admin_user_roles_user_uid_role_id_key;
116
+ alter table admin.user_roles drop constraint if exists user_roles_user_uid_fkey;
117
+ alter table admin.user_roles drop constraint if exists user_roles_role_id_fkey;
118
+ alter table admin.user_roles drop constraint if exists admin_user_roles_role_id_fkey;
119
+
120
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS ugr_id text NOT NULL DEFAULT next_id();
121
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS user_uid text NOT NULL;
122
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS role_id text NOT NULL;
123
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS cdate timestamp without time zone DEFAULT date_trunc('seconds'::text, now());
124
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS uid text;
125
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS editor_id text;
126
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
127
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS expiration date;
128
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS access_granted text;
129
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS access_granted_time timestamp without time zone;
130
+ ALTER TABLE admin.user_roles ADD COLUMN IF NOT EXISTS actions text [];
131
+
132
+ ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_pkey PRIMARY KEY (ugr_id);
133
+ delete from admin.user_roles where user_uid not in (select uid from admin.users); -- prevent migration errors caused by missing users
134
+ ALTER TABLE admin.user_roles ADD CONSTRAINT user_roles_user_uid_fkey FOREIGN KEY (user_uid) REFERENCES admin.users (uid) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE;
135
+ ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_role_id_fkey FOREIGN KEY (role_id) REFERENCES admin.roles (role_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE;
136
+ ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_user_uid_role_id_key UNIQUE (user_uid, role_id);
137
+
138
+
139
+ COMMENT ON TABLE admin.user_roles IS 'Відношення користувачів до груп';
140
+ COMMENT ON COLUMN admin.user_roles.user_uid IS 'ID користувача';
141
+ COMMENT ON COLUMN admin.user_roles.role_id IS 'ID групи';
142
+ COMMENT ON COLUMN admin.user_roles.uid IS 'Користувач, який створив запис в БД';
143
+ COMMENT ON COLUMN admin.user_roles.expiration IS 'закінчення терміну дії доступу до групи';
144
+ COMMENT ON COLUMN admin.user_roles.access_granted IS 'Ідентифікатор користувача який надав доступ';
145
+ COMMENT ON COLUMN admin.user_roles.access_granted_time IS 'Час коли надали доступ';
146
+ COMMENT ON COLUMN admin.user_roles.actions IS 'Рівень доступу користувача в межах групи';
147
+
148
+ CREATE INDEX IF NOT EXISTS admin_user_roles_access_user_uid_idx ON admin.user_roles USING btree (user_uid COLLATE pg_catalog."default");
149
+ CREATE INDEX IF NOT EXISTS admin_user_roles_cdate_btree_idx ON admin.user_roles USING btree (cdate);
150
+ CREATE INDEX IF NOT EXISTS admin_user_roles_editor_date_btree_idx ON admin.user_roles USING btree (editor_date);
151
+ CREATE INDEX IF NOT EXISTS admin_user_roles_user_uid_gin_idx ON admin.user_roles USING gin (user_uid COLLATE pg_catalog."default" public.gin_trgm_ops);
152
+ CREATE INDEX IF NOT EXISTS admin_user_roles_role_id_idx ON admin.user_roles USING btree (role_id COLLATE pg_catalog."default");
153
+
154
+
155
+ -- Route (Interface) <> User / Role (Group)
156
+ -- drop table if exists admin.role_access;
157
+ drop table if exists admin.access;
158
+
159
+ CREATE TABLE if not exists admin.role_access();
160
+ alter table admin.role_access DROP CONSTRAINT if exists admin_access_id_pkey;
161
+ alter table admin.role_access DROP CONSTRAINT if exists admin_role_access_id_pkey;
162
+ alter table admin.role_access DROP CONSTRAINT if exists admin_access_role_id_fkey;
163
+ alter table admin.role_access DROP CONSTRAINT if exists admin_access_route_id_uid_unique;
164
+ alter table admin.role_access DROP CONSTRAINT if exists admin_access_route_id_fkey;
165
+
166
+ alter table admin.role_access add column if not exists access_id text NOT NULL DEFAULT next_id();
167
+ alter table admin.role_access add column if not exists route_id text NOT NULL;
168
+ alter table admin.role_access add column if not exists role_id text;
169
+ alter table admin.role_access add column if not exists user_uid text;
170
+ alter table admin.role_access add column if not exists scope text;
171
+ alter table admin.role_access add column if not exists actions text[];
172
+ ALTER TABLE admin.role_access ADD COLUMN IF NOT EXISTS access_granted text;
173
+ ALTER TABLE admin.role_access ADD COLUMN IF NOT EXISTS access_granted_time timestamp without time zone;
174
+ alter table admin.role_access add column if not exists cdate timestamp without time zone NOT NULL DEFAULT date_trunc('seconds'::text, now());
175
+ alter table admin.role_access add column if not exists uid text;
176
+ alter table admin.role_access add column if not exists editor_id text;
177
+ alter table admin.role_access add column if not exists editor_date timestamp without time zone;
178
+
179
+ alter table admin.role_access add CONSTRAINT admin_role_access_id_pkey PRIMARY KEY (access_id);
180
+ alter table admin.role_access add CONSTRAINT admin_access_role_id_fkey FOREIGN KEY (role_id) REFERENCES admin.roles (role_id);
181
+ alter table admin.role_access add CONSTRAINT admin_access_route_id_uid_unique UNIQUE (route_id, user_uid, role_id);
182
+ alter table admin.role_access add constraint admin_access_route_id_fkey FOREIGN KEY (route_id) REFERENCES admin.routes(route_id);
183
+
184
+
185
+ COMMENT ON TABLE admin.role_access IS 'Налаштування прав. Відношення груп / окремих користувачів до шаблонів';
186
+ COMMENT ON COLUMN admin.role_access.route_id IS 'ID шаблона';
187
+ COMMENT ON COLUMN admin.role_access.role_id IS 'ID групи';
188
+ COMMENT ON COLUMN admin.role_access.user_uid IS 'ID користувача';
189
+ COMMENT ON COLUMN admin.role_access.scope IS 'Обмеження виведення (власні, відповідальний, всі)';
190
+ COMMENT ON COLUMN admin.role_access.actions IS 'Доступні дії';
191
+ COMMENT ON COLUMN admin.role_access.access_granted IS 'Ідентифікатор користувача який надав доступ';
192
+ COMMENT ON COLUMN admin.role_access.access_granted_time IS 'Час коли надали доступ';
193
+
194
+ CREATE INDEX if not exists admin_access_route_id_idx ON admin.role_access USING btree (route_id COLLATE pg_catalog."default");
195
+ CREATE INDEX if not exists admin_access_role_id_idx ON admin.role_access USING btree (role_id COLLATE pg_catalog."default");
196
+
197
+ alter table admin.role_access add column if not exists resource_id text;
198
+ COMMENT ON COLUMN admin.role_access.resource_id IS 'ID ресурсу';
199
+ alter table admin.role_access alter column route_id drop not null;
200
+
201
+
@@ -1,44 +1,44 @@
1
- create schema if not exists admin;
2
-
3
- -- DROP TABLE is exists admin.templates;
4
- CREATE TABLE if not exists admin.templates();
5
- ALTER TABLE admin.templates add column if not exists template_id text NOT NULL DEFAULT next_id();
6
- ALTER TABLE admin.templates DROP CONSTRAINT if exists admin_templates_template_id_pkey cascade;
7
- ALTER TABLE admin.templates DROP CONSTRAINT if exists admin_templates_name_type_unique;
8
-
9
- ALTER TABLE admin.templates add column if not exists name text;
10
- ALTER TABLE admin.templates add column if not exists title text;
11
- ALTER TABLE admin.templates add column if not exists type text;
12
- ALTER TABLE admin.templates add column if not exists category text;
13
- ALTER TABLE admin.templates add column if not exists route_id text;
14
- ALTER TABLE admin.templates add column if not exists is_active boolean;
15
- ALTER TABLE admin.templates alter column is_active set default true;
16
- ALTER TABLE admin.templates add column if not exists body text;
17
- ALTER TABLE admin.templates add column if not exists description text;
18
- ALTER TABLE admin.templates add column if not exists placeholders json;
19
- ALTER TABLE admin.templates add column if not exists version numeric;
20
-
21
- ALTER TABLE admin.templates add column if not exists created_by text;
22
- ALTER TABLE admin.templates add column if not exists created_at timestamp without time zone;
23
- ALTER TABLE admin.templates alter column created_at set DEFAULT date_trunc('seconds'::text, now());
24
- ALTER TABLE admin.templates add column if not exists updated_by text;
25
- ALTER TABLE admin.templates add column if not exists updated_at timestamp without time zone;
26
- ALTER TABLE admin.templates alter column updated_at set DEFAULT date_trunc('seconds'::text, now());
27
-
28
- ALTER TABLE admin.templates add CONSTRAINT admin_templates_template_id_pkey PRIMARY KEY (template_id);
29
- ALTER TABLE admin.templates add CONSTRAINT admin_templates_name_type_unique UNIQUE (name, type);
30
-
31
- COMMENT ON TABLE admin.templates IS 'Шаблони для друку';
32
-
33
- COMMENT ON COLUMN admin.templates.created_by IS 'ID користувача';
34
-
35
- COMMENT ON COLUMN admin.templates.name IS 'Систамна назва шаблону';
36
- COMMENT ON COLUMN admin.templates.title IS 'Назва шаблону українською';
37
- COMMENT ON COLUMN admin.templates.type IS 'Тип вихідних даних шаблону (demo/user)';
38
- COMMENT ON COLUMN admin.templates.category IS 'Категорія або тип документа';
39
- COMMENT ON COLUMN admin.templates.route_id IS 'ID інтерфейсу';
40
- COMMENT ON COLUMN admin.templates.is_active IS 'Чи доступний шаблон для використання';
41
- COMMENT ON COLUMN admin.templates.body IS 'Body HTML';
42
- COMMENT ON COLUMN admin.templates.description IS 'Короткий опис шаблону';
43
- COMMENT ON COLUMN admin.templates.placeholders IS 'Список змінних, які можна вставляти';
1
+ create schema if not exists admin;
2
+
3
+ -- DROP TABLE is exists admin.templates;
4
+ CREATE TABLE if not exists admin.templates();
5
+ ALTER TABLE admin.templates add column if not exists template_id text NOT NULL DEFAULT next_id();
6
+ ALTER TABLE admin.templates DROP CONSTRAINT if exists admin_templates_template_id_pkey cascade;
7
+ ALTER TABLE admin.templates DROP CONSTRAINT if exists admin_templates_name_type_unique;
8
+
9
+ ALTER TABLE admin.templates add column if not exists name text;
10
+ ALTER TABLE admin.templates add column if not exists title text;
11
+ ALTER TABLE admin.templates add column if not exists type text;
12
+ ALTER TABLE admin.templates add column if not exists category text;
13
+ ALTER TABLE admin.templates add column if not exists route_id text;
14
+ ALTER TABLE admin.templates add column if not exists is_active boolean;
15
+ ALTER TABLE admin.templates alter column is_active set default true;
16
+ ALTER TABLE admin.templates add column if not exists body text;
17
+ ALTER TABLE admin.templates add column if not exists description text;
18
+ ALTER TABLE admin.templates add column if not exists placeholders json;
19
+ ALTER TABLE admin.templates add column if not exists version numeric;
20
+
21
+ ALTER TABLE admin.templates add column if not exists created_by text;
22
+ ALTER TABLE admin.templates add column if not exists created_at timestamp without time zone;
23
+ ALTER TABLE admin.templates alter column created_at set DEFAULT date_trunc('seconds'::text, now());
24
+ ALTER TABLE admin.templates add column if not exists updated_by text;
25
+ ALTER TABLE admin.templates add column if not exists updated_at timestamp without time zone;
26
+ ALTER TABLE admin.templates alter column updated_at set DEFAULT date_trunc('seconds'::text, now());
27
+
28
+ ALTER TABLE admin.templates add CONSTRAINT admin_templates_template_id_pkey PRIMARY KEY (template_id);
29
+ ALTER TABLE admin.templates add CONSTRAINT admin_templates_name_type_unique UNIQUE (name, type);
30
+
31
+ COMMENT ON TABLE admin.templates IS 'Шаблони для друку';
32
+
33
+ COMMENT ON COLUMN admin.templates.created_by IS 'ID користувача';
34
+
35
+ COMMENT ON COLUMN admin.templates.name IS 'Систамна назва шаблону';
36
+ COMMENT ON COLUMN admin.templates.title IS 'Назва шаблону українською';
37
+ COMMENT ON COLUMN admin.templates.type IS 'Тип вихідних даних шаблону (demo/user)';
38
+ COMMENT ON COLUMN admin.templates.category IS 'Категорія або тип документа';
39
+ COMMENT ON COLUMN admin.templates.route_id IS 'ID інтерфейсу';
40
+ COMMENT ON COLUMN admin.templates.is_active IS 'Чи доступний шаблон для використання';
41
+ COMMENT ON COLUMN admin.templates.body IS 'Body HTML';
42
+ COMMENT ON COLUMN admin.templates.description IS 'Короткий опис шаблону';
43
+ COMMENT ON COLUMN admin.templates.placeholders IS 'Список змінних, які можна вставляти';
44
44
  COMMENT ON COLUMN admin.templates.version IS 'Версія шаблону';
@@ -1,11 +1,11 @@
1
1
  import pgClients from "../../pg/pgClients.js";
2
2
  import { resourcesList } from "./getResources.js";
3
- const q = `select resource_id as name,
4
- array_intersect(coalesce(a.actions, array['read']), coalesce(c.actions, array['create', 'read', 'update', 'delete'])) as actions,
5
- b.name as role
6
- from admin.role_access a
7
- left join admin.roles b on a.role_id=b.role_id and b.enabled
8
- left join admin.user_roles c on a.role_id=c.role_id
3
+ const q = `select resource_id as name,
4
+ array_intersect(coalesce(a.actions, array['read']), coalesce(c.actions, array['create', 'read', 'update', 'delete'])) as actions,
5
+ b.name as role
6
+ from admin.role_access a
7
+ left join admin.roles b on a.role_id=b.role_id and b.enabled
8
+ left join admin.user_roles c on a.role_id=c.role_id
9
9
  where resource_id is not null and $1 in (a.user_uid, c.user_uid)`;
10
10
  export default async function getUserPermissions({ uid, resource, table, userType, }, pg = pgClients.client) {
11
11
  if (!uid)
@@ -15,7 +15,7 @@ export default async function getUserPermissions({ uid, resource, table, userTyp
15
15
  }
16
16
  // ? in case pg.pk not set yet
17
17
  const pks = await pg
18
- .query(`SELECT json_object_agg(conrelid::regclass, (SELECT attname FROM pg_attribute WHERE attrelid = c.conrelid AND attnum = c.conkey[1]) )
18
+ .query(`SELECT json_object_agg(conrelid::regclass, (SELECT attname FROM pg_attribute WHERE attrelid = c.conrelid AND attnum = c.conkey[1]) )
19
19
  FROM pg_constraint c WHERE contype = 'p' AND connamespace::regnamespace::text = 'admin'`)
20
20
  .then((el) => el.rows?.[0]?.json_object_agg || {});
21
21
  const permissions = pks["admin.role_access"] &&
@@ -83,10 +83,10 @@ export default async function authorizeUser(user, req, authType = "creds-user",
83
83
  twofaEnabled &&
84
84
  !req.session?.secondFactorPassed) {
85
85
  const verified = await pg
86
- .query(`select
87
- enabled and social_auth_url is not null as verified
88
- from admin.users_social_auth
89
- where uid = $1
86
+ .query(`select
87
+ enabled and social_auth_url is not null as verified
88
+ from admin.users_social_auth
89
+ where uid = $1
90
90
  and social_auth_type = $2`, [user.uid, "TOTP"])
91
91
  .then((el) => el.rows?.[0]?.verified || false);
92
92
  const redirect2fa = `${config.auth?.link?.["2fa"]?.login || "/2factor"}?redirect=${redirectUrl.startsWith("/") ? redirectUrl : "/"}`;
@@ -1,24 +1,24 @@
1
- const insertSocialSQL = `insert into admin.users_social_auth(uid, phone, user_name, sur_name, email, social_auth_id,
2
- social_auth_type, social_auth_date, social_auth_obj, city, enabled)
3
- select $9, $1, $2, $3, $4, $5,
4
- $6, now(), $7, $8, true
5
- on conflict(social_auth_id,email) do update set
6
- phone=excluded.phone, user_name=excluded.user_name,
7
- sur_name=excluded.sur_name, email=excluded.email, social_auth_id=excluded.social_auth_id,
8
- social_auth_type=excluded.social_auth_type, social_auth_date=excluded.social_auth_date,
1
+ const insertSocialSQL = `insert into admin.users_social_auth(uid, phone, user_name, sur_name, email, social_auth_id,
2
+ social_auth_type, social_auth_date, social_auth_obj, city, enabled)
3
+ select $9, $1, $2, $3, $4, $5,
4
+ $6, now(), $7, $8, true
5
+ on conflict(social_auth_id,email) do update set
6
+ phone=excluded.phone, user_name=excluded.user_name,
7
+ sur_name=excluded.sur_name, email=excluded.email, social_auth_id=excluded.social_auth_id,
8
+ social_auth_type=excluded.social_auth_type, social_auth_date=excluded.social_auth_date,
9
9
  social_auth_obj=excluded.social_auth_obj, city=excluded.city, enabled=excluded.enabled`;
10
- const insertUserSQL = `insert into admin.users (enabled, phone, user_name, sur_name, father_name, email, user_rnokpp)
11
- values(true, $1, $2, $3, $4, $5, $6)
12
- on conflict (user_rnokpp) do update set
13
- phone=excluded.phone,
14
- user_name=excluded.user_name,
15
- sur_name=excluded.sur_name,
16
- father_name=excluded.father_name,
17
- email=excluded.email
10
+ const insertUserSQL = `insert into admin.users (enabled, phone, user_name, sur_name, father_name, email, user_rnokpp)
11
+ values(true, $1, $2, $3, $4, $5, $6)
12
+ on conflict (user_rnokpp) do update set
13
+ phone=excluded.phone,
14
+ user_name=excluded.user_name,
15
+ sur_name=excluded.sur_name,
16
+ father_name=excluded.father_name,
17
+ email=excluded.email
18
18
  returning uid`;
19
- const updateUserSQL = `update admin.users set
20
- phone=$1, user_name=$2, sur_name=$3,
21
- father_name=coalesce($4, father_name), email=$5, social_auth_id=$6,
19
+ const updateUserSQL = `update admin.users set
20
+ phone=$1, user_name=$2, sur_name=$3,
21
+ father_name=coalesce($4, father_name), email=$5, social_auth_id=$6,
22
22
  social_auth_type=$7 where uid=$8 returning uid`;
23
23
  const deleteSocialIdSQL = `delete from admin.users_social_auth where social_auth_id=$1 or email=$2`;
24
24
  import config from "../../../../config.js";
@@ -121,7 +121,7 @@ export default async function getQuery({ pg, data, }) {
121
121
  client.release();
122
122
  }
123
123
  const result = await pg
124
- .query(`select * from admin.users where uid =(select uid from admin.users_social_auth
124
+ .query(`select * from admin.users where uid =(select uid from admin.users_social_auth
125
125
  where ${id ? "social_auth_id=$1" : "email=$1"} limit 1)`, [id || email])
126
126
  .then((el) => el.rows?.[0] || {});
127
127
  return { ...result, isNewUser: !(userId || socialUserId) };
@@ -7,8 +7,8 @@ import config from "../../../config.js";
7
7
  import getRedis from "../redis/funcs/getRedis.js";
8
8
  import { ForbiddenError } from "../../../errors.js";
9
9
  const { prefix = "/api" } = config;
10
- const { secret } = config.auth || {};
11
- if (!secret) {
10
+ const { auth } = config || {};
11
+ if (!auth?.secret && process.platform !== 'win32') {
12
12
  throw new Error("environment variable auth.secret not set");
13
13
  }
14
14
  const fastifyPassport = new Authenticator();
@@ -127,7 +127,7 @@ function plugin(fastify) {
127
127
  parseOptions: config?.auth?.cookieOptions || { secure: false },
128
128
  });
129
129
  fastify.register(session, {
130
- secret: secret,
130
+ secret: auth?.secret || 'fastify-session-redis-store-secret',
131
131
  cookieName: "session_auth",
132
132
  cookie: config?.auth?.cookieOptions || { secure: false },
133
133
  store: new RedisStore({