def txn(): key_name = cls.get_key_name(user_name) user = cls.get_by_key_name(key_name) if user: from kay.auth import DuplicateKeyError raise DuplicateKeyError( _(u"This user name is already taken." " Please choose another user name.")) salt = crypto.gen_salt() activation_key = crypto.sha1(salt + user_name).hexdigest() profile_key = db.Key.from_path(cls.kind(), key_name, RegistrationProfile.kind(), activation_key) expiration_date = datetime.datetime.now() + \ datetime.timedelta(seconds=settings.ACCOUNT_ACTIVATION_DURATION) taskqueue.add(url=url_for('_internal/expire_registration', registration_key=str(profile_key)), eta=expiration_date, transactional=True) taskqueue.add(url=url_for('_internal/send_registration_confirm', registration_key=str(profile_key)), transactional=True) user = cls(key_name=key_name, activated=False, user_name=user_name, password=crypto.gen_pwhash(password), email=email) profile = RegistrationProfile(user=user, parent=user, key_name=activation_key) db.put([profile, user]) return user
def txn(): key_name = cls.get_key_name(user_name) user = cls.get_by_key_name(key_name) if user: from kay.auth import DuplicateKeyError raise DuplicateKeyError(_(u"This user name is already taken." " Please choose another user name.")) salt = crypto.gen_salt() activation_key = crypto.sha1(salt+user_name).hexdigest() profile_key = db.Key.from_path(cls.kind(), key_name, RegistrationProfile.kind(), activation_key) expiration_date = datetime.datetime.now() + \ datetime.timedelta(seconds=settings.ACCOUNT_ACTIVATION_DURATION) taskqueue.add(url=url_for('_internal/expire_registration', registration_key=str(profile_key)), eta=expiration_date, transactional=True) taskqueue.add(url=url_for('_internal/send_registration_confirm', registration_key=str(profile_key)), transactional=True) user = cls(key_name=key_name, activated=False, user_name=user_name, password=crypto.gen_pwhash(password), email=email) profile = RegistrationProfile(user=user, parent=user, key_name=activation_key) db.put([profile, user]) return user
def get(self, activation_key): account = RegistrationProfile.activate_user(activation_key) context = {'account': account, 'expiration_duration': settings.ACCOUNT_ACTIVATION_DURATION} for key, value in self.extra_context.items(): context[key] = callable(value) and value() or value return render_to_response(self.template_name, context)
def get(self, activation_key): account = RegistrationProfile.activate_user(activation_key) context = { 'account': account, 'expiration_duration': settings.ACCOUNT_ACTIVATION_DURATION } for key, value in self.extra_context.items(): context[key] = callable(value) and value() or value return render_to_response(self.template_name, context)