Exemple #1
0
    def post(self):
        user = self.get_current_user()
        url = self.get_argument('url', '')
        display_name = self.get_argument('displayname', '')
        url = self.get_argument('url', '')
        public = self.get_argument('public', '')

        if not display_name:
            error = 'A display name is required!'
            self.render("settings.html", page_title="Settings for {}".format(user.display_name), user=user, error=error)
            return

        public = True if public == 'yes' else False

        error = False
        if url == '':
            error = 'A profile URL is required for public accounts!'
            # make sure url is unique
            if not models.url_unique(url, user):
                error = 'A profile URL is required for public accounts!'
        if error:
            self.render("settings.html", page_title="Settings for {}".format(user.display_name), user=user, error=error)
            return

        user.public = public
        user.url = url
        user.display_name = display_name
        user.save()

        yield gen.Task(self.tf.send, {'users.settings.changed': 1})
        self.redirect('/settings')
Exemple #2
0
    def post(self):
        email = self.get_argument('email', '').lower()
        display_name = self.get_argument('display_name', '')
        password = self.get_argument('password', '')
        password_confirm = self.get_argument('password_confirm', '')
        url = self.get_argument('url', '').lower()
        public = True if self.get_argument('public', '') == 'yes' else False

        # check for general errors
        error = False
        if not email or not password or not password_confirm or not url:
            error = True
        if password != password_confirm:
            error = True
        if error:
            error_text = 'Missing a field or passwords do not match, all fields are required.'
            self.render('register.html', page_title='Register',
                        user=None, error=error_text)
            return

        # check that email hasn't already been used
        check_user = yield models.get_user_by_email(self.redis, email)
        if check_user:
            error_text = 'The email you tried already has an account. Please log in or register with a different email address.'
            self.render('register.html', page_title='Register',
                        user=None, error=error_text)
            return

        # make sure url is unique
        if url and not models.url_unique(url):
            error_text = 'A unique profile URL is required for public accounts!'
            self.render("register.html", page_title="Register",
                        user=None, error=error_text)

        new_user = models.User(email=email)
        new_user.password = util.hash_pwd(password)
        new_user.display_name = display_name
        new_user.url = url
        new_user.public = public
        new_user.save(self.redis)

        self.set_secure_cookie('user', str(new_user.id))
        self.tf.send({'users.registrations': 1}, lambda x: x)
        self.redirect('/')