Add email notifications.
This commit is contained in:
parent
ed90fe2333
commit
795976909c
4 changed files with 88 additions and 5 deletions
|
@ -3,10 +3,15 @@
|
|||
# Settings that are the same for both development and production
|
||||
# (such as template engine, encodings, etc.) all go in
|
||||
# fas/config/app.cfg
|
||||
mail.on = True
|
||||
#mail.on = True
|
||||
#mail.server = 'bastion.fedora.phx.redhat.com'
|
||||
#base_url_filter.base_url = "http://192.168.2.101:8080"
|
||||
mail.server = 'localhost'
|
||||
|
||||
mail.on = False
|
||||
mail.server = 'bastion.fedora.phx.redhat.com'
|
||||
mail.debug = False
|
||||
mail.encoding = 'utf-8'
|
||||
|
||||
base_url_filter.use_x_forwarded_host = True
|
||||
|
||||
# DATABASE
|
||||
|
|
|
@ -131,6 +131,8 @@ identity.provider='safas2'
|
|||
|
||||
# identity.soprovider.encryption_algorithm=None
|
||||
|
||||
accounts_mail = "accounts@fedoraproject.org"
|
||||
|
||||
gpghome = "/home/fedora/ricky/fedora-infrastructure/fas/gnupg"
|
||||
gpg_fingerprint = "C199 1E25 D00A D200 2D2E 54D1 BF7F 1647 C54E 8410"
|
||||
gpg_passphrase = "m00!s@ysth3c0w"
|
||||
|
|
|
@ -15,6 +15,8 @@ from fas.auth import *
|
|||
|
||||
from fas.user import knownUser, userNameExists
|
||||
|
||||
from textwrap import dedent
|
||||
|
||||
class knownGroup(validators.FancyValidator):
|
||||
'''Make sure that a group already exists'''
|
||||
def _to_python(self, value, state):
|
||||
|
@ -157,7 +159,7 @@ class Group(controllers.Controller):
|
|||
p.upgrade(groupName) # Sponsor...
|
||||
p.upgrade(groupName) # Admin!
|
||||
except:
|
||||
turbogears.flash(_("The group: '%(group)s' has been created, but '%(user)' could not be added as a group administrator.") % {'group': groupName, 'user': fedoraGroupOwner})
|
||||
turbogears.flash(_("The group: '%(group)s' has been created, but '%(user)s' could not be added as a group administrator.") % {'group': groupName, 'user': fedoraGroupOwner})
|
||||
else:
|
||||
turbogears.flash(_("The group: '%s' has been created.") % groupName)
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
|
@ -243,6 +245,20 @@ class Group(controllers.Controller):
|
|||
turbogears.flash(_('%(user)s has already applied to %(group)s!') % \
|
||||
{'user': userName, 'group': groupName})
|
||||
else:
|
||||
import turbomail
|
||||
message = turbomail.Message(config.get('accounts_mail'), '%s-sponsors@fedoraproject.org' % groupName, \
|
||||
"Fedora '%(group)s' sponsor needed for %(user)s" % {'user': userName, 'group': groupName})
|
||||
user = Person.byUserName(userName)
|
||||
name = user.givenName
|
||||
email = user.mail
|
||||
url = config.get('base_url') + turbogears.url('/group/edit/%s' % groupName)
|
||||
message.plain = dedent('''
|
||||
Fedora user %(user)s, aka %(name)s <%(email)s> has requested
|
||||
membership in the web group and needs a sponsor.
|
||||
|
||||
Please go to %(url)s to take action.
|
||||
''') % {'user': userName, 'name': name, 'email': email, 'url': url}
|
||||
turbomail.enqueue(message)
|
||||
turbogears.flash(_('%(user)s has applied to %(group)s!') % \
|
||||
{'user': userName, 'group': groupName})
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
|
@ -267,6 +283,21 @@ class Group(controllers.Controller):
|
|||
turbogears.flash(_("'%s' could not be sponsored!") % p.cn)
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
else:
|
||||
user = Person.byUserName(sponsor)
|
||||
group = Groups.groups(groupName)[groupName]
|
||||
import turbomail
|
||||
message = turbomail.Message(config.get('accounts_mail'), p.mail, "Your Fedora '%s' membership has been sponsored" % groupName)
|
||||
user = Person.byUserName(userName)
|
||||
name = user.givenName
|
||||
email = user.mail
|
||||
message.plain = dedent('''
|
||||
%(name)s <%(email)s> has sponsored you for membership in the %(group)s
|
||||
group of the Fedora account system. If applicable, this change should
|
||||
propagate into the e-mail aliases and CVS repository within an hour.
|
||||
|
||||
%(joinmsg)s
|
||||
''') % {'group': groupName, 'name': name, 'email': email, 'joinmsg': group.fedoraGroupJoinMsg}
|
||||
turbomail.enqueue(message)
|
||||
turbogears.flash(_("'%s' has been sponsored!") % p.cn)
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
return dict()
|
||||
|
@ -291,6 +322,19 @@ class Group(controllers.Controller):
|
|||
{'name': userName, 'group': groupName})
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
else:
|
||||
user = Person.byUserName(sponsor)
|
||||
import turbomail
|
||||
message = turbomail.Message(config.get('accounts_mail'), p.mail, "Your Fedora '%s' membership has been removed" % groupName)
|
||||
user = Person.byUserName(userName)
|
||||
name = user.givenName
|
||||
email = user.mail
|
||||
message.plain = dedent('''
|
||||
%(name)s <%(email)s> has removed you from the '%(group)s'
|
||||
group of the Fedora Accounts System This change is effective
|
||||
immediately for new operations, and should propagate into the e-mail
|
||||
aliases within an hour.
|
||||
''') % {'group': groupName, 'name': name, 'email': email}
|
||||
turbomail.enqueue(message)
|
||||
turbogears.flash(_('%(name)s has been removed from %(group)s!') % \
|
||||
{'name': userName, 'group': groupName})
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
|
@ -318,6 +362,22 @@ class Group(controllers.Controller):
|
|||
turbogears.flash(_('%(name)s could not be upgraded!') % {'name' : userName})
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
else:
|
||||
user = Person.byUserName(sponsor)
|
||||
group = Groups.groups(groupName)[groupName]
|
||||
import turbomail
|
||||
message = turbomail.Message(config.get('accounts_mail'), p.mail, "Your Fedora '%s' membership has been upgraded" % groupName)
|
||||
user = Person.byUserName(userName)
|
||||
name = user.givenName
|
||||
email = user.mail
|
||||
g = Groups.byUserName(userName)
|
||||
status = g[groupName].fedoraRoleType.lower()
|
||||
message.plain = dedent('''
|
||||
%(name)s <%(email)s> has upgraded you to %(status)s status in the
|
||||
'%(group)s' group of the Fedora Accounts System This change is
|
||||
effective immediately for new operations, and should propagate
|
||||
into the e-mail aliases within an hour.
|
||||
''') % {'group': groupName, 'name': name, 'email': email, 'status': status}
|
||||
turbomail.enqueue(message)
|
||||
turbogears.flash(_('%s has been upgraded!') % userName)
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
return dict()
|
||||
|
@ -344,6 +404,22 @@ class Group(controllers.Controller):
|
|||
turbogears.flash(_('%(name)s could not be downgraded!') % {'name': userName})
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
else:
|
||||
user = Person.byUserName(sponsor)
|
||||
group = Groups.groups(groupName)[groupName]
|
||||
import turbomail
|
||||
message = turbomail.Message(config.get('accounts_mail'), p.mail, "Your Fedora '%s' membership has been downgraded" % groupName)
|
||||
user = Person.byUserName(userName)
|
||||
name = user.givenName
|
||||
email = user.mail
|
||||
g = Groups.byUserName(userName)
|
||||
status = g[groupName].fedoraRoleType.lower()
|
||||
message.plain = dedent('''
|
||||
%(name)s <%(email)s> has downgraded you to %(status)s status in the
|
||||
'%(group)s' group of the Fedora Accounts System This change is
|
||||
effective immediately for new operations, and should propagate
|
||||
into the e-mail aliases within an hour.
|
||||
''') % {'group': groupName, 'name': name, 'email': email, 'status': status}
|
||||
turbomail.enqueue(message)
|
||||
turbogears.flash(_('%s has been downgraded!') % p.cn)
|
||||
turbogears.redirect('/group/view/%s' % groupName)
|
||||
return dict()
|
||||
|
|
|
@ -241,7 +241,7 @@ class User(controllers.Controller):
|
|||
postalAddress,)
|
||||
p = Person.byUserName(cn)
|
||||
newpass = p.generatePassword()
|
||||
message = turbomail.Message('accounts@fedoraproject.org', p.mail, _('Fedora Project Password Reset'))
|
||||
message = turbomail.Message(config.get('accounts_mail'), p.mail, _('Fedora Project Password Reset'))
|
||||
message.plain = _(dedent('''
|
||||
You have created a new Fedora account!
|
||||
Your new password is: %s
|
||||
|
@ -303,7 +303,7 @@ class User(controllers.Controller):
|
|||
turbogears.flash(_("username + email combo unknown."))
|
||||
return dict()
|
||||
newpass = p.generatePassword()
|
||||
message = turbomail.Message('accounts@fedoraproject.org', p.mail, _('Fedora Project Password Reset'))
|
||||
message = turbomail.Message(config.get('accounts_mail'), p.mail, _('Fedora Project Password Reset'))
|
||||
email = _(dedent('''
|
||||
You have requested a password reset!
|
||||
Your new password is - %s
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue