Revision 31bc3a62

b/snf-astakos-app/astakos/im/forms.py
61 61
    ProjectApplication, Project)
62 62
from astakos.im.settings import (
63 63
    INVITATIONS_PER_LEVEL, BASEURL, SITENAME, RECAPTCHA_PRIVATE_KEY,
64
    RECAPTCHA_ENABLED, DEFAULT_CONTACT_EMAIL, LOGGING_LEVEL,
64
    RECAPTCHA_ENABLED, CONTACT_EMAIL, LOGGING_LEVEL,
65 65
    PASSWORD_RESET_EMAIL_SUBJECT, NEWPASSWD_INVALIDATE_TOKEN,
66 66
    MODERATION_ENABLED, PROJECT_MEMBER_JOIN_POLICIES,
67 67
    PROJECT_MEMBER_LEAVE_POLICIES, EMAILCHANGE_ENABLED,
......
543 543
                'site_name': SITENAME,
544 544
                'user': user,
545 545
                'baseurl': BASEURL,
546
                'support': DEFAULT_CONTACT_EMAIL
546
                'support': CONTACT_EMAIL
547 547
            }
548 548
            from_email = settings.SERVER_EMAIL
549 549
            send_mail(_(PASSWORD_RESET_EMAIL_SUBJECT),
b/snf-astakos-app/astakos/im/functions.py
56 56

  
57 57
import astakos.im.settings as astakos_settings
58 58
from astakos.im.settings import (
59
    DEFAULT_CONTACT_EMAIL, SITENAME, BASEURL, LOGGING_LEVEL,
59
    CONTACT_EMAIL, SITENAME, BASEURL, LOGGING_LEVEL,
60 60
    VERIFICATION_EMAIL_SUBJECT, ACCOUNT_CREATION_SUBJECT,
61 61
    GROUP_CREATION_SUBJECT, HELPDESK_NOTIFICATION_EMAIL_SUBJECT,
62 62
    INVITATION_EMAIL_SUBJECT, GREETING_EMAIL_SUBJECT, FEEDBACK_EMAIL_SUBJECT,
......
64 64
    PROJECT_CREATION_SUBJECT, PROJECT_APPROVED_SUBJECT,
65 65
    PROJECT_TERMINATION_SUBJECT, PROJECT_SUSPENSION_SUBJECT,
66 66
    PROJECT_MEMBERSHIP_CHANGE_SUBJECT,
67
    PROJECT_MEMBER_JOIN_POLICIES, PROJECT_MEMBER_LEAVE_POLICIES)
67
    PROJECT_MEMBER_JOIN_POLICIES, PROJECT_MEMBER_LEAVE_POLICIES, HELPDESK,
68
    ADMINS, MANAGERS)
68 69
from astakos.im.notifications import build_notification, NotificationError
69 70
from astakos.im.models import (
70 71
    AstakosUser, Invitation, ProjectMembership, ProjectApplication, Project,
......
115 116
                               'url': url,
116 117
                               'baseurl': BASEURL,
117 118
                               'site_name': SITENAME,
118
                               'support': DEFAULT_CONTACT_EMAIL})
119
                               'support': CONTACT_EMAIL})
119 120
    sender = settings.SERVER_EMAIL
120 121
    try:
121 122
        send_mail(_(VERIFICATION_EMAIL_SUBJECT), message, sender, [user.email],
......
139 140
                             dictionary=None,
140 141
                             subject='alpha2 testing notification',):
141 142
    """
142
    Send notification email to settings.ADMINS.
143
    Send notification email to settings.HELPDESK + settings.MANAGERS.
143 144

  
144 145
    Raises SendNotificationError
145 146
    """
146
    if not settings.ADMINS:
147
        return
148 147
    dictionary = dictionary or {}
149 148
    message = render_to_string(template_name, dictionary)
150 149
    sender = settings.SERVER_EMAIL
150
    recipient_list = [e[1] for e in HELPDESK + MANAGERS]
151 151
    try:
152
        send_mail(subject, message, sender, [i[1] for i in settings.ADMINS],
152
        send_mail(subject, message, sender, recipient_list,
153 153
                  connection=get_connection())
154 154
    except (SMTPException, socket.error) as e:
155 155
        logger.exception(e)
......
168 168

  
169 169
def send_helpdesk_notification(user, template_name='im/helpdesk_notification.txt'):
170 170
    """
171
    Send email to DEFAULT_CONTACT_EMAIL to notify for a new user activation.
171
    Send email to settings.HELPDESK list to notify for a new user activation.
172 172

  
173 173
    Raises SendNotificationError
174 174
    """
175
    if not DEFAULT_CONTACT_EMAIL:
176
        return
177 175
    message = render_to_string(
178 176
        template_name,
179 177
        {'user': user}
180 178
    )
181 179
    sender = settings.SERVER_EMAIL
180
    recipient_list = [e[1] for e in HELPDESK + MANAGERS]
182 181
    try:
183 182
        send_mail(_(HELPDESK_NOTIFICATION_EMAIL_SUBJECT) % {'user': user.email},
184
                  message, sender, [DEFAULT_CONTACT_EMAIL],
185
                  connection=get_connection())
183
                  message, sender, recipient_list, connection=get_connection())
186 184
    except (SMTPException, socket.error) as e:
187 185
        logger.exception(e)
188 186
        raise SendNotificationError()
......
204 202
                               'url': url,
205 203
                               'baseurl': BASEURL,
206 204
                               'site_name': SITENAME,
207
                               'support': DEFAULT_CONTACT_EMAIL})
205
                               'support': CONTACT_EMAIL})
208 206
    sender = settings.SERVER_EMAIL
209 207
    try:
210 208
        send_mail(subject, message, sender, [invitation.username],
......
232 230
                               'url': urljoin(BASEURL, reverse('index')),
233 231
                               'baseurl': BASEURL,
234 232
                               'site_name': SITENAME,
235
                               'support': DEFAULT_CONTACT_EMAIL})
233
                               'support': CONTACT_EMAIL})
236 234
    sender = settings.SERVER_EMAIL
237 235
    try:
238 236
        send_mail(subject, message, sender, [user.email],
......
248 246
def send_feedback(msg, data, user, email_template_name='im/feedback_mail.txt'):
249 247
    subject = _(FEEDBACK_EMAIL_SUBJECT)
250 248
    from_email = settings.SERVER_EMAIL
251
    recipient_list = [DEFAULT_CONTACT_EMAIL]
249
    recipient_list = [e[1] for e in HELPDESK]
252 250
    content = render_to_string(email_template_name, {
253 251
        'message': msg,
254 252
        'data': data,
......
271 269
        url = request.build_absolute_uri(url)
272 270
        t = loader.get_template(email_template_name)
273 271
        c = {'url': url, 'site_name': SITENAME,
274
             'support': DEFAULT_CONTACT_EMAIL, 'ec': ec}
272
             'support': CONTACT_EMAIL, 'ec': ec}
275 273
        from_email = settings.SERVER_EMAIL
276 274
        send_mail(_(EMAIL_CHANGE_EMAIL_SUBJECT), t.render(Context(c)),
277 275
                  from_email, [ec.new_email_address],
b/snf-astakos-app/astakos/im/project_notif.py
16 16
    }
17 17

  
18 18
SENDER = settings.SERVER_EMAIL
19
ADMINS = settings.ADMINS
19
NOTIFY_RECIPIENTS = [e[1] for e in settings.MANAGERS + settings.HELPDESK]
20 20

  
21 21
def membership_change_notify(project, user, action):
22 22
    try:
......
69 69
def application_submit_notify(application):
70 70
    try:
71 71
        notification = build_notification(
72
            SENDER,
73
            [i[1] for i in ADMINS],
72
            SENDER, NOTIFY_RECIPIENTS,
74 73
            _(settings.PROJECT_CREATION_SUBJECT) % application.__dict__,
75 74
            template='im/projects/project_creation_notification.txt',
76 75
            dictionary={'object':application})
b/snf-astakos-app/astakos/im/settings.py
14 14
    4: 0
15 15
})
16 16

  
17
# Address to use for outgoing emails
18
DEFAULT_CONTACT_EMAIL = getattr(
19
    settings, 'ASTAKOS_DEFAULT_CONTACT_EMAIL', 'support@example.synnefo.org')
17
ADMINS = getattr(settings, 'ADMINS', ())
18
MANAGERS = getattr(settings, 'MANAGERS', ADMINS)
19
HELPDESK = getattr(settings, 'HELPDESK', ADMINS)
20 20

  
21
SERVER_EMAIL = getattr(settings, 'SERVER_EMAIL', None)
22
ADMINS = getattr(settings, 'ADMINS', None)
21
CONTACT_EMAIL = settings.CONTACT_EMAIL
22
SERVER_EMAIL = settings.SERVER_EMAIL
23 23

  
24 24
# Identity Management enabled modules
25 25
# Supported modules are: 'local', 'twitter' and 'shibboleth'
b/snf-astakos-app/astakos/im/target/shibboleth.py
102 102
        if not eppn:
103 103
            raise KeyError(_(astakos_messages.SHIBBOLETH_MISSING_EPPN) % {
104 104
                'domain': settings.BASEURL,
105
                'contact_email': settings.DEFAULT_CONTACT_EMAIL
105
                'contact_email': settings.CONTACT_EMAIL
106 106
            })
107 107
        if Tokens.SHIB_DISPLAYNAME in tokens:
108 108
            realname = tokens[Tokens.SHIB_DISPLAYNAME]
b/snf-astakos-app/astakos/im/tests.py
152 152
        r = client.get('/im/login/shibboleth?', follow=True)
153 153
        self.assertContains(r, messages.SHIBBOLETH_MISSING_EPPN % {
154 154
            'domain': astakos_settings.BASEURL,
155
            'contact_email': astakos_settings.DEFAULT_CONTACT_EMAIL
155
            'contact_email': settings.CONTACT_EMAIL
156 156
        })
157 157
        client.set_tokens(eppn="kpapeppn")
158 158

  
b/snf-astakos-app/conf/20-snf-astakos-app-settings.conf
12 12
#    4   :   0
13 13
#}
14 14

  
15
# Address to use for outgoing emails
16
#ASTAKOS_DEFAULT_CONTACT_EMAIL = 'support@example.synnefo.org'
17

  
18
#SERVER_EMAIL = None
19
#ADMINS = None
20

  
21 15
# Identity Management enabled modules
22 16
# Supported modules are: 'local', 'twitter' and 'shibboleth'
23 17
#ASTAKOS_IM_MODULES = ['local']

Also available in: Unified diff