diff --git a/spec/fixtures/defaults_config.yaml b/spec/fixtures/defaults_config.yaml index 71b57fe..9c214c5 100644 --- a/spec/fixtures/defaults_config.yaml +++ b/spec/fixtures/defaults_config.yaml @@ -42,6 +42,11 @@ data_loss_prevention: keyboard: enabled: true rate_limit: unlimited + watermark: + # image: /etc/kasmvnc/picture.png + # location: 10,10 + # tint: 255,20,20,128 + # repeat_spacing: 10 logging: level: off diff --git a/unix/kasmvnc_defaults.yaml b/unix/kasmvnc_defaults.yaml index a4997e2..1556825 100644 --- a/unix/kasmvnc_defaults.yaml +++ b/unix/kasmvnc_defaults.yaml @@ -84,9 +84,13 @@ data_loss_prevention: keyboard: enabled: true rate_limit: unlimited - # "verbose" SETTING LOGS YOUR PRIVATE INFORMATION. Keypresses and clipboard - # content. + watermark: + # image: /etc/kasmvnc/picture.png + # location: 10,10 + # tint: 255,20,20,128 + # repeat_spacing: 10 logging: + # "verbose" SETTING LOGS YOUR PRIVATE INFORMATION. Keypresses and clipboard content level: off encoding: diff --git a/unix/vncserver b/unix/vncserver index cae50ac..14a3c22 100755 --- a/unix/vncserver +++ b/unix/vncserver @@ -1720,6 +1720,50 @@ sub DefineConfigToCLIConversion { $value; } }), + KasmVNC::CliOption->new({ + name => 'DLP_WatermarkImage', + configKeys => [ + KasmVNC::ConfigKey->new({ + name => "data_loss_prevention.watermark.image", + type => KasmVNC::ConfigKey::ANY + }) + ] + }), + KasmVNC::CliOption->new({ + name => 'DLP_WatermarkLocation', + configKeys => [ + KasmVNC::ConfigKey->new({ + name => "data_loss_prevention.watermark.location", + type => KasmVNC::ConfigKey::ANY, + validator => KasmVNC::PatternValidator->new({ + pattern => qr/^\d+,\d+$/, + errorMessage => "Must be an x and y offset separated by a comma: 10,10" + }) + }) + ] + }), + KasmVNC::CliOption->new({ + name => 'DLP_WatermarkTint', + configKeys => [ + KasmVNC::ConfigKey->new({ + name => "data_loss_prevention.watermark.tint", + type => KasmVNC::ConfigKey::ANY, + validator => KasmVNC::PatternValidator->new({ + pattern => qr/^\d{1,3},\d{1,3},\d{1,3},\d{1,3}$/, + errorMessage => "Must be RBGA formatted: 255,255,255,128" + }) + }) + ] + }), + KasmVNC::CliOption->new({ + name => 'DLP_WatermarkRepeatSpace', + configKeys => [ + KasmVNC::ConfigKey->new({ + name => "data_loss_prevention.watermark.repeat_spacing", + type => KasmVNC::ConfigKey::INT + }) + ] + }), KasmVNC::CliOption->new({ name => 'DLP_Log', configKeys => [