Exu
Exu is the main namespace for the exu web administration daemon.
Constants
VERSION = "0.1.0"
The version of the exu application.
Class methods
assign_domain_to_user(username : String, domain : String)
Assign domain ownership to user in exu.yaml under lock
extract_username_from_dn(dn : String) : String | Nil
ameba:disable Metrics/CyclomaticComplexity
generate_session_token(username : String) : String
Generate HMAC-SHA256 signed session cookie token
get_client_dn(env : HTTP::Server::Context) : String
Get client identity passed via mTLS header
get_session_username(env : HTTP::Server::Context) : String | Nil
Extract authenticated username from session cookie or legacy client cert header fallback
get_user_info_by_username(username : String) : UserInfo
Load role mapping directly by username
has_domain_access?(user_info : UserInfo, domain : String) : Bool
Verify domain access permissions
mail_hostname
Returns the configured mail server hostname from /etc/mailname or System.hostname
remove_domain_from_user(username : String, domain : String)
Remove domain ownership from user in exu.yaml under lock
run_command(cmd : String, args : Array(String), input : String | Nil = nil) : Tuple(Bool, String)
Helper to run system commands safely with optional stdin input
set_domain_dmarc(domain : String, dmarc : DmarcConfig)
Update DMARC policy for a domain in exu.yaml under lock