Exemple #1
0
def register():
    form = RegistrationForm(request.form)
    if form.is_submitted():
        if form.validate_on_submit():
            msg = save_user(form)
            flash(msg)
    return render_template('auth/register.html', form=form)
def register():
    form = RegistrationForm()
    print('in register')
    if form.is_submitted():
        flash(f'Account created for {form.username.data}!', 'success')
        print('success')
        return redirect(url_for('index'))
    return render_template("register.html", title='Register', form=form)
Exemple #3
0
def register():
    form = RegistrationForm()
    if form.is_submitted():
        print("submitted")
    if form.validate_on_submit():
        flash(f'Account created for {form.username.data}!', 'success')
        return redirect(url_for('home'))
    print(form.errors)
    return render_template('register.html', title='Register', form=form)
Exemple #4
0
def register_view():
    form = RegistrationForm(request.form)
    if form.is_submitted():
        if form.validate():
            user = User()

            form.populate_obj(user)

            hipflask = current_app.blueprints['hipflask'].hipflask

            hipflask.db.session.add(user)
            hipflask.db.session.commit()

            login.login_user(user)
            flash('Thanks for registering, {name}!'.format(name=user.login), 'success')
        else:
            for field, errors in form.errors.iteritems():
                for message in errors:
                    flash('{field}: {message}'.format(field=field.title(), message=message), 'error')

    return redirect(url_for('index'))
Exemple #5
0
def auth():
    registration_form = RegistrationForm()
    login_form = LoginForm()

    users = mongo.db.users
    if not session.get("logged_in"):
        if request.method == 'POST':
            if registration_form.validate():
                if registration_form.is_submitted():
                    user = User(request.registration_form)
                    users.insert({
                        'first-name': user.first_name,
                        'last-name': user.last_name,
                        'email': user.email,
                        'password': user.password
                    })
                    return "USER ADDED:" + jsonify(user)
        if request.method == 'GET':
            if login_form.is_submitted():
                if login_form.validate():
                    return "OK"
    return render_template("auth.html",
                           reg_form=registration_form,
                           log_form=login_form)
Exemple #6
0
    def register(self, identity):
        """Show application form and submit membership requests.

        :param obj identity: User identity
        """
        # check if user is signed in
        username = self.username(identity)
        if username is None:
            self.logger.info("User is not signed in")
            abort(403)

        session = self.session()

        # find user
        user = session.query(self.User).filter_by(name=username).first()
        if user is None:
            self.logger.warning("Could not find user '%s'" % username)
            abort(404)

        # query registrable groups
        query = session.query(self.RegistrableGroup) \
            .order_by(self.RegistrableGroup.title)
        # eager load relations
        query = query.options(joinedload(self.RegistrableGroup.group))
        registrable_groups = query.all()
        registrable_groups_titles = {}

        # query pending registration requests for this user
        query = session.query(self.RegistrationRequest) \
            .filter_by(user_id=user.id, pending=True)
        pending_requests = query.all()
        pending_registrable_ids = [
            r.registrable_group_id for r in pending_requests
        ]

        # query group memberships
        user_groups = user.sorted_groups
        user_group_ids = [g.id for g in user_groups]

        session.close()

        # create form
        form = RegistrationForm()

        form.registrable_groups = []
        form.groups.choices = []
        form.unsubscribe_groups.choices = []
        for registrable_group in registrable_groups:
            pending = registrable_group.id in pending_registrable_ids
            member = registrable_group.group_id in user_group_ids

            # add registrable group
            form.registrable_groups.append({
                'id': registrable_group.id,
                'title': registrable_group.title,
                'description': registrable_group.description,
                'pending': pending,
                'member': member
            })

            # add lookup for registrable group titles
            registrable_groups_titles[registrable_group.id] = \
                registrable_group.title

            if not pending:
                if member:
                    # add unsubscribable group choice
                    form.unsubscribe_groups.choices.append(
                        (registrable_group.id, registrable_group.title)
                    )
                else:
                    # add registrable group choice
                    form.groups.choices.append(
                        (registrable_group.id, registrable_group.title)
                    )

        if form.is_submitted():
            if form.validate():
                if form.groups.data or form.unsubscribe_groups.data:
                    # use same creation time for all requests in the form
                    created_at = datetime.utcnow()

                    session = self.session()

                    # create registration requests
                    for registrable_group_id in form.groups.data:
                        registration_request = self.RegistrationRequest(
                            user_id=user.id,
                            registrable_group_id=registrable_group_id,
                            unsubscribe=False,
                            pending=True,
                            created_at=created_at
                        )
                        session.add(registration_request)

                    # create unsubscribe requests
                    for registrable_group_id in form.unsubscribe_groups.data:
                        registration_request = self.RegistrationRequest(
                            user_id=user.id,
                            registrable_group_id=registrable_group_id,
                            unsubscribe=True,
                            pending=True,
                            created_at=created_at
                        )
                        session.add(registration_request)

                    session.commit()
                    session.close()

                    self.send_admin_notification(
                        user, form, registrable_groups_titles
                    )

                    flash(self.i18n('registration.flash.submitted'), 'success')
                    return redirect(url_for('register'))
                else:
                    flash(
                        self.i18n('registration.flash.no_group_selected'),
                        'warning'
                    )
            else:
                self.logger.warning(form.errors)
                flash(self.i18n('registration.flash.failed'), 'error')

        return render_template(
            'registration.html', title=self.i18n('registration.title'),
            form=form, username=user.name
        )