Example #1
0
    def send_welcome_email(self, first_name, activation_url):
        email_vars = { 'name': first_name,
            'activation_days': config.getint('nemesis', 'activation_days'),
             'activation_url': activation_url
                     }

        mailer.email_template(self.email, 'new_user', email_vars)
Example #2
0
    def send_welcome_email(self, first_name, activation_url):
        email_vars = { 'name': first_name,
                   'username': self.username,
                      'email': self.email,
             'activation_url': activation_url
                     }

        mailer.email_template(self.email, 'new_user', email_vars)
Example #3
0
    def send_welcome_email(self, first_name, activation_url):
        email_vars = {
            'name': first_name,
            'activation_days': config.getint('nemesis', 'activation_days'),
            'activation_url': activation_url
        }

        mailer.email_template(self.email, 'new_user', email_vars)
Example #4
0
def inform_team_lead_registration_expired(team_leader, expired_user):

    email_vars = { 'name': team_leader.first_name,
          'pu_first_name': expired_user.first_name,
           'pu_last_name': expired_user.last_name
                 }

    mailer.email_template(team_leader.email, 'registration_expired', email_vars)
Example #5
0
    def send_verification_email(self, first_name, verification_url):
        email_vars = {
            'name': first_name,
            'email_change_days': config.getint('nemesis', 'email_change_days'),
            'url': verification_url
        }

        mailer.email_template(self.new_email, 'change_email', email_vars)
Example #6
0
    def send_welcome_email(self, first_name, activation_url):
        email_vars = { 'name': first_name,
                   'username': self.username,
                      'email': self.email,
             'activation_url': activation_url
                     }

        mailer.email_template(self.email, 'new_user', email_vars)
Example #7
0
    def send_reset_email(self, email, first_name, password_reset_url, requestor_name):
        email_vars = { 'name': first_name,
             'requestor_name': requestor_name,
        'password_reset_days': config.getint('nemesis', 'password_reset_days'),
         'password_reset_url': password_reset_url
                     }

        mailer.email_template(email, 'password_reset', email_vars)
Example #8
0
def activate_account(username, code):
    """
    Verifies to the system that an email address exists, and that the related
    account should be made into a full account.
    Expected to be used only by users clicking links in account-activation emails.
    Not part of the documented API.
    """

    pu = PendingUser(username)

    if not pu.in_db:
        return "No such user account", 404

    if pu.age > timedelta(days=2):
        return "Request not valid", 410

    if pu.verify_code != code:
        return "Invalid verification code", 403

    log_action('activating user', pu)

    from libnemesis import srusers
    new_pass = srusers.users.GenPasswd()

    u = User(username)
    u.set_email(pu.email)
    u.set_team(pu.team)
    u.set_college(pu.college)
    u.set_password(new_pass)
    u.make_student()
    u.save()

    # let the team-leader know
    rq_user = User.create_user(pu.teacher_username)
    email_vars = {
        'name': rq_user.first_name,
        'au_username': username,
        'au_first_name': u.first_name,
        'au_last_name': u.last_name
    }
    mailer.email_template(rq_user.email, 'user_activated_team_leader',
                          email_vars)

    pu.delete()

    html = open(PATH + "/templates/activate.html").read()
    replacements = {
        'first_name': u.first_name,
        'last_name': u.last_name,
        'password': new_pass,
        'email': u.email,
        'username': username,
        'root': url_for('.index')
    }

    html = html.format(**replacements)

    return html, 200
