@@ -26,49 +26,49 @@
from celery.decorators import task
import os
import traceback
import logging
from os.path import dirname as dn, join as jn
from time import mktime
from operator import itemgetter
from string import lower
from pylons import config, url
from pylons.i18n.translation import _
from rhodecode.lib import LANGUAGES_EXTENSIONS_MAP, safe_str
from rhodecode.lib.celerylib import run_task, locked_task, str2bool, \
__get_lockkey, LockHeld, DaemonLock
from rhodecode.lib.helpers import person
from rhodecode.lib.smtp_mailer import SmtpMailer
from rhodecode.lib.utils import add_cache
from rhodecode.lib.compat import json, OrderedDict
from rhodecode.model import init_model
from rhodecode.model import meta
from rhodecode.model.db import RhodeCodeUi, Statistics, Repository
from rhodecode.model.db import RhodeCodeUi, Statistics, Repository, User
from vcs.backends import get_repo
from sqlalchemy import engine_from_config
add_cache(config)
__all__ = ['whoosh_index', 'get_commits_stats',
'reset_user_password', 'send_email']
CELERY_ON = str2bool(config['app_conf'].get('use_celery'))
def get_session():
if CELERY_ON:
engine = engine_from_config(config, 'sqlalchemy.db1.')
init_model(engine)
sa = meta.Session()
return sa
def get_repos_path():
@@ -325,49 +325,51 @@ def reset_user_password(user_email):
log.error('Failed to update user password')
log.error(traceback.format_exc())
return True
@task(ignore_result=True)
def send_email(recipients, subject, body):
"""
Sends an email with defined parameters from the .ini files.
:param recipients: list of recipients, it this is empty the defined email
address from field 'email_to' is used instead
:param subject: subject of the mail
:param body: body of the mail
try:
log = send_email.get_logger()
except:
log = logging.getLogger(__name__)
email_config = config
if not recipients:
recipients = [email_config.get('email_to')]
# if recipients are not defined we send to email_config + all admins
admins = [u.email for u in User.query().filter(User.admin==True).all()]
recipients = [email_config.get('email_to')] + admins
mail_from = email_config.get('app_email_from')
user = email_config.get('smtp_username')
passwd = email_config.get('smtp_password')
mail_server = email_config.get('smtp_server')
mail_port = email_config.get('smtp_port')
tls = str2bool(email_config.get('smtp_use_tls'))
ssl = str2bool(email_config.get('smtp_use_ssl'))
debug = str2bool(config.get('debug'))
smtp_auth = email_config.get('smtp_auth')
m = SmtpMailer(mail_from, user, passwd, mail_server,smtp_auth,
mail_port, ssl, tls, debug=debug)
m.send(recipients, subject, body)
log.error('Mail sending failed')
return False
def create_repo_fork(form_data, cur_user):
Status change: