def send_backups_via_email(): result = setup_simple_command( "send_backups_via_email", "Send a password backup to users.", ) if isinstance(result, int): return result else: settings, closer, env, args = result try: request = env['request'] if len(args) == 0: now = datetime.datetime.utcnow() if now.day == 1: user_iterator = get_all_users(request.db, now) else: user_iterator = tuple() else: user_iterator = get_selected_users(request.db, *args) tx = transaction.begin() public_url_root = settings['public_url_root'] preferences_link = urlparse.urljoin( public_url_root, request.route_path('user_preferences')) backups_link = urlparse.urljoin( public_url_root, request.route_path('backups_index')) for user in user_iterator: if user['email']: sent = send_passwords(request, user, preferences_link, backups_link) if sent: safe_print('Passwords sent to %s' % get_user_display_name(user)) tx.commit() finally: closer()
def send_backups_via_email(): result = setup_simple_command( "send_backups_via_email", "Send a password backup to users.", ) if isinstance(result, int): return result else: settings, closer, env, args = result try: request = env['request'] if len(args) == 0: now = datetime.datetime.utcnow() if now.day == 1: user_iterator = get_all_users(now) else: user_iterator = tuple() else: user_iterator = get_selected_users(*args) tx = transaction.begin() public_url_root = settings['public_url_root'] preferences_link = urlparse.urljoin( public_url_root, request.route_path('user_preferences')) backups_link = urlparse.urljoin(public_url_root, request.route_path('backups_index')) for user in user_iterator: if user.email: sent = send_passwords(request, user, preferences_link, backups_link) if sent: safe_print('Passwords sent to %s' % get_user_display_name(user)) tx.commit() finally: closer()
def announce(): usage = "migrate: %prog config_uri migration_name" description = "Add a 'send_email_periodically' preference to every user." parser = optparse.OptionParser( usage=usage, description=textwrap.dedent(description) ) options, args = parser.parse_args(sys.argv[1:]) if len(args) != 2: safe_print('You must provide two arguments. ' 'The first one is the config file and the ' 'second one is the email template.') return 2 config_uri = args[0] email_template = args[1] env = bootstrap(config_uri) settings, closer = env['registry'].settings, env['closer'] try: db = settings['mongodb'].get_database() request = env['request'] public_url_root = settings['public_url_root'] preferences_link = urlparse.urljoin( public_url_root, request.route_path('user_preferences')) tx = transaction.begin() mailer = get_mailer(request) for user in get_all_users_with_passwords_and_email(db): message = send_email(request, email_template, user, preferences_link) mailer.send(message) tx.commit() finally: closer()
def announce(): usage = "announce: %prog config_uri email_template" description = "Send an announce to every user with a verified email that has at least one password." parser = optparse.OptionParser(usage=usage, description=textwrap.dedent(description)) options, args = parser.parse_args(sys.argv[1:]) if len(args) != 2: safe_print('You must provide two arguments. ' 'The first one is the config file and the ' 'second one is the email template.') return 2 config_uri = args[0] email_template = args[1] env = bootstrap(config_uri) settings, closer = env['registry'].settings, env['closer'] try: request = env['request'] public_url_root = settings['public_url_root'] preferences_link = urlparse.urljoin( public_url_root, request.route_path('user_preferences')) tx = transaction.begin() mailer = get_mailer(request) for user in get_all_users_with_passwords_and_email(): message = send_email(request, email_template, user, preferences_link) mailer.send(message) tx.commit() finally: closer()