Example #9
0
def register_user(requesting_user):
    if not requesting_user.can_register_users:
        return json.dumps({"error":"YOU_CANT_REGISTER_USERS"}), 403

    teacher_username = requesting_user.username
    college_group    = request.form["college"].strip()
    first_name       = request.form["first_name"].strip()
    last_name        = request.form["last_name"].strip()
    email            = request.form["email"].strip()
    team             = request.form["team"].strip()

    if College(college_group) not in requesting_user.colleges:
        return json.dumps({"error":"BAD_COLLEGE"}), 403

    if team not in [t.name for t in College(college_group).teams]:
        return json.dumps({"error":"BAD_TEAM"}), 403

    if not helpers.is_email_valid(email):
        return json.dumps({"error":"BAD_EMAIL"}), 403

    if not helpers.is_name_valid(first_name):
        return json.dumps({"error":"BAD_FIRST_NAME"}), 403

    if not helpers.is_name_valid(last_name):
        return json.dumps({"error":"BAD_LAST_NAME"}), 403

    if User.name_used(first_name, last_name) or helpers.email_used(email):
        return json.dumps({"error":"DETAILS_ALREADY_USED"}), 403

    u = User.create_new_user(requesting_user, college_group, first_name, last_name)
    verify_code = helpers.create_verify_code(u.username, email)

    pu = PendingUser(u.username)
    pu.teacher_username = teacher_username
    pu.college = college_group
    pu.email = email
    pu.team = team
    pu.verify_code = verify_code
    pu.save()

    log_action('registering user', pu)

    url = url_for('activate_account', username=u.username, code=verify_code, _external=True)
    pu.send_welcome_email(first_name, url)

    rqu_email_vars = { 'name': requesting_user.first_name,
            'activation_days': ACTIVATION_DAYS,
              'pu_first_name': first_name,
               'pu_last_name': last_name,
                'pu_username': pu.username,
                 'pu_college': College(pu.college).name,
                   'pu_email': pu.email,
                    'pu_team': pu.team
                      }
    mailer.email_template(requesting_user.email, 'user_requested', rqu_email_vars)

    return "{}", 202
Example #10
0
def inform_team_lead_registration_expired(team_leader, expired_user):

    email_vars = {
        'name': team_leader.first_name,
        'pu_first_name': expired_user.first_name,
        'pu_last_name': expired_user.last_name
    }

    mailer.email_template(team_leader.email,
                          'registration_expired_team_leader', email_vars)
Example #11
0
def activate_account(username, code):
    """
    Verifies to the system that an email address exists, and that the related
    account should be made into a full account.
    Expected to be used only by users clicking links in account-activation emails.
    Not part of the documented API.
    """

    pu = PendingUser(username)

    if not pu.in_db:
        return "No such user account", 404

    if pu.age > timedelta(days = 2):
        return "Request not valid", 410

    if pu.verify_code != code:
        return "Invalid verification code", 403

    log_action('activating user', pu)

    from libnemesis import srusers
    new_pass = srusers.users.GenPasswd()

    u = User(username)
    u.set_email(pu.email)
    u.set_team(pu.team)
    u.set_college(pu.college)
    u.set_password(new_pass)
    u.make_student()
    u.save()

    # let the team-leader know
    rq_user = User.create_user(pu.teacher_username)
    email_vars = { 'name': rq_user.first_name,
            'au_username': username,
          'au_first_name': u.first_name,
           'au_last_name': u.last_name
                 }
    mailer.email_template(rq_user.email, 'user_activated_team_leader', email_vars)

    pu.delete()

    html = open(PATH + "/templates/activate.html").read()
    replacements = { 'first_name': u.first_name
                   ,  'last_name': u.last_name
                   ,   'password': new_pass
                   ,      'email': u.email
                   ,   'username': username
                   ,       'root': url_for('.index')
                   }

    html = html.format(**replacements)

    return html, 200
Example #12
0
    def send_reset_email(self, email, first_name, password_reset_url,
                         requestor_name):
        email_vars = {
            'name': first_name,
            'requestor_name': requestor_name,
            'password_reset_days': config.getint('nemesis',
                                                 'password_reset_days'),
            'password_reset_url': password_reset_url
        }

        mailer.email_template(email, 'password_reset', email_vars)
Example #13
0
def register_user():
    ah = AuthHelper(request)
    if ah.auth_will_succeed:
        requesting_user = ah.user
        if requesting_user.can_register_users:
            teacher_username = requesting_user.username
            college_group    = request.form["college"].strip()
            first_name       = request.form["first_name"].strip()
            last_name        = request.form["last_name"].strip()
            email            = request.form["email"].strip()
            team             = request.form["team"].strip()

            if College(college_group) not in requesting_user.colleges:
                return json.dumps({"error":"BAD_COLLEGE"}), 403

            if team not in [t.name for t in College(college_group).teams]:
                return json.dumps({"error":"BAD_TEAM"}), 403

            if User.name_used(first_name, last_name) or helpers.email_used(email):
                return json.dumps({"error":"DETAILS_ALREADY_USED"}), 403

            u = User.create_new_user(requesting_user, college_group, first_name, last_name)
            verify_code = helpers.create_verify_code(u.username, email)

            pu = PendingUser(u.username)
            pu.teacher_username = teacher_username
            pu.college = college_group
            pu.email = email
            pu.team = team
            pu.verify_code = verify_code
            pu.save()

            url = url_for('activate_account', username=u.username, code=verify_code, _external=True)
            pu.send_welcome_email(first_name, url)

            rqu_email_vars = { 'name': requesting_user.first_name,
                      'pu_first_name': first_name,
                       'pu_last_name': last_name,
                        'pu_username': pu.username,
                         'pu_college': College(pu.college).name,
                           'pu_email': pu.email,
                            'pu_team': pu.team
                              }
            mailer.email_template(requesting_user.email, 'user_requested', rqu_email_vars)

            return "{}", 202
        else:
            return json.dumps({"error":"YOU_CANT_REGISTER_USERS"}),403
    else:
        return ah.auth_error_json, 403
