コード例 #1
0
ファイル: views.py プロジェクト: Ahern542968/MxOnline
 def post(self, request):
     forgetpwd_form = ForgetPwdForm(request.POST)
     if forgetpwd_form.is_valid():
         email = forgetpwd_form.cleaned_data['email']
         send_email(email, 'forget')
         return render(request, 'send_success.html', {})
     return render(request, 'forgetpwd.html', {'forgetpwd_form': forgetpwd_form})
コード例 #2
0
ファイル: auth.py プロジェクト: LSDkk5/asd
    def post(self):
        registerData = {
            'username': request.json['username'],
            'password': request.json['password'],
            'email': request.json['email']}
        user = User.query.filter_by(username=registerData['username']).first()
        userEmail = User.query.filter_by(email=registerData['email']).first()

        if user:
            return abort(403, description='Użytkownik o podanej nazwie już istnieje!')
        elif userEmail:
            return abort(403, description='Konto o podanym adresie email już istnieje! prosimy o podanie innego.')
        newUser = User(
            username=registerData['username'],
            password=bcrypt.generate_password_hash(
                registerData['password']),
            email=registerData['email'],
            registered_on=datetime.now())
        token = generate_confirmation_token(newUser.email)
        db.session.add(newUser)
        send_email(
            newUser.email,
            'Aktywacja Konta',
            render_template(
                'auth/activate.html',
                confirm_url=url_for(
                    'auth.confirm_account',
                    token=token,
                    _external=True)))
        db.session.commit()
        return jsonify(message='Twoje konto zostało pomyślnie utworzone! Na adres e-mail została wysłana wiadomość z linkiem aktywacyjnym - prosimy aktywować konto.')
コード例 #3
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        error_msg = ''
        if register_form.is_valid():
            email = register_form.cleaned_data.get('email', '')
            password = register_form.cleaned_data.get('password', '')
            password2 = register_form.cleaned_data.get('password2', '')
            if UserProfile.objects.filter(email=email):
                error_msg = '邮箱已注册'
                return self.register_error(request, register_form, error_msg)
            if password != password2:
                error_msg = '两次输入密码不相等'
                return self.register_error(request, register_form, error_msg)
            user_profile = UserProfile()
            user_profile.username = email
            user_profile.email = email
            user_profile.password = make_password(password)
            user_profile.is_active = False
            user_profile.save()
            send_email(email, 'register')

            return HttpResponseRedirect(
                reverse('users:login') + '?sent=' + email)

        else:
            error_msg = register_form.errors
            return self.register_error(request, register_form, error_msg)
コード例 #4
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home.home_page'))
    form = RegistrationForm()
    if form.validate_on_submit():
        newUser = User(username=form.username.data,
                       email=form.email.data,
                       password=bcrypt.generate_password_hash(
                           form.password.data),
                       registered_on=datetime.now().strftime('%m-%d-%Y'),
                       registered_time=datetime.now().strftime('%H:%M'))
        print(newUser)
        db.session.add(newUser)
        db.session.commit()

        token = generate_confirmation_token(newUser.email)
        send_email(
            newUser.email, 'Aktywacja Konta',
            render_template('auth/activate.html',
                            confirm_url=url_for('auth.confirm_account',
                                                token=token,
                                                _external=True)))
        login_user(newUser)
        flash(
            'Twoje konto zostało pomyślnie utworzone! Na podany adres e-mail wyslaliśmy wiadomość z linkiem aktywacyjnym. Prosimy aktywować  swoje konto aby mieć dostęp do pełnej wersji strony',
            'success')
        return redirect(url_for('home.home_page'))
    return render_template('/auth/register.html', form=form)
コード例 #5
0
ファイル: test_main.py プロジェクト: vpineda7/cron-metrics
def test_main():
    '''Main process for the test app'''
    print('starting test task')
    start = datetime.now()
    send_email(to=['*****@*****.**'],
               subject='TEST CRON',
               text='{}'.format(start))
