hazo_auth 4.3.0 → 4.4.0
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.
- package/cli-src/lib/already_logged_in_config.server.ts +1 -1
- package/cli-src/lib/app_logger.ts +1 -1
- package/cli-src/lib/auth/auth_types.ts +7 -0
- package/cli-src/lib/auth/auth_utils.server.ts +2 -2
- package/cli-src/lib/auth/dev_lock_validator.edge.ts +171 -0
- package/cli-src/lib/auth/hazo_get_auth.server.ts +84 -13
- package/cli-src/lib/auth/index.ts +5 -5
- package/cli-src/lib/auth/nextauth_config.ts +4 -4
- package/cli-src/lib/auth/org_cache.ts +148 -0
- package/cli-src/lib/auth/server_auth.ts +2 -2
- package/cli-src/lib/auth/session_token_validator.edge.ts +1 -0
- package/cli-src/lib/auth_utility_config.server.ts +1 -1
- package/cli-src/lib/config/config_loader.server.ts +1 -1
- package/cli-src/lib/config/default_config.ts +44 -0
- package/cli-src/lib/dev_lock_config.server.ts +148 -0
- package/cli-src/lib/email_verification_config.server.ts +3 -3
- package/cli-src/lib/file_types_config.server.ts +1 -1
- package/cli-src/lib/forgot_password_config.server.ts +3 -3
- package/cli-src/lib/hazo_connect_instance.server.ts +2 -2
- package/cli-src/lib/hazo_connect_setup.server.ts +2 -2
- package/cli-src/lib/index.ts +24 -24
- package/cli-src/lib/login_config.server.ts +4 -4
- package/cli-src/lib/messages_config.server.ts +1 -1
- package/cli-src/lib/multi_tenancy_config.server.ts +94 -0
- package/cli-src/lib/my_settings_config.server.ts +7 -7
- package/cli-src/lib/oauth_config.server.ts +2 -2
- package/cli-src/lib/password_requirements_config.server.ts +2 -2
- package/cli-src/lib/profile_pic_menu_config.server.ts +1 -1
- package/cli-src/lib/profile_picture_config.server.ts +2 -2
- package/cli-src/lib/register_config.server.ts +5 -5
- package/cli-src/lib/reset_password_config.server.ts +4 -4
- package/cli-src/lib/scope_hierarchy_config.server.ts +2 -2
- package/cli-src/lib/services/email_service.ts +2 -2
- package/cli-src/lib/services/email_verification_service.ts +3 -3
- package/cli-src/lib/services/login_service.ts +3 -3
- package/cli-src/lib/services/oauth_service.ts +4 -4
- package/cli-src/lib/services/org_service.ts +965 -0
- package/cli-src/lib/services/password_change_service.ts +3 -3
- package/cli-src/lib/services/password_reset_service.ts +3 -3
- package/cli-src/lib/services/profile_picture_remove_service.ts +3 -3
- package/cli-src/lib/services/profile_picture_service.ts +5 -5
- package/cli-src/lib/services/registration_service.ts +8 -8
- package/cli-src/lib/services/scope_labels_service.ts +3 -3
- package/cli-src/lib/services/scope_service.ts +2 -2
- package/cli-src/lib/services/session_token_service.ts +3 -2
- package/cli-src/lib/services/token_service.ts +2 -2
- package/cli-src/lib/services/user_profiles_service.ts +4 -4
- package/cli-src/lib/services/user_scope_service.ts +3 -3
- package/cli-src/lib/services/user_update_service.ts +4 -4
- package/cli-src/lib/ui_shell_config.server.ts +1 -1
- package/cli-src/lib/ui_sizes_config.server.ts +1 -1
- package/cli-src/lib/user_fields_config.server.ts +1 -1
- package/cli-src/lib/user_management_config.server.ts +1 -1
- package/cli-src/lib/user_profiles_config.server.ts +1 -1
- package/cli-src/lib/utils/error_sanitizer.ts +1 -1
- package/cli-src/server/types/app_types.ts +74 -0
- package/cli-src/server/types/express.d.ts +16 -0
- package/dist/components/layouts/dev_lock/index.d.ts +29 -0
- package/dist/components/layouts/dev_lock/index.d.ts.map +1 -0
- package/dist/components/layouts/dev_lock/index.js +60 -0
- package/dist/components/layouts/index.d.ts +2 -0
- package/dist/components/layouts/index.d.ts.map +1 -1
- package/dist/components/layouts/index.js +1 -0
- package/dist/components/layouts/org_management/index.d.ts +26 -0
- package/dist/components/layouts/org_management/index.d.ts.map +1 -0
- package/dist/components/layouts/org_management/index.js +75 -0
- package/dist/components/layouts/user_management/components/org_hierarchy_tab.d.ts +13 -0
- package/dist/components/layouts/user_management/components/org_hierarchy_tab.d.ts.map +1 -0
- package/dist/components/layouts/user_management/components/org_hierarchy_tab.js +276 -0
- package/dist/components/layouts/user_management/index.d.ts +3 -1
- package/dist/components/layouts/user_management/index.d.ts.map +1 -1
- package/dist/components/layouts/user_management/index.js +10 -4
- package/dist/lib/auth/auth_types.d.ts +6 -0
- package/dist/lib/auth/auth_types.d.ts.map +1 -1
- package/dist/lib/auth/dev_lock_validator.edge.d.ts +38 -0
- package/dist/lib/auth/dev_lock_validator.edge.d.ts.map +1 -0
- package/dist/lib/auth/dev_lock_validator.edge.js +122 -0
- package/dist/lib/auth/hazo_get_auth.server.d.ts.map +1 -1
- package/dist/lib/auth/hazo_get_auth.server.js +61 -1
- package/dist/lib/auth/org_cache.d.ts +65 -0
- package/dist/lib/auth/org_cache.d.ts.map +1 -0
- package/dist/lib/auth/org_cache.js +103 -0
- package/dist/lib/config/default_config.d.ts +76 -0
- package/dist/lib/config/default_config.d.ts.map +1 -1
- package/dist/lib/config/default_config.js +42 -0
- package/dist/lib/dev_lock_config.server.d.ts +41 -0
- package/dist/lib/dev_lock_config.server.d.ts.map +1 -0
- package/dist/lib/dev_lock_config.server.js +50 -0
- package/dist/lib/multi_tenancy_config.server.d.ts +30 -0
- package/dist/lib/multi_tenancy_config.server.d.ts.map +1 -0
- package/dist/lib/multi_tenancy_config.server.js +41 -0
- package/dist/lib/services/org_service.d.ts +191 -0
- package/dist/lib/services/org_service.d.ts.map +1 -0
- package/dist/lib/services/org_service.js +746 -0
- package/dist/page_components/dev_lock.d.ts +11 -0
- package/dist/page_components/dev_lock.d.ts.map +1 -0
- package/dist/page_components/dev_lock.js +17 -0
- package/dist/page_components/index.d.ts +1 -0
- package/dist/page_components/index.d.ts.map +1 -1
- package/dist/page_components/index.js +1 -0
- package/dist/page_components/org_management.d.ts +27 -0
- package/dist/page_components/org_management.d.ts.map +1 -0
- package/dist/page_components/org_management.js +18 -0
- package/hazo_auth_config.example.ini +30 -0
- package/package.json +23 -2
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// file_description: server-only helper to read dev lock configuration from hazo_auth_config.ini
|
|
2
|
+
// section: imports
|
|
3
|
+
import { get_config_value, get_config_boolean, get_config_number } from "./config/config_loader.server.js";
|
|
4
|
+
import { DEFAULT_DEV_LOCK } from "./config/default_config.js";
|
|
5
|
+
|
|
6
|
+
// section: types
|
|
7
|
+
export type DevLockConfig = {
|
|
8
|
+
/** Enable the development lock screen */
|
|
9
|
+
enable: boolean;
|
|
10
|
+
/** Session duration in days */
|
|
11
|
+
session_duration_days: number;
|
|
12
|
+
/** Background color */
|
|
13
|
+
background_color: string;
|
|
14
|
+
/** Logo image path */
|
|
15
|
+
logo_path: string;
|
|
16
|
+
/** Logo width in pixels */
|
|
17
|
+
logo_width: number;
|
|
18
|
+
/** Logo height in pixels */
|
|
19
|
+
logo_height: number;
|
|
20
|
+
/** Application name displayed below logo */
|
|
21
|
+
application_name: string;
|
|
22
|
+
/** Limited access text displayed with lock icon */
|
|
23
|
+
limited_access_text: string;
|
|
24
|
+
/** Password input placeholder text */
|
|
25
|
+
password_placeholder: string;
|
|
26
|
+
/** Submit button text */
|
|
27
|
+
submit_button_text: string;
|
|
28
|
+
/** Error message for incorrect password */
|
|
29
|
+
error_message: string;
|
|
30
|
+
/** Text color for labels */
|
|
31
|
+
text_color: string;
|
|
32
|
+
/** Accent color for button */
|
|
33
|
+
accent_color: string;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// section: constants
|
|
37
|
+
const SECTION_NAME = "hazo_auth__dev_lock";
|
|
38
|
+
|
|
39
|
+
// section: helpers
|
|
40
|
+
/**
|
|
41
|
+
* Reads dev lock configuration from hazo_auth_config.ini file
|
|
42
|
+
* Falls back to defaults if hazo_auth_config.ini is not found or section is missing
|
|
43
|
+
* @returns Dev lock configuration options
|
|
44
|
+
*/
|
|
45
|
+
export function get_dev_lock_config(): DevLockConfig {
|
|
46
|
+
const enable = get_config_boolean(
|
|
47
|
+
SECTION_NAME,
|
|
48
|
+
"enable",
|
|
49
|
+
DEFAULT_DEV_LOCK.enable
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
const session_duration_days = get_config_number(
|
|
53
|
+
SECTION_NAME,
|
|
54
|
+
"session_duration_days",
|
|
55
|
+
DEFAULT_DEV_LOCK.session_duration_days
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
const background_color = get_config_value(
|
|
59
|
+
SECTION_NAME,
|
|
60
|
+
"background_color",
|
|
61
|
+
DEFAULT_DEV_LOCK.background_color
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
const logo_path = get_config_value(
|
|
65
|
+
SECTION_NAME,
|
|
66
|
+
"logo_path",
|
|
67
|
+
DEFAULT_DEV_LOCK.logo_path
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
const logo_width = get_config_number(
|
|
71
|
+
SECTION_NAME,
|
|
72
|
+
"logo_width",
|
|
73
|
+
DEFAULT_DEV_LOCK.logo_width
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
const logo_height = get_config_number(
|
|
77
|
+
SECTION_NAME,
|
|
78
|
+
"logo_height",
|
|
79
|
+
DEFAULT_DEV_LOCK.logo_height
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
const application_name = get_config_value(
|
|
83
|
+
SECTION_NAME,
|
|
84
|
+
"application_name",
|
|
85
|
+
DEFAULT_DEV_LOCK.application_name
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
const limited_access_text = get_config_value(
|
|
89
|
+
SECTION_NAME,
|
|
90
|
+
"limited_access_text",
|
|
91
|
+
DEFAULT_DEV_LOCK.limited_access_text
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
const password_placeholder = get_config_value(
|
|
95
|
+
SECTION_NAME,
|
|
96
|
+
"password_placeholder",
|
|
97
|
+
DEFAULT_DEV_LOCK.password_placeholder
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
const submit_button_text = get_config_value(
|
|
101
|
+
SECTION_NAME,
|
|
102
|
+
"submit_button_text",
|
|
103
|
+
DEFAULT_DEV_LOCK.submit_button_text
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
const error_message = get_config_value(
|
|
107
|
+
SECTION_NAME,
|
|
108
|
+
"error_message",
|
|
109
|
+
DEFAULT_DEV_LOCK.error_message
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
const text_color = get_config_value(
|
|
113
|
+
SECTION_NAME,
|
|
114
|
+
"text_color",
|
|
115
|
+
DEFAULT_DEV_LOCK.text_color
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
const accent_color = get_config_value(
|
|
119
|
+
SECTION_NAME,
|
|
120
|
+
"accent_color",
|
|
121
|
+
DEFAULT_DEV_LOCK.accent_color
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
return {
|
|
125
|
+
enable,
|
|
126
|
+
session_duration_days,
|
|
127
|
+
background_color,
|
|
128
|
+
logo_path,
|
|
129
|
+
logo_width,
|
|
130
|
+
logo_height,
|
|
131
|
+
application_name,
|
|
132
|
+
limited_access_text,
|
|
133
|
+
password_placeholder,
|
|
134
|
+
submit_button_text,
|
|
135
|
+
error_message,
|
|
136
|
+
text_color,
|
|
137
|
+
accent_color,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Helper to check if dev lock is enabled in config
|
|
143
|
+
* Note: Also requires HAZO_AUTH_DEV_LOCK_ENABLED env var for actual enforcement
|
|
144
|
+
* @returns true if dev lock is enabled in config
|
|
145
|
+
*/
|
|
146
|
+
export function is_dev_lock_enabled(): boolean {
|
|
147
|
+
return get_config_boolean(SECTION_NAME, "enable", DEFAULT_DEV_LOCK.enable);
|
|
148
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// file_description: server-only helper to read email verification layout configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_already_logged_in_config } from "./already_logged_in_config.server";
|
|
4
|
-
import { get_config_value } from "./config/config_loader.server";
|
|
5
|
-
import verifyEmailDefaultImage from "../assets/images/verify_email_default.jpg";
|
|
3
|
+
import { get_already_logged_in_config } from "./already_logged_in_config.server.js";
|
|
4
|
+
import { get_config_value } from "./config/config_loader.server.js";
|
|
5
|
+
import verifyEmailDefaultImage from "../assets/images/verify_email_default.jpg.js";
|
|
6
6
|
|
|
7
7
|
// section: types
|
|
8
8
|
import type { StaticImageData } from "next/image";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// file_description: server-only helper to read file type configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_array } from "./config/config_loader.server";
|
|
3
|
+
import { get_config_array } from "./config/config_loader.server.js";
|
|
4
4
|
|
|
5
5
|
// section: types
|
|
6
6
|
export type FileTypesConfig = {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// file_description: server-only helper to read forgot password layout configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_already_logged_in_config } from "./already_logged_in_config.server";
|
|
4
|
-
import { get_config_value } from "./config/config_loader.server";
|
|
5
|
-
import forgotPasswordDefaultImage from "../assets/images/forgot_password_default.jpg";
|
|
3
|
+
import { get_already_logged_in_config } from "./already_logged_in_config.server.js";
|
|
4
|
+
import { get_config_value } from "./config/config_loader.server.js";
|
|
5
|
+
import forgotPasswordDefaultImage from "../assets/images/forgot_password_default.jpg.js";
|
|
6
6
|
|
|
7
7
|
// section: types
|
|
8
8
|
import type { StaticImageData } from "next/image";
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
// section: imports
|
|
6
6
|
import type { HazoConnectAdapter } from "hazo_connect";
|
|
7
7
|
import { getHazoConnectSingleton } from "hazo_connect/nextjs/setup";
|
|
8
|
-
import { create_sqlite_hazo_connect_server, get_hazo_connect_config_options } from "./hazo_connect_setup.server";
|
|
8
|
+
import { create_sqlite_hazo_connect_server, get_hazo_connect_config_options } from "./hazo_connect_setup.server.js";
|
|
9
9
|
import { initializeAdminService, getSqliteAdminService } from "hazo_connect/server";
|
|
10
|
-
import { create_app_logger } from "./app_logger";
|
|
10
|
+
import { create_app_logger } from "./app_logger.js";
|
|
11
11
|
|
|
12
12
|
// section: singleton_state
|
|
13
13
|
let hazoConnectInstance: HazoConnectAdapter | null = null;
|
|
@@ -6,8 +6,8 @@ import { createHazoConnect } from "hazo_connect/server";
|
|
|
6
6
|
import { HazoConfig } from "hazo_config/dist/lib";
|
|
7
7
|
import path from "path";
|
|
8
8
|
import fs from "fs";
|
|
9
|
-
import { create_app_logger } from "./app_logger";
|
|
10
|
-
import { read_config_section } from "./config/config_loader.server";
|
|
9
|
+
import { create_app_logger } from "./app_logger.js";
|
|
10
|
+
import { read_config_section } from "./config/config_loader.server.js";
|
|
11
11
|
|
|
12
12
|
// section: helpers
|
|
13
13
|
/**
|
package/cli-src/lib/index.ts
CHANGED
|
@@ -6,41 +6,41 @@ export * from "./auth/index";
|
|
|
6
6
|
export * from "./services/index";
|
|
7
7
|
|
|
8
8
|
// section: utility_exports
|
|
9
|
-
export { cn, merge_class_names } from "./utils";
|
|
9
|
+
export { cn, merge_class_names } from "./utils.js";
|
|
10
10
|
|
|
11
11
|
// section: config_exports
|
|
12
|
-
export { get_config_value, get_config_number, get_config_boolean, get_config_array, read_config_section } from "./config/config_loader.server";
|
|
12
|
+
export { get_config_value, get_config_number, get_config_boolean, get_config_array, read_config_section } from "./config/config_loader.server.js";
|
|
13
13
|
|
|
14
14
|
// section: hazo_connect_exports
|
|
15
|
-
export { create_sqlite_hazo_connect } from "./hazo_connect_setup";
|
|
16
|
-
export { get_hazo_connect_instance } from "./hazo_connect_instance.server";
|
|
15
|
+
export { create_sqlite_hazo_connect } from "./hazo_connect_setup.js";
|
|
16
|
+
export { get_hazo_connect_instance } from "./hazo_connect_instance.server.js";
|
|
17
17
|
|
|
18
18
|
// section: logger_exports
|
|
19
|
-
export { create_app_logger } from "./app_logger";
|
|
19
|
+
export { create_app_logger } from "./app_logger.js";
|
|
20
20
|
|
|
21
21
|
// section: config_server_exports
|
|
22
|
-
export { get_login_config } from "./login_config.server";
|
|
23
|
-
export { get_register_config } from "./register_config.server";
|
|
24
|
-
export { get_forgot_password_config } from "./forgot_password_config.server";
|
|
25
|
-
export { get_reset_password_config } from "./reset_password_config.server";
|
|
26
|
-
export { get_email_verification_config } from "./email_verification_config.server";
|
|
27
|
-
export { get_my_settings_config } from "./my_settings_config.server";
|
|
28
|
-
export { get_user_management_config } from "./user_management_config.server";
|
|
29
|
-
export { get_profile_picture_config } from "./profile_picture_config.server";
|
|
30
|
-
export { get_profile_pic_menu_config } from "./profile_pic_menu_config.server";
|
|
31
|
-
export { get_already_logged_in_config } from "./already_logged_in_config.server";
|
|
32
|
-
export { get_ui_shell_config } from "./ui_shell_config.server";
|
|
33
|
-
export { get_ui_sizes_config } from "./ui_sizes_config.server";
|
|
34
|
-
export { get_auth_utility_config } from "./auth_utility_config.server";
|
|
35
|
-
export { get_password_requirements_config } from "./password_requirements_config.server";
|
|
36
|
-
export { get_messages_config } from "./messages_config.server";
|
|
37
|
-
export { get_user_fields_config } from "./user_fields_config.server";
|
|
38
|
-
export { get_file_types_config } from "./file_types_config.server";
|
|
39
|
-
export { get_oauth_config, is_google_oauth_enabled, is_email_password_enabled } from "./oauth_config.server";
|
|
22
|
+
export { get_login_config } from "./login_config.server.js";
|
|
23
|
+
export { get_register_config } from "./register_config.server.js";
|
|
24
|
+
export { get_forgot_password_config } from "./forgot_password_config.server.js";
|
|
25
|
+
export { get_reset_password_config } from "./reset_password_config.server.js";
|
|
26
|
+
export { get_email_verification_config } from "./email_verification_config.server.js";
|
|
27
|
+
export { get_my_settings_config } from "./my_settings_config.server.js";
|
|
28
|
+
export { get_user_management_config } from "./user_management_config.server.js";
|
|
29
|
+
export { get_profile_picture_config } from "./profile_picture_config.server.js";
|
|
30
|
+
export { get_profile_pic_menu_config } from "./profile_pic_menu_config.server.js";
|
|
31
|
+
export { get_already_logged_in_config } from "./already_logged_in_config.server.js";
|
|
32
|
+
export { get_ui_shell_config } from "./ui_shell_config.server.js";
|
|
33
|
+
export { get_ui_sizes_config } from "./ui_sizes_config.server.js";
|
|
34
|
+
export { get_auth_utility_config } from "./auth_utility_config.server.js";
|
|
35
|
+
export { get_password_requirements_config } from "./password_requirements_config.server.js";
|
|
36
|
+
export { get_messages_config } from "./messages_config.server.js";
|
|
37
|
+
export { get_user_fields_config } from "./user_fields_config.server.js";
|
|
38
|
+
export { get_file_types_config } from "./file_types_config.server.js";
|
|
39
|
+
export { get_oauth_config, is_google_oauth_enabled, is_email_password_enabled } from "./oauth_config.server.js";
|
|
40
40
|
export type { OAuthConfig } from "./oauth_config.server";
|
|
41
41
|
|
|
42
42
|
// section: util_exports
|
|
43
|
-
export { sanitize_error_for_user } from "./utils/error_sanitizer";
|
|
43
|
+
export { sanitize_error_for_user } from "./utils/error_sanitizer.js";
|
|
44
44
|
export type { ErrorSanitizationOptions } from "./utils/error_sanitizer";
|
|
45
45
|
export * from "./utils/api_route_helpers";
|
|
46
46
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// file_description: server-only helper to read login layout configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_value } from "./config/config_loader.server";
|
|
4
|
-
import { get_already_logged_in_config } from "./already_logged_in_config.server";
|
|
5
|
-
import { get_oauth_config, type OAuthConfig } from "./oauth_config.server";
|
|
6
|
-
import loginDefaultImage from "../assets/images/login_default.jpg";
|
|
3
|
+
import { get_config_value } from "./config/config_loader.server.js";
|
|
4
|
+
import { get_already_logged_in_config } from "./already_logged_in_config.server.js";
|
|
5
|
+
import { get_oauth_config, type OAuthConfig } from "./oauth_config.server.js";
|
|
6
|
+
import loginDefaultImage from "../assets/images/login_default.jpg.js";
|
|
7
7
|
|
|
8
8
|
// section: types
|
|
9
9
|
import type { StaticImageData } from "next/image";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// file_description: server-only helper to read user-facing messages from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_value } from "./config/config_loader.server";
|
|
3
|
+
import { get_config_value } from "./config/config_loader.server.js";
|
|
4
4
|
|
|
5
5
|
// section: types
|
|
6
6
|
export type MessagesConfig = {
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// file_description: server-only helper to read multi-tenancy configuration from hazo_auth_config.ini
|
|
2
|
+
// section: imports
|
|
3
|
+
import {
|
|
4
|
+
get_config_value,
|
|
5
|
+
get_config_number,
|
|
6
|
+
get_config_boolean,
|
|
7
|
+
} from "./config/config_loader.server.js";
|
|
8
|
+
import { DEFAULT_MULTI_TENANCY } from "./config/default_config.js";
|
|
9
|
+
|
|
10
|
+
// section: types
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Multi-tenancy configuration options
|
|
14
|
+
*/
|
|
15
|
+
export type MultiTenancyConfig = {
|
|
16
|
+
/** Whether multi-tenancy is enabled (default: false) */
|
|
17
|
+
enable_multi_tenancy: boolean;
|
|
18
|
+
/** Cache TTL in minutes for org lookups (default: 15) */
|
|
19
|
+
org_cache_ttl_minutes: number;
|
|
20
|
+
/** Maximum entries in org cache (default: 1000) */
|
|
21
|
+
org_cache_max_entries: number;
|
|
22
|
+
/** Default user limit per organization (0 = unlimited) */
|
|
23
|
+
default_user_limit: number;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// section: constants
|
|
27
|
+
|
|
28
|
+
const SECTION_NAME = "hazo_auth__multi_tenancy";
|
|
29
|
+
|
|
30
|
+
// section: helpers
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Reads multi-tenancy configuration from hazo_auth_config.ini file
|
|
34
|
+
* Falls back to defaults if config file is not found or section is missing
|
|
35
|
+
* @returns Multi-tenancy configuration options
|
|
36
|
+
*/
|
|
37
|
+
export function get_multi_tenancy_config(): MultiTenancyConfig {
|
|
38
|
+
// Core multi-tenancy enablement
|
|
39
|
+
const enable_multi_tenancy = get_config_boolean(
|
|
40
|
+
SECTION_NAME,
|
|
41
|
+
"enable_multi_tenancy",
|
|
42
|
+
DEFAULT_MULTI_TENANCY.enable_multi_tenancy,
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
// Cache settings
|
|
46
|
+
const org_cache_ttl_minutes = get_config_number(
|
|
47
|
+
SECTION_NAME,
|
|
48
|
+
"org_cache_ttl_minutes",
|
|
49
|
+
DEFAULT_MULTI_TENANCY.org_cache_ttl_minutes,
|
|
50
|
+
);
|
|
51
|
+
const org_cache_max_entries = get_config_number(
|
|
52
|
+
SECTION_NAME,
|
|
53
|
+
"org_cache_max_entries",
|
|
54
|
+
DEFAULT_MULTI_TENANCY.org_cache_max_entries,
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
// Default user limit
|
|
58
|
+
const default_user_limit = get_config_number(
|
|
59
|
+
SECTION_NAME,
|
|
60
|
+
"default_user_limit",
|
|
61
|
+
DEFAULT_MULTI_TENANCY.default_user_limit,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
enable_multi_tenancy,
|
|
66
|
+
org_cache_ttl_minutes,
|
|
67
|
+
org_cache_max_entries,
|
|
68
|
+
default_user_limit,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Checks if multi-tenancy is enabled in the configuration
|
|
74
|
+
* Convenience function for quick checks
|
|
75
|
+
*/
|
|
76
|
+
export function is_multi_tenancy_enabled(): boolean {
|
|
77
|
+
return get_config_boolean(
|
|
78
|
+
SECTION_NAME,
|
|
79
|
+
"enable_multi_tenancy",
|
|
80
|
+
DEFAULT_MULTI_TENANCY.enable_multi_tenancy,
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Gets the default user limit from config
|
|
86
|
+
* Returns 0 if not configured (unlimited)
|
|
87
|
+
*/
|
|
88
|
+
export function get_default_user_limit(): number {
|
|
89
|
+
return get_config_number(
|
|
90
|
+
SECTION_NAME,
|
|
91
|
+
"default_user_limit",
|
|
92
|
+
DEFAULT_MULTI_TENANCY.default_user_limit,
|
|
93
|
+
);
|
|
94
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// file_description: server-only helper to read my settings layout configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_value } from "./config/config_loader.server";
|
|
4
|
-
import { get_user_fields_config } from "./user_fields_config.server";
|
|
5
|
-
import { get_password_requirements_config } from "./password_requirements_config.server";
|
|
6
|
-
import { get_profile_picture_config } from "./profile_picture_config.server";
|
|
7
|
-
import { get_messages_config } from "./messages_config.server";
|
|
8
|
-
import { get_ui_sizes_config } from "./ui_sizes_config.server";
|
|
9
|
-
import { get_file_types_config } from "./file_types_config.server";
|
|
3
|
+
import { get_config_value } from "./config/config_loader.server.js";
|
|
4
|
+
import { get_user_fields_config } from "./user_fields_config.server.js";
|
|
5
|
+
import { get_password_requirements_config } from "./password_requirements_config.server.js";
|
|
6
|
+
import { get_profile_picture_config } from "./profile_picture_config.server.js";
|
|
7
|
+
import { get_messages_config } from "./messages_config.server.js";
|
|
8
|
+
import { get_ui_sizes_config } from "./ui_sizes_config.server.js";
|
|
9
|
+
import { get_file_types_config } from "./file_types_config.server.js";
|
|
10
10
|
|
|
11
11
|
// section: types
|
|
12
12
|
export type MySettingsConfig = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// file_description: server-only helper to read OAuth configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_value, get_config_boolean } from "./config/config_loader.server";
|
|
4
|
-
import { DEFAULT_OAUTH } from "./config/default_config";
|
|
3
|
+
import { get_config_value, get_config_boolean } from "./config/config_loader.server.js";
|
|
4
|
+
import { DEFAULT_OAUTH } from "./config/default_config.js";
|
|
5
5
|
|
|
6
6
|
// section: types
|
|
7
7
|
export type OAuthConfig = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// file_description: server-only helper to read shared password requirements configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_number, get_config_boolean } from "./config/config_loader.server";
|
|
4
|
-
import { DEFAULT_PASSWORD_REQUIREMENTS } from "./config/default_config";
|
|
3
|
+
import { get_config_number, get_config_boolean } from "./config/config_loader.server.js";
|
|
4
|
+
import { DEFAULT_PASSWORD_REQUIREMENTS } from "./config/default_config.js";
|
|
5
5
|
|
|
6
6
|
// section: types
|
|
7
7
|
export type PasswordRequirementsConfig = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// file_description: server-only helper to read profile picture menu configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_value, get_config_boolean, get_config_array } from "./config/config_loader.server";
|
|
3
|
+
import { get_config_value, get_config_boolean, get_config_array } from "./config/config_loader.server.js";
|
|
4
4
|
|
|
5
5
|
// section: types
|
|
6
6
|
// Note: These types are also used in client components, but TypeScript types are erased at runtime
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// file_description: server-only helper to read profile picture configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_boolean, get_config_value, get_config_number, read_config_section } from "./config/config_loader.server";
|
|
4
|
-
import { create_app_logger } from "./app_logger";
|
|
3
|
+
import { get_config_boolean, get_config_value, get_config_number, read_config_section } from "./config/config_loader.server.js";
|
|
4
|
+
import { create_app_logger } from "./app_logger.js";
|
|
5
5
|
|
|
6
6
|
// section: types
|
|
7
7
|
export type ProfilePictureConfig = {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// file_description: server-only helper to read register layout configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_boolean, get_config_value, read_config_section } from "./config/config_loader.server";
|
|
4
|
-
import { get_password_requirements_config } from "./password_requirements_config.server";
|
|
5
|
-
import { get_already_logged_in_config } from "./already_logged_in_config.server";
|
|
6
|
-
import { get_user_fields_config } from "./user_fields_config.server";
|
|
7
|
-
import registerDefaultImage from "../assets/images/register_default.jpg";
|
|
3
|
+
import { get_config_boolean, get_config_value, read_config_section } from "./config/config_loader.server.js";
|
|
4
|
+
import { get_password_requirements_config } from "./password_requirements_config.server.js";
|
|
5
|
+
import { get_already_logged_in_config } from "./already_logged_in_config.server.js";
|
|
6
|
+
import { get_user_fields_config } from "./user_fields_config.server.js";
|
|
7
|
+
import registerDefaultImage from "../assets/images/register_default.jpg.js";
|
|
8
8
|
|
|
9
9
|
// section: types
|
|
10
10
|
import type { StaticImageData } from "next/image";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// file_description: server-only helper to read reset password layout configuration from hazo_auth_config.ini
|
|
2
2
|
// section: imports
|
|
3
|
-
import { get_config_value } from "./config/config_loader.server";
|
|
4
|
-
import { get_already_logged_in_config } from "./already_logged_in_config.server";
|
|
5
|
-
import { get_password_requirements_config } from "./password_requirements_config.server";
|
|
6
|
-
import resetPasswordDefaultImage from "../assets/images/reset_password_default.jpg";
|
|
3
|
+
import { get_config_value } from "./config/config_loader.server.js";
|
|
4
|
+
import { get_already_logged_in_config } from "./already_logged_in_config.server.js";
|
|
5
|
+
import { get_password_requirements_config } from "./password_requirements_config.server.js";
|
|
6
|
+
import resetPasswordDefaultImage from "../assets/images/reset_password_default.jpg.js";
|
|
7
7
|
|
|
8
8
|
// section: types
|
|
9
9
|
import type { StaticImageData } from "next/image";
|
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
get_config_number,
|
|
6
6
|
get_config_boolean,
|
|
7
7
|
get_config_array,
|
|
8
|
-
} from "./config/config_loader.server";
|
|
8
|
+
} from "./config/config_loader.server.js";
|
|
9
9
|
import type { ScopeLevel } from "./services/scope_service";
|
|
10
|
-
import { SCOPE_LEVELS } from "./services/scope_service";
|
|
10
|
+
import { SCOPE_LEVELS } from "./services/scope_service.js";
|
|
11
11
|
|
|
12
12
|
// section: types
|
|
13
13
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// section: imports
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import path from "path";
|
|
5
|
-
import { create_app_logger } from "../app_logger";
|
|
6
|
-
import { read_config_section } from "../config/config_loader.server";
|
|
5
|
+
import { create_app_logger } from "../app_logger.js";
|
|
6
|
+
import { read_config_section } from "../config/config_loader.server.js";
|
|
7
7
|
import type { EmailerConfig, SendEmailOptions } from "hazo_notify";
|
|
8
8
|
|
|
9
9
|
// section: types
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import type { HazoConnectAdapter } from "hazo_connect";
|
|
4
4
|
import { createCrudService } from "hazo_connect/server";
|
|
5
5
|
import argon2 from "argon2";
|
|
6
|
-
import { create_token } from "./token_service";
|
|
7
|
-
import { send_template_email } from "./email_service";
|
|
8
|
-
import { create_app_logger } from "../app_logger";
|
|
6
|
+
import { create_token } from "./token_service.js";
|
|
7
|
+
import { send_template_email } from "./email_service.js";
|
|
8
|
+
import { create_app_logger } from "../app_logger.js";
|
|
9
9
|
|
|
10
10
|
// section: types
|
|
11
11
|
export type EmailVerificationTokenData = {
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import type { HazoConnectAdapter } from "hazo_connect";
|
|
4
4
|
import { createCrudService } from "hazo_connect/server";
|
|
5
5
|
import argon2 from "argon2";
|
|
6
|
-
import { create_app_logger } from "../app_logger";
|
|
7
|
-
import { sanitize_error_for_user } from "../utils/error_sanitizer";
|
|
8
|
-
import { get_filename, get_line_number } from "../utils/api_route_helpers";
|
|
6
|
+
import { create_app_logger } from "../app_logger.js";
|
|
7
|
+
import { sanitize_error_for_user } from "../utils/error_sanitizer.js";
|
|
8
|
+
import { get_filename, get_line_number } from "../utils/api_route_helpers.js";
|
|
9
9
|
|
|
10
10
|
// section: types
|
|
11
11
|
export type LoginData = {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import type { HazoConnectAdapter } from "hazo_connect";
|
|
4
4
|
import { createCrudService } from "hazo_connect/server";
|
|
5
5
|
import { randomUUID } from "crypto";
|
|
6
|
-
import { create_app_logger } from "../app_logger";
|
|
7
|
-
import { sanitize_error_for_user } from "../utils/error_sanitizer";
|
|
8
|
-
import { get_line_number } from "../utils/api_route_helpers";
|
|
9
|
-
import { get_oauth_config } from "../oauth_config.server";
|
|
6
|
+
import { create_app_logger } from "../app_logger.js";
|
|
7
|
+
import { sanitize_error_for_user } from "../utils/error_sanitizer.js";
|
|
8
|
+
import { get_line_number } from "../utils/api_route_helpers.js";
|
|
9
|
+
import { get_oauth_config } from "../oauth_config.server.js";
|
|
10
10
|
|
|
11
11
|
// section: types
|
|
12
12
|
export type GoogleOAuthData = {
|