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
6a1ded95
Commit
6a1ded95
authored
Aug 28, 2017
by
Gabriel Detraz
Committed by
Hamza Dely
Dec 06, 2017
Browse files
Ajoute un mode de notification des actions et des erreurs
parent
e4f5a35b
Changes
6
Hide whitespace changes
Inline
Side-by-side
gestion/mail/mail_bienvenue.py
View file @
6a1ded95
...
...
@@ -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 @
6a1ded95
Crans <{{From}}>
gestion/mail/template/notifbienvenue/Subject/fr
0 → 100644
View file @
6a1ded95
Mail de bienvenue
gestion/mail/template/notifbienvenue/To/fr
0 → 100644
View file @
6a1ded95
{{To}}
gestion/mail/template/notifbienvenue/X-Mailer/fr
0 → 100644
View file @
6a1ded95
{{ mailer }}
gestion/mail/template/notifbienvenue/body/fr.md
0 → 100644
View file @
6a1ded95
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