コード例 #6
0
ファイル: routes.py プロジェクト: LSDkk5/app
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home.home_page'))
    form = RegistrationForm()
    if form.validate_on_submit():
        user = User.objects(username=form.username.data).first()
        userEmail = User.objects(email=form.email.data).first()

        if user:
            flash('Podana nazwa użytkownika jest już zajęta!', 'danger')
        elif userEmail:
            return flash('Konto o podanym adresie email już istnieje! prosimy o podanie innego.', 'danger')
        newUser = User(
            username=form.username.data,
            email=form.email.data,
            password=bcrypt.generate_password_hash(
                form.password.data)).save()

        token = generate_confirmation_token(newUser.email)
        send_email(
            newUser.email,
            'Aktywacja Konta',
            render_template(
                'auth/activate.html',
                confirm_url=url_for(
                    'auth.confirm_account',
                    token=token,
                    _external=True)))
        flash('Twoje konto zostało pomyślnie utworzone! Na podany adres e-mail wyslaliśmy wiadomość z linkiem aktywacyjnym. Prosimy aktywować  swoje konto aby mieć dostęp do pełnej wersji strony', 'success')
        return redirect(url_for('home.home_page'))
    return render_template('/auth/register.html', form=form)
コード例 #7
0
ファイル: routes.py プロジェクト: LSDkk5/app
def forget_password():
    if current_user.is_authenticated:
        return redirect(url_for('home.home_page'))
    else:
        form = ResetPasswordForm()
        if form.validate_on_submit():
            user = User.objects(email=form.email.data).first()
            if user.last_change + timedelta(minutes=30) <= datetime.now():
                if user:
                    token = generate_confirmation_token(user.email)
                    send_email(
                        user.email,
                        'Zmiana hasła',
                        render_template(
                            'auth/activate.html',
                            confirm_url=url_for(
                                'auth.reset_password',
                                token=token,
                                _external=True)))
                    flash(
                        'Na podany adres email zostały wysłane dalesze instrukcje dotyczące zmiany hasła!',
                        'success')
                else:
                    flash(
                        'Do podanego adresu email nie zostało przypisane żadne konto!',
                        'danger')
            else:
                flash(
                    'Hasło można zresetować po upływie 30minut od ostatniej zmiany!',
                    'warning')
    return render_template('/auth/forgetPassword.html', form=form)
コード例 #8
0
ファイル: views.py プロジェクト: haoSeven/mooc
    def get(self, request):
        email = request.GET.get('email', '')

        if email:
            if UserProfile.objects.filter(email=email):
                return HttpResponse('{"email":"邮箱已存在"}', content_type="application/json")
            send_email(email, 'update_email')
            return HttpResponse('{"status":"success"}', content_type="application/json")
コード例 #9
0
ファイル: views.py プロジェクト: haoSeven/mooc
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         send_email(email, "forget")
         return render(request, 'send_success.html')
     else:
         return render(request, 'forgetpwd.html', {"forget_form": forget_form})
コード例 #10
0
 def post(self, request):
     forget_pwd_form = ForgetPwdForm(request.POST)
     if forget_pwd_form.is_valid():
         email = request.POST.get('email', '')
         if UserProfile.objects.filter(email=email).exists():
             send_email(email, code_type='forget')
             # return render(request, 'password_reset.html', {'email': email})
         else:
             return render(request, 'forgetpwd.html', {'msg': 'email不存在'})
コード例 #11
0
ファイル: views.py プロジェクト: shishengjia/GameShop
 def post(self, request):
     email = request.POST.get("email", "")
     try:
         record = UserProfile.objects.get(email=email)
         send_email(email, 16)
         return render(request, "login.html")
     except:
         return render(request, "forget_password.html",
                       {"msg": "This email has not been registered yet"})
