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
|
# Settings that are the same for both development and production
|
||||||
# (such as template engine, encodings, etc.) all go in
|
# (such as template engine, encodings, etc.) all go in
|
||||||
# fas/config/app.cfg
|
# fas/config/app.cfg
|
||||||
mail.on = True
|
#mail.on = True
|
||||||
#mail.server = 'bastion.fedora.phx.redhat.com'
|
#mail.server = 'bastion.fedora.phx.redhat.com'
|
||||||
#base_url_filter.base_url = "http://192.168.2.101:8080"
|
#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
|
base_url_filter.use_x_forwarded_host = True
|
||||||
|
|
||||||
# DATABASE
|
# DATABASE
|
||||||
|
|
|
@ -131,6 +131,8 @@ identity.provider='safas2'
|
||||||
|
|
||||||
# identity.soprovider.encryption_algorithm=None
|
# identity.soprovider.encryption_algorithm=None
|
||||||
|
|
||||||
|
accounts_mail = "accounts@fedoraproject.org"
|
||||||
|
|
||||||
gpghome = "/home/fedora/ricky/fedora-infrastructure/fas/gnupg"
|
gpghome = "/home/fedora/ricky/fedora-infrastructure/fas/gnupg"
|
||||||
gpg_fingerprint = "C199 1E25 D00A D200 2D2E 54D1 BF7F 1647 C54E 8410"
|
gpg_fingerprint = "C199 1E25 D00A D200 2D2E 54D1 BF7F 1647 C54E 8410"
|
||||||
gpg_passphrase = "m00!s@ysth3c0w"
|
gpg_passphrase = "m00!s@ysth3c0w"
|
||||||
|
|
|
@ -15,6 +15,8 @@ from fas.auth import *
|
||||||
|
|
||||||
from fas.user import knownUser, userNameExists
|
from fas.user import knownUser, userNameExists
|
||||||
|
|
||||||
|
from textwrap import dedent
|
||||||
|
|
||||||
class knownGroup(validators.FancyValidator):
|
class knownGroup(validators.FancyValidator):
|
||||||
'''Make sure that a group already exists'''
|
'''Make sure that a group already exists'''
|
||||||
def _to_python(self, value, state):
|
def _to_python(self, value, state):
|
||||||
|
@ -157,7 +159,7 @@ class Group(controllers.Controller):
|
||||||
p.upgrade(groupName) # Sponsor...
|
p.upgrade(groupName) # Sponsor...
|
||||||
p.upgrade(groupName) # Admin!
|
p.upgrade(groupName) # Admin!
|
||||||
except:
|
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:
|
else:
|
||||||
turbogears.flash(_("The group: '%s' has been created.") % groupName)
|
turbogears.flash(_("The group: '%s' has been created.") % groupName)
|
||||||
turbogears.redirect('/group/view/%s' % 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!') % \
|
turbogears.flash(_('%(user)s has already applied to %(group)s!') % \
|
||||||
{'user': userName, 'group': groupName})
|
{'user': userName, 'group': groupName})
|
||||||
else:
|
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!') % \
|
turbogears.flash(_('%(user)s has applied to %(group)s!') % \
|
||||||
{'user': userName, 'group': groupName})
|
{'user': userName, 'group': groupName})
|
||||||
turbogears.redirect('/group/view/%s' % 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.flash(_("'%s' could not be sponsored!") % p.cn)
|
||||||
turbogears.redirect('/group/view/%s' % groupName)
|
turbogears.redirect('/group/view/%s' % groupName)
|
||||||
else:
|
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.flash(_("'%s' has been sponsored!") % p.cn)
|
||||||
turbogears.redirect('/group/view/%s' % groupName)
|
turbogears.redirect('/group/view/%s' % groupName)
|
||||||
return dict()
|
return dict()
|
||||||
|
@ -291,6 +322,19 @@ class Group(controllers.Controller):
|
||||||
{'name': userName, 'group': groupName})
|
{'name': userName, 'group': groupName})
|
||||||
turbogears.redirect('/group/view/%s' % groupName)
|
turbogears.redirect('/group/view/%s' % groupName)
|
||||||
else:
|
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!') % \
|
turbogears.flash(_('%(name)s has been removed from %(group)s!') % \
|
||||||
{'name': userName, 'group': groupName})
|
{'name': userName, 'group': groupName})
|
||||||
turbogears.redirect('/group/view/%s' % 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.flash(_('%(name)s could not be upgraded!') % {'name' : userName})
|
||||||
turbogears.redirect('/group/view/%s' % groupName)
|
turbogears.redirect('/group/view/%s' % groupName)
|
||||||
else:
|
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.flash(_('%s has been upgraded!') % userName)
|
||||||
turbogears.redirect('/group/view/%s' % groupName)
|
turbogears.redirect('/group/view/%s' % groupName)
|
||||||
return dict()
|
return dict()
|
||||||
|
@ -344,6 +404,22 @@ class Group(controllers.Controller):
|
||||||
turbogears.flash(_('%(name)s could not be downgraded!') % {'name': userName})
|
turbogears.flash(_('%(name)s could not be downgraded!') % {'name': userName})
|
||||||
turbogears.redirect('/group/view/%s' % groupName)
|
turbogears.redirect('/group/view/%s' % groupName)
|
||||||
else:
|
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.flash(_('%s has been downgraded!') % p.cn)
|
||||||
turbogears.redirect('/group/view/%s' % groupName)
|
turbogears.redirect('/group/view/%s' % groupName)
|
||||||
return dict()
|
return dict()
|
||||||
|
|
|
@ -241,7 +241,7 @@ class User(controllers.Controller):
|
||||||
postalAddress,)
|
postalAddress,)
|
||||||
p = Person.byUserName(cn)
|
p = Person.byUserName(cn)
|
||||||
newpass = p.generatePassword()
|
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('''
|
message.plain = _(dedent('''
|
||||||
You have created a new Fedora account!
|
You have created a new Fedora account!
|
||||||
Your new password is: %s
|
Your new password is: %s
|
||||||
|
@ -303,7 +303,7 @@ class User(controllers.Controller):
|
||||||
turbogears.flash(_("username + email combo unknown."))
|
turbogears.flash(_("username + email combo unknown."))
|
||||||
return dict()
|
return dict()
|
||||||
newpass = p.generatePassword()
|
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('''
|
email = _(dedent('''
|
||||||
You have requested a password reset!
|
You have requested a password reset!
|
||||||
Your new password is - %s
|
Your new password is - %s
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue