Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Benjamin Graillot
scripts
Commits
025e5cfd
Commit
025e5cfd
authored
Aug 28, 2017
by
Gabriel Detraz
Browse files
Ajoute un mode de notification des actions et des erreurs
parent
9bf1de23
Changes
6
Hide whitespace changes
Inline
Side-by-side
gestion/mail/mail_bienvenue.py
View file @
025e5cfd
...
...
@@ -25,6 +25,7 @@ ldap = shortcuts.lc_ldap_readonly()
from
gestion
import
mail
as
mail_module
From
=
"cableurs@crans.org"
def
get_users_list
(
mode
=
'day'
):
now
=
datetime
.
now
()
...
...
@@ -43,28 +44,44 @@ def get_users_list(mode='day'):
return
users
def
send_to_users
(
users
,
verbose
=
False
):
errors
=
[]
for
user
in
users
:
mail
=
user
.
get_mail
()
if
'@crans.org'
in
mail
:
home
=
user
.
get
(
'homeDirectory'
,
default
=
[
None
])[
0
]
if
home
:
if
not
os
.
path
.
exists
(
home
.
value
):
errors
.
append
(
user
)
return
if
verbose
:
print
(
"Envoie du mail de bienvenue à "
+
user
)
print
(
u
"Envoie du mail de bienvenue à "
+
unicode
(
user
)
)
print
(
mail
)
mail
=
user
.
get_mail
()
send_bienvenue_mail
(
mail
)
return
return
users
,
errors
def
send_bienvenue_mail
(
mail
):
From
=
"cableurs@crans.org"
if
'@crans.org'
in
mail
:
if
not
os
.
path
.
exists
(
"/home/"
+
mail
.
replace
(
'@crans.org'
,
''
)):
return
with
mail_module
.
ServerConnection
()
as
conn_smtp
:
mailtxt
=
mail_module
.
generate
(
'bienvenue'
,
{
'To'
:
mail
,
'From'
:
From
}).
as_string
()
conn_smtp
.
sendmail
(
From
,
(
mail
,),
mailtxt
)
return
def
notif_sent_bienvenue
(
users
,
errors
,
mode
=
'all'
):
To
=
'respbats@crans.org'
if
not
mode
==
'all'
and
not
errors
:
return
with
mail_module
.
ServerConnection
()
as
conn_smtp
:
all_users
=
u
','
.
join
([
user
.
__str__
()
for
user
in
users
])
or
u
"aucun"
all_errors
=
u
', '
.
join
([
user
.
__str__
()
for
user
in
errors
])
or
u
"aucun"
mailtxt
=
mail_module
.
generate
(
'notifbienvenue'
,
{
'users'
:
all_users
,
'errors'
:
all_errors
,
'To'
:
To
,
'From'
:
From
}).
as_string
()
conn_smtp
.
sendmail
(
From
,
(
To
,),
mailtxt
)
parser
=
argparse
.
ArgumentParser
()
parser
.
add_argument
(
'--hour'
,
action
=
"store_true"
,
help
=
"Traite l'ensemble des users crées dans l'heure précédente"
)
parser
.
add_argument
(
'--day'
,
action
=
"store_true"
,
help
=
"Traite l'ensemble des users crées dans la journée précédente"
)
parser
.
add_argument
(
'--mail'
,
help
=
"Envoie un mail de bienvenue au mail précisé"
)
parser
.
add_argument
(
'--verbose'
,
action
=
"store_true"
,
help
=
"Mode verbeux"
)
parser
.
add_argument
(
'--notifall'
,
action
=
"store_true"
,
help
=
"Notifie toutes les actions"
)
parser
.
add_argument
(
'--notiferrors'
,
action
=
"store_true"
,
help
=
"Notifie les erreurs"
)
if
__name__
==
'__main__'
:
args
=
parser
.
parse_args
()
...
...
@@ -75,8 +92,13 @@ if __name__ == '__main__':
if
args
.
mail
:
print
(
"Envoie du mail de bienvenue au mail "
+
args
.
mail
)
send_bienvenue_mail
(
args
.
mail
)
if
args
.
day
:
send_to_users
(
get_users_list
(
mode
=
'day'
),
verbose
=
verbose
)
elif
args
.
hour
:
send_to_users
(
get_users_list
(
mode
=
'hour'
),
verbose
=
verbose
)
else
:
if
args
.
day
:
users
,
errors
=
send_to_users
(
get_users_list
(
mode
=
'day'
),
verbose
=
verbose
)
elif
args
.
hour
:
users
,
errors
=
send_to_users
(
get_users_list
(
mode
=
'hour'
),
verbose
=
verbose
)
if
args
.
notifall
:
notif_sent_bienvenue
(
users
,
errors
,
mode
=
'all'
)
if
args
.
notiferrors
:
notif_sent_bienvenue
(
users
,
errors
,
mode
=
'errors'
)
gestion/mail/template/notifbienvenue/From/fr
0 → 100644
View file @
025e5cfd
Crans <{{From}}>
gestion/mail/template/notifbienvenue/Subject/fr
0 → 100644
View file @
025e5cfd
Mail de bienvenue
gestion/mail/template/notifbienvenue/To/fr
0 → 100644
View file @
025e5cfd
{{To}}
gestion/mail/template/notifbienvenue/X-Mailer/fr
0 → 100644
View file @
025e5cfd
{{ mailer }}
gestion/mail/template/notifbienvenue/body/fr.md
0 → 100644
View file @
025e5cfd
Les mails de bienvenue ont été envoyés aux utilisateurs suivants : {{ users }}
Il y a eu des erreurs au niveau des home pour les utilisateurs suivants : {{ errors }}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment