Beispiel #1
0
    def confirm_user(self, r, confirmation_code, timezone):
        confirm = r.session.query(ConfirmationCode).filter_by(code=confirmation_code.lower()).first()
        if confirm:
            ud = self._deserialize(confirm.data)

            user = User(ud['email'], ud['mobile'])
            user.password = util.encrypt_password(ud['password'])
            user.created = datetime.utcnow()
            user.plan = 'free' 
            user.sms_credits_plan = limits.get_plan_credits('free')
            user.sms_credits_purchased = 0
            user.billing_type = 0
            user.timezone = timezone
            user.utc_offset = util.get_utc_offset(pytz.timezone(timezone))
            user.billing_start = datetime.utcnow()
            user.billing_next = user.billing_start + relativedelta(months=+1)
            
            # create two default destinations
            default_sms_destination = Destination(user, Destination.TYPE_SMS, 'Default SMS', user.mobile)
            default_email_destination = Destination(user, Destination.TYPE_EMAIL, 'Default Email', user.email)
            r.session.delete(confirm)
            r.session.save(user)
            r.session.save(default_sms_destination)
            r.session.save(default_email_destination)
            r.session.flush()
            r.hub.sendWelcome(user.email, user.password)
            r.environ['paste.auth_tkt.set_user'](userid=user.email)
        else:
            raise ValidationFailedException(dict(confirmation_code='Confirmation code is invalid'))
Beispiel #2
0
def hist_stats_for_user(session, user_id, days_back=1):
    user = session.query(User).get(user_id)
    log.debug("Doing stats for user %s", user.email)
    target_tz = pytz.timezone(user.timezone)
    target_datetime = datetime.now(tz=target_tz) - timedelta(days=days_back) 
    target_datetime_ts = datetime_to_ts(datetime(target_datetime.year, target_datetime.month, target_datetime.day, 0, 0))
    ts_day_start, ts_day_end = get_utc_day_times(target_tz, target_datetime)
    for monitor in user.monitors.values():
        hist_stats_for_monitor(session, monitor, target_datetime_ts, ts_day_start, ts_day_end)
    # update UTC offset
    user.utc_offset = get_utc_offset(pytz.timezone(user.timezone))
    session.flush()
Beispiel #3
0
 def change_time_zone(self, r, timezone):
     r.user.timezone = timezone
     r.user.utc_offset = get_utc_offset(pytz.timezone(timezone))
     r.session.flush()