コード例 #12
0
ファイル: test.py プロジェクト: PresleyHank/python_12306
    def run(self):
        s = LocalSimpleCache('', 'logincookie.pickle').get_final_data()
        if not s.raw_data:
            count = 0
            while self.retry_login_time:
                l = NormalLogin()
                Log.v("正在为您登录")
                status, msg = l.login()
                if not status:
                    count += 1
                    Log.v("登录失败, 重试{0}次".format(count))
                    self.retry_login_time -= 1
                    continue
                else:
                    Log.v("登录成功")
                    Log.v("导出已经登录的cookie,已便下次使用")
                    Log.v("cookie的有效期为 {0}小时".format(s.expire_time))
                    s.raw_data = LOGIN_SESSION.cookies
                    s.export_pickle()
                    break
            if not self.retry_login_time:
                Log.v("重试次数已经超过设置")
                return
        else:
            Log.v("加载已经登录的cookie")
            LOGIN_SESSION.cookies.update(s.raw_data)
        Log.v("正在查询车次余票信息")
        count = 0
        while True:
            count += 1
            q = Query()
            data = q.filter()
            if not data:
                Log.v("满足条件的车次暂无余票,正在重新查询")
            for v in data:
                print(v[0])
                q.pretty_output(v[1])
            time.sleep(5)
            Log.v("查询{0}次".format(count))
            for v in data:
                if Config.basic_config.fast_submit:
                    submit = FastSubmitDcOrder(v[1], v[0])
                else:
                    submit = NormalSubmitDcOrder(v[1], v[0])
                f = submit.run()
                if not f:
                    continue
                else:
                    self.order_id = submit.order_id
                    break
            if self.order_id:
                break

        Log.v("抢票成功,如果有配置邮箱,稍后会收到邮件通知")
        # 抢票成功发邮件信息
        send_email(2, **{"order_no": self.order_id})
