From 5bad5d43fa659b96c0b5a0853c46c9097a6f8192 Mon Sep 17 00:00:00 2001 From: Andrea Dell'Amico Date: Fri, 13 Dec 2019 13:43:03 +0100 Subject: [PATCH] Add support for a customized logo and for enigma (pgp). --- library/roles/roundcube/defaults/main.yml | 12 +++++++++++- .../roundcube/tasks/roundcube-install.yml | 11 +++++++++++ .../roundcube/templates/config.inc.php.j2 | 19 +++++++++++++------ 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/library/roles/roundcube/defaults/main.yml b/library/roles/roundcube/defaults/main.yml index 3d00b861..8e91332a 100644 --- a/library/roles/roundcube/defaults/main.yml +++ b/library/roles/roundcube/defaults/main.yml @@ -12,6 +12,7 @@ roundcube_data_base_dir: /srv roundcube_data_dir: '{{ roundcube_data_base_dir }}/roundcube' roundcube_logs_dir: '{{ roundcube_data_dir }}/logs' roundcube_temp_dir: '{{ roundcube_data_dir }}/temp' +roundcube_skin_logo: 'null' roundcube_servername: '{{ ansible_fqdn }}' @@ -28,6 +29,8 @@ roundcube_imap_connection_type: 'tls' roundcube_smtp_server: 'localhost' roundcube_smtp_port: 587 roundcube_smtp_automatic_credentials: True +roundcube_smtp_user: '%u' +roundcube_smtp_pass: '%p' roundcube_support_url: '' roundcube_product_name: 'Roundcube Webmail' #roundcube_crypt_key: 'Use a vault file' @@ -97,9 +100,16 @@ roundcube_optional_plugins: - filesystem_attachments - redundant_attachments - managesieve - - enigma - krb_authentication +roundcube_install_enigma: True +roundcube_enigma_plugin: enigma +roundcube_enigma_data_dir: '{{ roundcube_data_dir }}/enigma' +roundcube_enigma_deps: + - gnupg + - pinentry-curses + - pinentry-tty + roundcube_managesieve_config: True roundcube_managesieve_auth: 'plain' roundcube_managesieve_port: 4190 diff --git a/library/roles/roundcube/tasks/roundcube-install.yml b/library/roles/roundcube/tasks/roundcube-install.yml index 6907b9c0..e63219ea 100644 --- a/library/roles/roundcube/tasks/roundcube-install.yml +++ b/library/roles/roundcube/tasks/roundcube-install.yml @@ -32,6 +32,17 @@ tags: [ 'roundcube', 'roundcube_plugins', 'roundcube_config' ] +- name: Manage the Enigma (PGP) plugin + block: + - name: Create the enigma data directory + file: dest={{ roundcube_enigma_data_dir }} state=directory owner={{ roundcube_user }} group={{ roundcube_user }} + + - name: Install the gnupg packages + apt: pkg={{ roundcube_enigma_deps }} state=present cache_valid_time=1800 + + when: roundcube_install_enigma | bool + tags: [ 'roundcube', 'roundcube_plugins', 'roundcube_config', 'roundcube_enigma' ] + - block: - name: Configure the roundcube instance template: src=config.inc.php.j2 dest={{ roundcube_web_root }}/config/config.inc.php owner=root group=root mode=0444 diff --git a/library/roles/roundcube/templates/config.inc.php.j2 b/library/roles/roundcube/templates/config.inc.php.j2 index 5a51ef5b..f574903c 100644 --- a/library/roles/roundcube/templates/config.inc.php.j2 +++ b/library/roles/roundcube/templates/config.inc.php.j2 @@ -58,11 +58,11 @@ $config['smtp_port'] = {{ roundcube_smtp_port }}; {% if roundcube_smtp_automatic_credentials %} // SMTP username (if required) if you use %u as the username Roundcube // will use the current username for login -$config['smtp_user'] = '%u'; +$config['smtp_user'] = '{{ roundcube_smtp_user }}'; // SMTP password (if required) if you use %p as the password Roundcube // will use the current user's password for login -$config['smtp_pass'] = '%p'; +$config['smtp_pass'] = '{{ roundcube_smtp_pass }}'; {% endif %} // provide an URL where a user can get support for this Roundcube installation @@ -80,10 +80,11 @@ $config['des_key'] = '{{ roundcube_crypt_key }}'; $config['cipher_method'] = 'AES-256-CBC'; // List of active plugins (in plugins/ directory) -$config['plugins'] = array({% for plug in roundcube_default_plugins %}'{{ plug }}', {% endfor %}{% for opt_plug in roundcube_optional_plugins %}'{{ opt_plug }}', {% endfor %}{% for add_plug in roundcube_additional_plugins %}'{{ add_plug }}', {% endfor %}); +$config['plugins'] = array({% for plug in roundcube_default_plugins %}'{{ plug }}', {% endfor %}{% for opt_plug in roundcube_optional_plugins %}'{{ opt_plug }}', {% endfor %}{% for add_plug in roundcube_additional_plugins %}'{{ add_plug }}', {% endfor %}{% if roundcube_install_enigma %}{{ roundcube_enigma_plugin }}{% endif %}); -// skin name: folder from skins/ -$config['skin'] = 'elastic'; +{% if roundcube_install_enigma %} +$config['enigma_pgp_homedir'] = '{{ roundcube_enigma_data_dir }}/'; +{% endif %} {% if roundcube_use_memcache %} // Use these hosts for accessing memcached @@ -130,6 +131,12 @@ $config['redis_max_allowed_packet'] = '2M'; // ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! $config['enable_installer'] = false; +// skin name: folder from skins/ +$config['skin'] = 'elastic'; + +// limit skins available/shown in the settings section +$config['skins_allowed'] = array('elastic'); + // Logo image replacement. Specifies location of the image as: // - URL relative to the document root of this Roundcube installation // - full URL with http:// or https:// prefix @@ -161,7 +168,7 @@ $config['enable_installer'] = false; "[print]" => "/images/logo_print.png", ); */ -$config['skin_logo'] = null; +$config['skin_logo'] = '{{ roundcube_skin_logo }}'; // automatically create a new Roundcube user when log-in the first time. // a new user will be created once the IMAP login succeeds.