Skip to main content

cloudillo_core/
core_settings.rs

1//! Core server settings registration
2//!
3//! Registers global server-level settings for logging, features, etc.
4
5use crate::prelude::*;
6use crate::settings::{
7	PermissionLevel, SettingDefinition, SettingScope, SettingValue, SettingsRegistry,
8};
9
10/// Register all core settings
11pub fn register_settings(registry: &mut SettingsRegistry) -> ClResult<()> {
12	// Server registration enabled
13	registry.register(
14		SettingDefinition::builder("server.registration_enabled")
15			.description("Allow new user registrations")
16			.default(SettingValue::Bool(true))
17			.scope(SettingScope::Global)
18			.permission(PermissionLevel::Admin)
19			.build()?,
20	)?;
21
22	// Wildcard pattern for UI settings - allows storing arbitrary UI preferences
23	registry.register(
24		SettingDefinition::builder("ui.*")
25			.description("User interface settings and preferences")
26			.scope(SettingScope::Tenant)
27			.permission(PermissionLevel::User)
28			.optional(true)
29			.build()?,
30	)?;
31
32	// Wildcard pattern for application settings - allows storing arbitrary app state
33	registry.register(
34		SettingDefinition::builder("app.*")
35			.description("Application-specific settings and state")
36			.scope(SettingScope::Tenant)
37			.permission(PermissionLevel::User)
38			.optional(true)
39			.build()?,
40	)?;
41
42	Ok(())
43}
44
45// vim: ts=4