def save(self): email = self.email.data site_name = current_app.config['PROJECT_SITE_NAME'] site_url = current_app.config['PROJECT_SITE_URL'] sender = current_app.config['MAIL_DEFAULT_SENDER'] # create signed data s = get_signer() data = { 'email': email, 'signup': True } signed_data = s.dumps(data) # set context to template render context = dict( site_name=site_name, site_url=site_url, email=email, signed_data=signed_data ) # load template html = render_template( 'accounts/emails/signup.html', **context ) # create and send message msg = Message( u'Confirm your account - {0}.'.format(site_name), sender=sender, recipients=[email] ) msg.html = html mail.send(msg)
def recover_password_confirm(token): s = get_signer() try: signed_data = s.loads(token, max_age=current_app. config['PROJECT_RECOVER_PASSWORD_TOKEN_MAX_AGE']) email = signed_data['email'] recover_password = signed_data['recover-password'] except: flash(u'Invalid Link.', 'error') return redirect(url_for('pages_app.index')) try: user = User.objects.get(email=email) except: flash(u'E-mail not found.', 'error') return redirect(url_for('pages_app.index')) form = RecoverPasswordConfirmForm() form.user = user if form.validate_on_submit(): user = form.save() flash(u'Password set successfully.', 'success') return redirect(url_for('accounts_app.login')) return render_template('accounts/recover_password_confirm.html', form=form, token=token, user=user)
def signup_confirm(token): s = get_signer() try: signed_data = s.loads( token, max_age=current_app.config['PROJECT_SIGNUP_TOKEN_MAX_AGE']) email = signed_data['email'] signup = signed_data['signup'] except: flash(u'Invalid activation Link.', 'error') return redirect(url_for('accounts_app.signup')) if User.objects.filter(email=email): flash(u'E-mail in use.', 'error') return redirect(url_for('accounts_app.signup')) next = request.values.get('next', '/') form = SignupConfirmForm() form.next.data = next if form.validate_on_submit(): user = form.save(email=email) session['user_id'] = unicode(user.pk) flash(u'Account registered successfully.', 'success') return redirect(next) return render_template('accounts/signup_confirm.html', form=form, token=token)
def signup_confirm(token): s = get_signer() try: signed_data = s.loads( token, max_age=current_app.config['PROJECT_SIGNUP_TOKEN_MAX_AGE'] ) email = signed_data['email'] signup = signed_data['signup'] except: flash(u'Invalid activation Link.', 'error') return redirect(url_for('accounts_app.signup')) if User.objects.filter(email=email): flash(u'E-mail in use.', 'error') return redirect(url_for('accounts_app.signup')) next = request.values.get('next', '/') form = SignupConfirmForm() form.next.data = next if form.validate_on_submit(): user = form.save(email=email) session['user_id'] = unicode(user.pk) flash(u'Account registered successfully.', 'success') return redirect(next) return render_template('accounts/signup_confirm.html', form=form, token=token)
def recover_password_confirm(token): s = get_signer() try: signed_data = s.loads( token, max_age=current_app.config['PROJECT_RECOVER_PASSWORD_TOKEN_MAX_AGE'] ) email = signed_data['email'] recover_password = signed_data['recover-password'] except: flash(u'Invalid Link.', 'error') return redirect(url_for('pages_app.index')) try: user = User.objects.get(email=email) except: flash(u'E-mail not found.', 'error') return redirect(url_for('pages_app.index')) form = RecoverPasswordConfirmForm() form.user = user if form.validate_on_submit(): user = form.save() flash(u'Password set successfully.', 'success') return redirect(url_for('accounts_app.login')) return render_template( 'accounts/recover_password_confirm.html', form=form, token=token, user=user )
def save(self): email = self.email.data site_name = current_app.config['PROJECT_SITE_NAME'] site_url = current_app.config['PROJECT_SITE_URL'] sender = current_app.config['MAIL_DEFAULT_SENDER'] # create signed data s = get_signer() data = {'email': email, 'recover-password': True} signed_data = s.dumps(data) # set context to template render context = dict(site_name=site_name, site_url=site_url, email=email, signed_data=signed_data) # load template html = render_template('accounts/emails/recover_password.html', **context) # create and send message msg = Message('Recover your password - {0}.'.format(site_name), sender=sender, recipients=[email]) msg.html = html if current_app.config['MAIL_FAKE_LINK'] != 'True': mail.send(msg) else: return signed_data
def setUp(self): self.s = get_signer() self.data = {'email': u'*****@*****.**', 'signup': True} self.token = self.s.dumps(self.data) self.data['email'] = u'*****@*****.**' self.token2 = self.s.dumps(self.data) self.token3 = self.token + 'a' self.user = User(username='******', email='*****@*****.**', password='******').save() self.url = url_for('accounts_app.signup_confirm', token=self.token) self.url2 = url_for('accounts_app.signup_confirm', token=self.token2) self.url3 = url_for('accounts_app.signup_confirm', token=self.token3) self.redirect_invalid = url_for('accounts_app.signup') self.redirect_to = url_for('pages_app.index') self.redirect_to_about = url_for('pages_app.about')
def setUp(self): self.s = get_signer() self.data = { 'email': u'*****@*****.**', 'recover-password': True } self.token = self.s.dumps(self.data) self.data['email'] = u'*****@*****.**' self.token2 = self.s.dumps(self.data) self.token3 = self.token + 'a' self.user = User( username='******', email='*****@*****.**', password='******' ).save() self.url = url_for('accounts_app.recover_password_confirm', token=self.token) self.url2 = url_for('accounts_app.recover_password_confirm', token=self.token2) self.url3 = url_for('accounts_app.recover_password_confirm', token=self.token3) self.redirect_invalid = url_for('pages_app.index') self.redirect_to = url_for('accounts_app.login')
from django.utils import timezone from django.utils.translation import ugettext_lazy as _ from django_celery_beat.models import PeriodicTask from common.utils import get_signer, get_logger from orgs.utils import set_to_root_org from ..celery.utils import delete_celery_periodic_task, \ create_or_update_celery_periodic_tasks, \ disable_celery_periodic_task from ..ansible import AdHocRunner, AnsibleError from ..inventory import JMSInventory __all__ = ["Task", "AdHoc", "AdHocRunHistory"] logger = get_logger(__file__) signer = get_signer() class Task(models.Model): """ This task is different ansible task, Task like 'push system user', 'get asset info' .. One task can have some versions of adhoc, run a task only run the latest version adhoc """ id = models.UUIDField(default=uuid.uuid4, primary_key=True) name = models.CharField(max_length=128, verbose_name=_('Name')) interval = models.IntegerField(verbose_name=_("Interval"), null=True, blank=True, help_text=_("Units: seconds")) crontab = models.CharField(verbose_name=_("Crontab"), null=True,
# -*- coding: utf-8 -*- # import os import uuid from hashlib import md5 import sshpubkeys from django.db import models from django.utils.translation import ugettext_lazy as _ from django.conf import settings from common.utils import get_signer, ssh_key_string_to_obj, ssh_key_gen from common.validators import alphanumeric from .utils import private_key_validator signer = get_signer() class AssetUser(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True) name = models.CharField(max_length=128, unique=True, verbose_name=_('Name')) username = models.CharField(max_length=32, verbose_name=_('Username'), validators=[alphanumeric]) _password = models.CharField(max_length=256, blank=True, null=True, verbose_name=_('Password')) _private_key = models.TextField(max_length=4096, blank=True, null=True, verbose_name=_('SSH private key'), validators=[private_key_validator, ]) _public_key = models.TextField(max_length=4096, blank=True, verbose_name=_('SSH public key')) comment = models.TextField(blank=True, verbose_name=_('Comment')) date_created = models.DateTimeField(auto_now_add=True) date_updated = models.DateTimeField(auto_now=True) created_by = models.CharField(max_length=128, null=True, verbose_name=_('Created by')) @property