From 7b744d074eb26b9ab850624d6007627b7792a08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Bompard?= Date: Wed, 18 Dec 2013 16:27:24 +0000 Subject: [PATCH] Mailman: sync with recent developments --- roles/mailman/files/import-mm2.py | 10 +++------- roles/mailman/files/pg-give-rights.py | 13 +++++++++++++ roles/mailman/files/post-update.sh | 7 ++++++- roles/mailman/tasks/main.yml | 4 ---- roles/mailman/templates/settings.py.j2 | 7 +++++-- 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/roles/mailman/files/import-mm2.py b/roles/mailman/files/import-mm2.py index a508aa5632..2afa10c5fa 100755 --- a/roles/mailman/files/import-mm2.py +++ b/roles/mailman/files/import-mm2.py @@ -66,17 +66,13 @@ class Importer(object): (list_is_new or not self.opts.new_only): call(["sudo", "kittystore-import", "-p", self.config["confdir"], "-s", "settings_admin", - "-l", listaddr, "--continue", "--no-refresh", + "-l", listaddr, "--continue", "--no-sync-mailman", archivefile]) if self.index_path: call(["sudo", "chown", "mailman:apache", "-R", self.index_path]) call(["sudo", "chmod", "g+w", self.index_path]) - if self.opts.no_archives: - call(["sudo", "kittystore-refresh-cache", "-p", - self.config["confdir"], "-s", "settings_admin"]) - else: - call(["sudo", "kittystore-refresh-cache", "-p", - self.config["confdir"], "-s", "settings_admin", "-f"]) + call(["sudo", "kittystore-sync-mailman", "-p", + self.config["confdir"], "-s", "settings_admin"]) diff --git a/roles/mailman/files/pg-give-rights.py b/roles/mailman/files/pg-give-rights.py index 893d90a194..e99dd77f2b 100755 --- a/roles/mailman/files/pg-give-rights.py +++ b/roles/mailman/files/pg-give-rights.py @@ -18,9 +18,11 @@ def give_rights(dbhost, dbuser, dbpasswd, dbname): conn = psycopg2.connect(host=dbhost, user=dbuser, password=dbpasswd, database=dbname) cur = conn.cursor() + # Database permissions dbrightsquery = "GRANT CONNECT,TEMP ON DATABASE %s TO %sapp;" % (dbname, dbname) print dbrightsquery cur.execute(dbrightsquery) + # Table permissions cur.execute(""" SELECT 'GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON ' || relname || ' TO %sapp;' FROM pg_class @@ -28,6 +30,17 @@ def give_rights(dbhost, dbuser, dbpasswd, dbname): WHERE nspname = 'public' AND relkind IN ('r', 'v'); """ % dbname) queries = [ q[0] for q in cur ] + for query in queries: + print query + cur.execute(query) + # Sequence permissions + cur.execute(""" + SELECT 'GRANT USAGE,SELECT,UPDATE ON ' || relname || ' TO %sapp;' + FROM pg_class + JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace + WHERE nspname = 'public' AND relkind = 'S'; + """ % dbname) + queries = [ q[0] for q in cur ] for query in queries: print query cur.execute(query) diff --git a/roles/mailman/files/post-update.sh b/roles/mailman/files/post-update.sh index 74dbd6dbd1..616c1ef58d 100755 --- a/roles/mailman/files/post-update.sh +++ b/roles/mailman/files/post-update.sh @@ -13,7 +13,7 @@ INDEXDIR=$BASEDIR/kittystore_search_index django-admin collectstatic --clear --noinput --pythonpath $CONFDIR --settings settings django-admin assets build --parse-templates --pythonpath $CONFDIR --settings settings django-admin syncdb --pythonpath $CONFDIR --settings settings_admin -django-admin migrate hyperkitty --pythonpath $CONFDIR --settings settings_admin +django-admin migrate --pythonpath $CONFDIR --settings settings_admin django-admin loaddata /etc/postorius/sites/default/initial-user.json --pythonpath $CONFDIR --settings settings_admin kittystore-updatedb --pythonpath $CONFDIR --settings settings_admin chown mailman:mailman -R $INDEXDIR @@ -21,3 +21,8 @@ chmod g+w -R $INDEXDIR # Give database rights to the non-admin user $BASEDIR/bin/pg-give-rights.py + +# Reload Apache to flush the python cache +systemctl reload httpd +# Restart Mailman3 since kittystore was updated +systemctl restart mailman3 diff --git a/roles/mailman/tasks/main.yml b/roles/mailman/tasks/main.yml index 18f121e8a8..fa02c48af6 100644 --- a/roles/mailman/tasks/main.yml +++ b/roles/mailman/tasks/main.yml @@ -150,10 +150,6 @@ notify: - reload apache -- name: copy the manage.py script - command: /bin/cp /etc/hyperkitty/sites/default/manage.py "{{ mailman_webui_confdir }}/manage.py" - creates="{{ mailman_webui_confdir }}/manage.py" - - name: create the kittystore plain text index dir file: path="{{ mailman_webui_basedir }}/kittystore_search_index" state=directory owner=mailman group=mailman mode=0755 diff --git a/roles/mailman/templates/settings.py.j2 b/roles/mailman/templates/settings.py.j2 index 5e4b5a679d..1fd96f1f80 100644 --- a/roles/mailman/templates/settings.py.j2 +++ b/roles/mailman/templates/settings.py.j2 @@ -220,9 +220,9 @@ AUTH_PROFILE_MODULE = 'hyperkitty.UserProfile' # https://github.com/twaddington/django-gravatar # # Gravatar base url. -#GRAVATAR_URL = 'http://www.gravatar.com/' +#GRAVATAR_URL = 'http://cdn.libravatar.org/' # Gravatar base secure https url. -#GRAVATAR_SECURE_URL = 'https://secure.gravatar.com/' +#GRAVATAR_SECURE_URL = 'https://seccdn.libravatar.org/' # Gravatar size in pixels. #GRAVATAR_DEFAULT_SIZE = '80' # An image url or one of the following: 'mm', 'identicon', 'monsterid', 'wavatar', 'retro'. @@ -328,6 +328,9 @@ KITTYSTORE_SEARCH_INDEX = '{{ mailman_webui_basedir }}/kittystore_search_index' # Use SSL when logged in USE_SSL = True +# Only display mailing-lists from the same virtual host as the webserver +FILTER_VHOST = False + # WARNING: the KITTYSTORE_DEBUG variable below will output every SQL query. # That's a huge amount of text, don't enable it if you don't need to. KITTYSTORE_DEBUG = False