pub struct AdminConfig {
pub default_role: String,
pub admin_roles: Option<Vec<String>>,
pub admin_user_ids: Option<Vec<String>>,
pub roles: Option<HashMap<String, RolePermissions>>,
pub default_ban_reason: Option<String>,
pub default_ban_expires_in: Option<f64>,
pub impersonation_session_duration: Option<f64>,
pub banned_user_message: String,
pub banned_user_message_callback: Option<AdminBannedUserMessageHandler>,
pub allow_impersonating_admins: bool,
}Expand description
Configuration for the admin plugin.
Fields§
§default_role: StringDefault role assigned to new users and role-less permission checks.
admin_roles: Option<Vec<String>>Roles treated as “admin” for target-admin checks such as impersonation. None uses the default admin role; explicit lists are validated at initialization.
admin_user_ids: Option<Vec<String>>Users that always bypass admin permission checks.
roles: Option<HashMap<String, RolePermissions>>Custom role definitions. When provided, these replace the built-in
admin and user role permissions. None uses builtins; Some(empty) grants none.
default_ban_reason: Option<String>Default reason applied when banning a user without an explicit reason.
default_ban_expires_in: Option<f64>Default ban duration in seconds, including fractions; zero/NaN act as unset.
impersonation_session_duration: Option<f64>Custom impersonation lifetime in seconds, including fractions; zero/NaN use one hour.
banned_user_message: StringMessage surfaced to banned users.
banned_user_message_callback: Option<AdminBannedUserMessageHandler>Optional asynchronous message callback over the stored application user.
When configured, this takes precedence over banned_user_message.
allow_impersonating_admins: boolWhether other admin users may be impersonated.