Example #14
0
def notify_ticket_available(user):
    email_vars = { 'first_name': user.first_name }
    mailer.email_template(user.email, 'ticket_available', email_vars)
Example #15
0
def inform_competitor_registration_expired(user_email, expired_user):

    email_vars = { 'name': expired_user.first_name }

    mailer.email_template(user_email, 'registration_expired', email_vars)
Example #16
0
def inform_competitor_registration_expired(user_email, expired_user):

    email_vars = {'name': expired_user.first_name}

    mailer.email_template(user_email, 'registration_expired', email_vars)
Example #17
0
 def send_verification_email(self, first_name, verification_url):
     email_vars = { 'name': first_name,
                     'url': verification_url }
     mailer.email_template(self.new_email, 'change_email', email_vars)
Example #18
0
def register_user():
    ah = AuthHelper(request)

    if not ah.auth_will_succeed:
        return ah.auth_error_json, 403

    requesting_user = ah.user
    if not requesting_user.can_register_users:
        return json.dumps({"error": "YOU_CANT_REGISTER_USERS"}), 403

    teacher_username = requesting_user.username
    college_group = request.form["college"].strip()
    first_name = request.form["first_name"].strip()
    last_name = request.form["last_name"].strip()
    email = request.form["email"].strip()
    team = request.form["team"].strip()

    if College(college_group) not in requesting_user.colleges:
        return json.dumps({"error": "BAD_COLLEGE"}), 403

    if team not in [t.name for t in College(college_group).teams]:
        return json.dumps({"error": "BAD_TEAM"}), 403

    if not helpers.is_email_valid(email):
        return json.dumps({"error": "BAD_EMAIL"}), 403

    if not helpers.is_name_valid(first_name):
        return json.dumps({"error": "BAD_FIRST_NAME"}), 403

    if not helpers.is_name_valid(last_name):
        return json.dumps({"error": "BAD_LAST_NAME"}), 403

    if User.name_used(first_name, last_name) or helpers.email_used(email):
        return json.dumps({"error": "DETAILS_ALREADY_USED"}), 403

    u = User.create_new_user(requesting_user, college_group, first_name,
                             last_name)
    verify_code = helpers.create_verify_code(u.username, email)

    pu = PendingUser(u.username)
    pu.teacher_username = teacher_username
    pu.college = college_group
    pu.email = email
    pu.team = team
    pu.verify_code = verify_code
    pu.save()

    log_action('registering user', pu)

    url = url_for('activate_account',
                  username=u.username,
                  code=verify_code,
                  _external=True)
    pu.send_welcome_email(first_name, url)

    rqu_email_vars = {
        'name': requesting_user.first_name,
        'pu_first_name': first_name,
        'pu_last_name': last_name,
        'pu_username': pu.username,
        'pu_college': College(pu.college).name,
        'pu_email': pu.email,
        'pu_team': pu.team
    }
    mailer.email_template(requesting_user.email, 'user_requested',
                          rqu_email_vars)

    return "{}", 202
Example #19
0
def notify_ticket_available(user):
    email_vars = {'first_name': user.first_name}
    mailer.email_template(user.email, 'ticket_available', email_vars)
Example #20
0
 def send_verification_email(self, first_name, verification_url):
     email_vars = { 'name': first_name,
                     'url': verification_url }
     mailer.email_template(self.new_email, 'change_email', email_vars)
Example #21
0
    def send_verification_email(self, first_name, verification_url):
        email_vars = { 'name': first_name,
          'email_change_days': config.getint('nemesis', 'email_change_days'),
                        'url': verification_url }

        mailer.email_template(self.new_email, 'change_email', email_vars)