Merge branch 'crans'
This commit is contained in:
commit
1856ef7f5e
5 changed files with 35 additions and 6 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,3 +3,4 @@ config.ini
|
|||
**.list
|
||||
generated/*
|
||||
aliases_local
|
||||
virtuals_local
|
|
@ -1,6 +1,6 @@
|
|||
## Re2o - Switchs config
|
||||
|
||||
This service uses Re2o API to generate Swicths config files
|
||||
This service uses Re2o API to generate postfix config files
|
||||
|
||||
More info on https://gitlab.federez.net/re2o/switchs/wikis/home
|
||||
|
||||
|
|
28
main.py
28
main.py
|
@ -9,7 +9,7 @@ from jinja2 import Environment, FileSystemLoader
|
|||
import requests
|
||||
import base64
|
||||
import json
|
||||
from subprocess import call
|
||||
from subprocess import call, DEVNULL
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
@ -30,13 +30,15 @@ def generate(api_client):
|
|||
all_users = api_client.list("localemail/users")
|
||||
# Création de l'environnement Jinja
|
||||
env = Environment(loader=FileSystemLoader(path))
|
||||
template = env.get_template('templates/list')
|
||||
|
||||
# On commence par les alias
|
||||
template = env.get_template('templates/list_alias')
|
||||
aliases_rendered = template.render(data=all_users)
|
||||
|
||||
fichier = open(path+'/generated/aliases','w')
|
||||
fichier = open(path+'/generated/aliases','w', encoding='utf-8')
|
||||
|
||||
if os.path.isfile(path+'/aliases_local'): # if a local aliases file exist, add it's content at the beginning
|
||||
local = open(path+'/aliases_local','r')
|
||||
local = open(path+'/aliases_local','r', encoding='utf-8')
|
||||
for line in local.readlines():
|
||||
fichier.write(line)
|
||||
local.close()
|
||||
|
@ -44,7 +46,23 @@ def generate(api_client):
|
|||
fichier.write(aliases_rendered)
|
||||
fichier.close()
|
||||
|
||||
call(["/usr/bin/newaliases"], stdout=open(os.devnull, 'wb')) # Update the aliases config file
|
||||
# On enchaine avec les redirections
|
||||
template = env.get_template('templates/list_virtual')
|
||||
virtuals_rendered = template.render(data=all_users)
|
||||
|
||||
fichier = open(path+'/generated/virtual','w', encoding='utf-8')
|
||||
|
||||
if os.path.isfile(path+'/virtuals_local'): # if a local aliases file exist, add it's content at the beginning
|
||||
local = open(path+'/virtuals_local','r', encoding='utf-8')
|
||||
for line in local.readlines():
|
||||
fichier.write(line)
|
||||
local.close()
|
||||
|
||||
fichier.write(virtuals_rendered)
|
||||
fichier.close()
|
||||
|
||||
call(["/usr/bin/newaliases"], stdout=DEVNULL) # Update the aliases config file
|
||||
call(["/usr/sbin/postmap", path+"/generated/virtual"], stdout=DEVNULL) # Update the aliases config file
|
||||
call(["/usr/sbin/postfix", "reload"]) # force the reloading now
|
||||
|
||||
for arg in sys.argv:
|
||||
|
|
10
templates/list_virtual
Normal file
10
templates/list_virtual
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Liste d'association alias:addresse des users
|
||||
|
||||
|
||||
{% for user in data -%}
|
||||
{%- for alias in user.email_address -%}
|
||||
{%- if user.local_email_redirect -%}
|
||||
{{ alias.complete_email_address }} {{ user.email }}
|
||||
{% endif %}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
Loading…
Reference in a new issue