コード例 #13
0
    def run(self):
        if not self.login():
            return
        p_status = self.query_passengers()
        if not p_status:
            return
        if not Config.auto_code_enable:
            Log.v("未开启自动打码功能, 不检测用户登录状态")
        Log.v("正在查询车次余票信息")

        count = 0

        while True:
            if self.check_maintain():
                Log.v("12306系统每天 23:00 - 6:00 之间 维护中, 程序暂时停止运行")
                maintain_time = self.delta_maintain_time()
                Log.v("{0}小时 {1}分钟 {2}秒之后重新启动".format(
                    maintain_time.seconds // 3600,
                    (maintain_time.seconds // 60) % 60,
                    maintain_time.seconds % 3600 % 60))
                time.sleep(self.delta_maintain_time().total_seconds())
            if Config.auto_code_enable:
                status, msg = self.online_checker()
                Log.v(msg)
                if not status:
                    Log.e("心跳登录失败,继续重试中,建议手动检查原因再尝试重启")
                    self.online_checker_now()

            dates = DispatcherTool.query_travel_dates
            for query_date in dates:
                Log.v("查询第 {0} 次".format(count))
                n = datetime.datetime.now()
                data = DispatcherTool.run(query_date)
                count += 1
                self.submit_order(data)
                DispatcherTool.output_delta_time(n)
                if self.order_id:
                    break
            if self.order_id:
                break

        Log.v("抢票成功,{notice}".format(notice="你已开启邮箱配置,稍后会收到邮件通知" if Config.
                                     email_notice_enable else "如需邮件通知请先配置"))
        Log.v("车票信息:")
        for order_ticket in self.order_tickets:
            print(order_ticket)

        # 抢票成功发邮件信息
        send_email(
            2, **{
                "order_no":
                self.order_id,
                "ticket_info":
                "</br>".join([v.to_html() for v in self.order_tickets])
            })
コード例 #14
0
ファイル: views.py プロジェクト: Ahern542968/MxOnline
 def post(self, request):
     register_form = RegisterForm(request.POST)
     if register_form.is_valid():
         username = register_form.cleaned_data['email']
         if UserProfile.objects.filter(Q(username=username) | Q(email=username)).exists():
             return render(request, 'register.html', {'msg': '用户已存在'})
         password = register_form.cleaned_data['password']
         user_profile = UserProfile.objects.create_user(username=username, email=username, password=password)
         user_profile.save()
         send_email(username, 'register')
         return render(request, 'login.html', {})
     else:
         return render(request, 'register.html', {'register_form': register_form})
コード例 #15
0
def send_reset_password(request):
    if request.method == "GET":
        form = EmailForm()
        context = {"form": form}
        return render(request, 'account/send_email.html', context=context)

    else:
        email = request.POST.get("email", '')
        if email:

            send_email(email)
            return HttpResponse("验证码已经发送,查收")
        else:
            return HttpResponse("请输入正确的邮箱")
コード例 #16
0
ファイル: views.py プロジェクト: chenglinxi/django-blog
def register(request):
    if request.method == "POST":
        ret = {"status": 0, "msg": ""}
        form_obj = forms.RegForm(request.POST)
        print(request.POST)
        # 帮我做校验
        if form_obj.is_valid():
            # 校验通过,去数据库创建一个新的用户
            user_email = request.POST.get("email", "")
            # 此处加入了邮箱验证的手段
            flag = send_email(user_email, "register")
            if flag == 1:
                form_obj.cleaned_data.pop("re_password")  # 数据库里没有确认密码选项,故删除
                is_active = False
                models.UserInfo.objects.create_user(**form_obj.cleaned_data,
                                                    is_active=is_active)
                ret["msg"] = "/login/"
                return JsonResponse(ret)
            else:
                ret["msg"] = flag
                ret["status"] = 2
                return JsonResponse(ret)
        else:
            print(form_obj.errors)
            ret["status"] = 1
            ret["msg"] = form_obj.errors
            print(ret)
            print("=" * 120)
            return JsonResponse(ret)
    # 生成一个form对象
    form_obj = forms.RegForm()
    return render(request, "front_end/register.html", {"form_obj": form_obj})
コード例 #17
0
    def post(self):
        if not request.json:
            return abort(
                403,
                description=
                'Brakujące argumenty, prosze wypełnić wszystkie pola.')
        registerData = {
            'username': request.json['username'],
            'password': request.json['password'],
            'email': request.json['email'],
            'sex': request.json['sex']
        }
        if not registerData['username'] or not registerData['password'] or (
                not registerData['email']) or not registerData['sex']:
            return abort(
                403,
                description=
                'Brakujące argumenty, prosze wypełnić wszystkie pola.')
        user = User.objects(username=registerData['username']).first()
        userEmail = User.objects(email=registerData['email']).first()

        if user:
            return abort(
                403, description='Użytkownik o podanej nazwie już istnieje!')
        elif userEmail:
            return abort(
                403,
                description=
                'Konto o podanym adresie email już istnieje! prosimy o podanie innego.'
            )
        newUser = User(username=registerData['username'],
                       password=bcrypt.generate_password_hash(
                           registerData['password']),
                       email=registerData['email'],
                       sex=registerData['sex']).save()
        token = generate_confirmation_token(newUser.email)
        send_email(
            newUser.email, 'Aktywacja Konta',
            render_template('auth/activate.html',
                            confirm_url=url_for('auth.confirm_account',
                                                token=token,
                                                _external=True)))
        return jsonify(
            message=
            'Twoje konto zostało pomyślnie utworzone! Na adres e-mail została wysłana wiadomość z linkiem aktywacyjnym - prosimy aktywować konto.'
        )
コード例 #18
0
 def get(self):
     user = User.objects(username='******').first()
     login_user(user)
     if not current_user.is_authenticated:
         return abort(403)
     if current_user.confirmed:
         return abort(403)
     user = User.objects(username=current_user.username).first_or_404()
     token = generate_confirmation_token(user.email)
     send_email(
         user.email, 'Aktywacja Konta',
         render_template('auth/activate.html',
                         confirm_url=url_for('auth.confirm_account',
                                             token=token,
                                             _external=True)))
     return jsonify(
         message='Na twoj adres email został wysłany link potwierdzający!')
コード例 #19
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_email = request.POST.get('email', '')
            password = request.POST.get('password', '')
            user_profile = UserProfile()
            user_profile.email = user_email
            user_profile.username = user_email
            user_profile.password = make_password(password)
            user_profile.is_active = False
            user_profile.save()

            send_email(user_email)

            return render(request, 'login.html', {})
        else:
            return render(request, 'register.html',
                          {'register_form': register_form})
コード例 #20
0
ファイル: mainloop.py プロジェクト: everysun/python_12306
    def run(self):
        self.login()
        if not Config.auto_code_enable:
            Log.v("未开启自动打码功能, 不检测用户登录状态")
        Log.v("正在查询车次余票信息")
        count = 0
        while True:
            if Config.auto_code_enable:
                status, msg = self.online_checker()
                Log.v(msg)
            count += 1
            n = datetime.datetime.now()
            q = Query()
            data = q.filter()
            if not data:
                Log.v("满足条件的车次暂无余票,正在重新查询")
            for v in data:
                print("\t\t\t当前座位席别 {}".format(v[0].name))
                q.pretty_output(v[1])
            delta_time = datetime.datetime.now() - n
            try:
                delta = Config.basic_config.query_left_ticket_time - 1 + random.random()
            except AttributeError:
                delta = 4 + random.random()
            time.sleep(delta)
            Log.v("查询第 {0} 次, 当次查询时间间隔为 {1} 秒, 查询请求处理时间 {2} 秒".format(
                count, delta, delta_time.total_seconds()))
            for v in data:
                if Config.basic_config.fast_submit:
                    submit = FastSubmitDcOrder(v[1], v[0])
                else:
                    submit = NormalSubmitDcOrder(v[1], v[0])
                f = submit.run()
                if not f:
                    continue
                else:
                    self.order_id = submit.order_id
                    break
            if self.order_id:
                break

        Log.v("抢票成功,如果有配置邮箱,稍后会收到邮件通知")
        # 抢票成功发邮件信息
        send_email(2, **{"order_no": self.order_id})
コード例 #21
0
def main(request):
    # TODO refactor into a class
    logging.basicConfig(level="INFO")
    logger = logging.getLogger(__name__)

    # TODO get url and weekend from db
    weekend = str(4)
    url = "http://competicio.fcvoleibol.cat/competiciones.asp?torneo=4356&jornada=" + weekend

    # Parse games results from website
    logger.info("Parsing website")
    games_played, games = get_results(url, logger)
    logger.info("Results correctly parsed")

    logger.info("Results are analized now:")
    # If all the results are empty we can finish here. Only dump when there
    # has been a first result
    if games_played == 0:
        # TODO should I log this? It will be logged every 5 minutes before the
        # first results have been played..
        logger.info("There are no results for this weekend yet")
        return "204: No game results"

    # This is to format the document into a json format
    document = games_to_doc(games)

    # TODO remove this from deployment, useful only for local testing
    if TEST:
        try:
            print("DOC", document)
            send_email(weekend, url, document)
            logger.info("Email sent succesfully")
        except Exception as e:
            logger.error(e)
            raise Exception(e)

    logger.info("There are results available. We compare them with previous" +
                " results")
    # Now we should check for the same doc in the database and decide if
    # an email should be sent accordingly
    compare_and_send(document, weekend, logger, url)
    logger.info("Finished")
    return str(200)
コード例 #22
0
ファイル: views.py プロジェクト: BDtests/VakomsBlog
def register(request):
    if request.method == 'POST':
        data = request.POST
        user = CustomUser.create(first_name=data.get('first_name'),
                                 last_name=data.get('last_name'),
                                 email=data.get('email'),
                                 phone=data.get('phone'),
                                 password=data.get('password'))

        if user:
            email_data = {'domain': settings.FRONT_HOST, 'token': user.email}
            subject = 'VakomsBlog Activation'
            message = 'registration'
            template = 'registration.html'
            send_email(subject, message, [
                user.email,
            ], template, email_data)
            return render(request, 'authentication/index.html')
    else:
        return render(request, 'authentication/register.html')
コード例 #23
0
ファイル: views.py プロジェクト: itssafi/songsindia.com
    def post(self, request):
        if not request.user.is_authenticated():
            self.form_class = ChangePasswordFormUnAuth
            self.template_name = 'music/change_password1.html'

        form = self.form_class(request.POST)
        if form.is_valid():
            # Cleaned normalized data
            current_password = form.cleaned_data['password']
            new_password = form.cleaned_data['password1']
            if not request.user.is_authenticated():
                username = form.cleaned_data['username']
                user = User.objects.get(username=username)
                auth = authenticate(username=username, password=current_password)
            else:
                user = User.objects.get(username=request.user)
                auth = authenticate(username=request.user, password=current_password)
            if not auth:
                context = {'form': form,
                           'error_message': 'Current password is incorrect.'}
                return render(request, self.template_name, context)
            if current_password == new_password:
                context = {'form': form,
                           'error_message': 'Current pasword and new password is same.'}
                return render(request, self.template_name, context)

            user.set_password(new_password)
            user.is_active = True
            user.save()
            log.debug("'{0}' is changed password successfully.".format(request.user))

            subject = 'Password Changed Successfully - SongsIndia.com'
            email_body = change_pass_email_body.format(user.first_name,
                user.username, new_password, request.get_host())
            send_email(settings.DEFAULT_FROM_EMAIL, settings.EMAIL_HOST_PASSWORD,
                user.email, subject, email_body)
            context = {'form': LoginForm(None),
                       'success_message': 'Password has been changed successfully.'\
                       ' Please login with the changed password.'}
            return redirect('music:login')
        return render(request, self.template_name, {'form': form})
コード例 #24
0
ファイル: views.py プロジェクト: chenglinxi/django-blog
def forgot_password(request):
    if request.method == "POST":
        # 初始化一个给AJAX返回的数据
        ret = {"status": 0, "msg": ""}
        # 从提交过来的数据中 取到用户名和密码
        username = request.POST.get("username")
        is_email = re.match(
            r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', username)
        if is_email is None:
            try:
                models.UserInfo.objects.get(username=username)
                email = models.UserInfo.objects.filter(
                    username=username).values_list('email', flat=True)
                flag = send_email(email[0], "forget")
                if flag == 1:
                    ret["msg"] = "/login/"
                    return JsonResponse(ret)
                else:
                    ret["msg"] = flag
                    ret["status"] = 1
                    return JsonResponse(ret)
            except:
                ret["status"] = 1
                ret["msg"] = "用户名不存在!"
                return JsonResponse(ret)
        else:
            try:
                models.UserInfo.objects.get(email=username)
                flag = send_email(username, "forget")
                if flag == 1:
                    ret["msg"] = "/login/"
                    return JsonResponse(ret)
                else:
                    ret["msg"] = flag
                    ret["status"] = 1
                    return JsonResponse(ret)
            except:
                ret["status"] = 1
                ret["msg"] = "邮箱地址不存在!"
                return JsonResponse(ret)
    return render(request, "front_end/forgot_password.html")
コード例 #25
0
    def post(self, request, post_id):
        data = request.POST
        post = Post.get_by_id(post_id)
        if data and request.user.is_authenticated:
            comment = Comment.create(content=data.get('content'),
                                     author=request.user,
                                     post=post)
            email_data = {
                'post': post.title,
                'commentator': comment.author.first_name
            }

            subject = 'VakomsBlog New Comment'
            message = 'comment'
            template = 'comment.html'
            recipient = post.author.email
            send_email(subject, message, [
                recipient,
            ], template, email_data)
            return HttpResponseRedirect(
                reverse("post:index", kwargs={'post_id': post_id}))
コード例 #26
0
ファイル: views.py プロジェクト: huangzicong/Mx-online
 def post(self, request):
     register_form = RegisterForm(request.POST)
     if register_form.is_valid():
         user_name = request.POST.get("email", "")
         if UserProfile.objects.filter(email=user_name):
             return render(request, "register.html", {
                 "register_form": register_form,
                 "msg": "用户已经存在"
             })
         pass_word = request.POST.get("password", "")
         user_profile = UserProfile()
         user_profile.is_active = False
         user_profile.username = user_name
         user_profile.email = user_name
         user_profile.password = make_password(pass_word)
         user_profile.save()
         send_email(user_name, "register")
         return render(request, "login.html")
     else:
         return render(request, "register.html",
                       {"register_form": register_form})
コード例 #27
0
	def run(self):
		try:
			suite = self.set_case_suite()
			print('try')
			print(str(suite))
			if suite:
				fp = open(result_path, 'wb')
				html_runner = HTMLTestRunner(stream=fp, title='test report', description='test login')
				html_runner.run(suite)
			else:
				print('failed, suite is None'.center(30, '*'))
		except Exception as e:
			print(str(e))

		finally:
			print('Test End'.center(30, '*'))

		if on_off == 'on':
			send_email()
		else:
			print('send email off . reopen it to send report.hmtl')
コード例 #28
0
ファイル: views.py プロジェクト: itssafi/songsindia.com
    def post(self, request):
        form = self.form_class(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            # Cleaned normalized data
            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']
            phone_number = form.cleaned_data['phone_number']
            user.set_password(password)

            sms = SendTextMessage(settings.TWILIO_SID, settings.TWILIO_TOKEN)
            sms_code = sms.validate_phone_number(phone_number)

            if sms_code:
                log.info('Phone verification for {0}: {1}'.format(phone_number, sms_code))
                return render(request, self.template_name,
                    {'form': form, 'phone_code': sms_code})
            # Formatting text message data
            message = sms_message.format(
                form.cleaned_data['first_name'], request.get_host())
            # Sending text message to proviede phone number
            sms.send_sms(settings.FROM_SMS_NO, phone_number, message)
            # Formatting email data
            subject = 'Welcome to - SongsIndia.com'
            email_body = register_email_body.format(
                    form.cleaned_data['first_name'], username, password)
            # Sending email to proviede email ID
            send_email(settings.DEFAULT_FROM_EMAIL, settings.EMAIL_HOST_PASSWORD,
                form.cleaned_data['email'], subject, email_body)
            # Returns User objects if credentials are correct
            user.save()
            log.debug("'{0}' registered successfully.".format(username))
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)
                    return redirect('music:index')

        return render(request, self.template_name, {'form': form})
コード例 #29
0
def handler():
    config = configparser.ConfigParser()
    config.read('config/config')

    aws_region = config['AWS']['AWS_REGION']
    session = boto3.Session(region_name=aws_region)
    sts = session.client('sts')
    ses = session.client('ses')

    sender = 'AWS Resources Patrol <' + config['AWS']['SENDER'] + '>'
    recipients = config['AWS']['RECIPIENTS'].split()
    subject = '[AWS] AWS Resources Patrol - '
    charset = 'UTF-8'
    mail_enabled = config['AWS']['MAIL_ENABLED']

    account_id = sts.get_caller_identity().get('Account')
    account_alias = boto3.client('iam').list_account_aliases()['AccountAliases'][0]
    regions = [region['RegionName'] for region in session.client('ec2').describe_regions()['Regions']]

    ec2_running = []
    rds_running = []
    redshift_running = []
    elasticsearch_running = []
    cost = costs(aws_region)

    for region in regions:
        print('Checking running instances in: {}'.format(region))
        ec2_running = ec2(region, ec2_running)
        rds_running = rds(region, rds_running)
        redshift_running = redshift(region, redshift_running)
        elasticsearch_running = es(region, elasticsearch_running)

    send_email(account_id, account_alias, mail_enabled, ses, sender, recipients, subject, charset, cost, ec2_running,
               rds_running, redshift_running, elasticsearch_running)

    print('Number of running EC2 instances: {} '.format(len(ec2_running)))
    print('Number of running RDS instances: {} '.format(len(rds_running)))
    print('Number of running Redshift instances: {} '.format(len(redshift_running)))
    print('Number of created Elasticsearch domains: {} '.format(len(elasticsearch_running)))
コード例 #30
0
ファイル: views.py プロジェクト: itssafi/songsindia.com
    def post(self, request):
        form = self.form_class(request.POST)
        if form.is_valid():
            # Cleaned normalized data
            username = form.cleaned_data['username']
            email = form.cleaned_data['email']
            if not User.objects.filter(username=username):
                context = {'form': form,
                           'error_message': 'Username does not exists.'}
                return render(request, self.template_name, context)

            try:
                user = User.objects.get(Q(username=username) & Q(email=email))
            except User.DoesNotExist:
                context = {'form': form,
                           'error_message': 'Provided email address does not matching with the username.'}
                return render(request, self.template_name, context)

            temp_pass = ''.join(random.choice(
                string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(8))
            user.set_password(temp_pass)
            user.is_active = False
            user.save()
            log.debug("'{0}' requsted to reset password.".format(request.user))
            # Formatting email data to Reset password
            subject = 'Reset Password - SongsIndia.com'
            email_body = forget_pass_email_body.format(
                user.first_name, user.username, temp_pass, request.get_host())

            success_message = 'An email has been sent to {0}. Please check its inbox to continue '\
                              'reset your password.'.format(email)
            context = {'form': form,
                       'success_message': success_message
                       }
            send_email(settings.DEFAULT_FROM_EMAIL, settings.EMAIL_HOST_PASSWORD,
                form.cleaned_data['email'], subject, email_body)
            return render(request, self.template_name, context)
        return render(request, self.template_name, {'form': form})
コード例 #31
0
ファイル: views.py プロジェクト: MaJesTySA/EduPlatform
 def post(self, request):
     forget_pwd_form = ForgetPwdForm(request.POST)
     banner_courses = Course.objects.filter(is_banner=True)[:3]
     if forget_pwd_form.is_valid():
         email = request.POST.get('email')
         user = UserProfile.objects.filter(email=email)
         #检查账户是否存在,不存在则不发送邮箱
         if user:
             send_email(email, 'forget')
             return render(request, 'send_success.html')
         else:
             return render(
                 request, 'forgetpwd.html', {
                     'forget_pwd_form': forget_pwd_form,
                     'banner_courses': banner_courses,
                     'msg': '账户不存在!'
                 })
     else:
         return render(
             request, 'forgetpwd.html', {
                 'forget_pwd_form': forget_pwd_form,
                 'banner_courses': banner_courses
             })
コード例 #32
0
def run(suite):
    start_time = time.time()
    logging.info("{} 测试开始 {}".format("=" * 25, "=" * 25))
    report_config = Config.get_report_config()
    report_dir = report_config.get("report_dir") or 'report'
    report_title = report_config.get("report_title") or "Test Report"
    report_description = report_config.get("report_description") or ""
    run_config = Config.get_run_config()
    is_send_email = run_config.get('is_send_email')

    # task_dir = Config.task_dir
    # report_file = os.path.join(task_dir, 'report.html')
    # now = time.strftime('%Y%m%d_%H%M%S', time.localtime())
    # report_file = os.path.join(PROJECT_ROOT, report_dir, 'report_{}.html'.format(now))
    report_file = os.path.join(PROJECT_ROOT, report_dir, 'report.html')
    # 录制屏幕
    # os.popen('adb shell screenrecord /sdcard/record.mp4')

    with open(report_file, 'wb') as f:  # 从配置文件中读取
        result = HTMLTestRunner(stream=f,
                                title=report_title,
                                description=report_description).run(suite)

    # 下载录制文件
    # os.system('adb pull /sdcard/record.mp4 {}'.format(task_dir))

    last_fails_file = 'last_fails.suite'
    if result.failures:
        save_failures(result, last_fails_file)

    if is_send_email:
        send_email()

    case_num = suite.countTestCases()
    duration = time.time() - start_time
    logging.info("{} 测试结束 执行用例:{} 用时: {:.3f}s {}".format(
        "=" * 10, case_num, duration, "=" * 10))
コード例 #33
0
ファイル: views.py プロジェクト: haoSeven/mooc
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            username = request.POST.get("email", "")
            if UserProfile.objects.filter(email=username):
                return render(request, 'register.html', {"register_form": register_form, "msg": "用户已经存在"})
            password = request.POST.get("password", "")
            user_profile = UserProfile()
            user_profile.is_active = False
            user_profile.username = username
            user_profile.email = username
            user_profile.password = make_password(password)
            user_profile.save()

            # 添加用户消息
            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message = "欢迎注册Mooc 学习网"
            user_message.save()

            send_email(username, "register")
            return render(request, 'login.html')
        else:
            return render(request, 'register.html', {"register_form": register_form})