コード例 #1
0
ファイル: views.py プロジェクト: ThePoulsen/123
def registerView():
    if not 'token' in session:
        # universal variables
        form = registerForm()
        kwargs = {'formWidth': 400}

        if form.validate_on_submit():
            dataDict = {
                'regNo': form.regNo.data,
                'companyName': form.companyName.data,
                'userName': form.userName.data,
                'email': form.email.data,
                'password': form.password.data
            }

            req = authAPI('register', method='post', dataDict=dataDict)

            if 'error' in req:
                if req['error'] == 'Could not identify Platform':
                    errorMessage(req['error'])
                elif req['error'] == 'Request data incomplete':
                    errorMessage(req['error'])
                elif req['error'] == 'Reg/VAT number already exist':
                    errorMessage(
                        'An account using this Reg/VAT number already exist')
                elif req['error'] == 'Invalid email-address':
                    errorMessage(req['error'])
                elif req[
                        'error'] == 'Illegal null values present in request data':
                    errorMessage(req['error'])
                elif req['error'] == 'Internal server error':
                    errorMessage(req['error'])

            elif 'success' in req:
                # send email confirmation
                subject = u'Please confirm your account'
                tok = req['token']
                email = req['email']
                confirm_url = url_for('authBP.confirmEmailView',
                                      token=tok,
                                      _external=True)
                html = render_template('email/verify.html',
                                       confirm_url=confirm_url)

                sendMail(subject=subject,
                         sender='Henrik Poulsen',
                         recipients=[email],
                         html_body=html,
                         text_body=None)
                successMessage(
                    'You have successfully registered your account, please check your email for confirmation.'
                )
                return redirect(url_for('indexView'))

        return render_template('auth/registerForm.html', form=form, **kwargs)
    else:
        errorMessage('alreadyRegistered')
        return redirect(url_for('indexView'))
コード例 #2
0
def registerView(lang='dk'):
    if not 'token' in session:
        # universal variables
        form = registerForm()
        kwargs = {'formWidth':400,
                  'breadcrumbs': breadCrumbs('authBP.registerView')}

        if g.sijax.is_sijax_request:
            g.sijax.register_callback('validate', validateCVR)
            return g.sijax.process_request()

        if form.validate_on_submit():
            dataDict = {'regNo' : form.regNo.data,
                        'companyName' : form.companyName.data,
                        'userName' : form.userName.data,
                        'email' : form.email.data,
                        'password' : form.password.data}

            req = authAPI('register', method='post', dataDict=dataDict)

            if r.status_code == 409:
                flashmessage('accountExists')
            elif r.status_code == 404:
                flashmessage('cvrCheckError')
            elif 'error' in req:
                if req['error'] == 'Not valid email-address':
                    flashMessage('validateEmail')
            elif 'success' in req:
                # send email confirmation
                subject = u'Bekræft tilmelding'
                tok = req['token']
                email = req['email']
                confirm_url = url_for('authBP.confirmEmailView',token=tok, _external=True, lang=lang)
                html = render_template(lang+'/email/verify.html', confirm_url=confirm_url)
    #
                sendMail(subject=subject,
                         sender='Henrik Poulsen',
                         recipients=[email],
                         html_body=html,
                         text_body = None)
                flashMessage('loginSuccess')
                return redirect(url_for('indexView', lang=lang))

        return render_template(lang+'/auth/registerForm.html', form=form, **kwargs)
    else:
        flashMessage('alreadyRegistered')
        return redirect(url_for('indexView', lang=lang))
コード例 #3
0
def userView(uuid=None, function=None):
    # universal variables
    form = userForm()
    kwargs = {'contentTitle': 'Users', 'width': '', 'formWidth': '400'}

    # Get users
    if function == None:
        kwargs['tableColumns'] = ['User name', 'Email', 'Roles', 'Groups']
        kwargs['tableData'] = usersTable()
        return render_template('listView.html', **kwargs)

    elif function == 'delete':
        delUsr = deleteUser(uuid)
        if 'error' in delUsr:
            errorMessage(delUsr['error'])
        print delUsr
        return redirect(url_for('userBP.userView'))

    else:
        if function == 'update':
            usr = getUser(uuid=uuid,
                          includes=['includeRoles', 'includeGroups'])['user']
            kwargs['contentTitle'] = 'Update user'
            role = 'User'
            for r in usr['roles']:
                if r['title'] == 'Administrator':
                    role = 'Administrator'
                elif r['title'] == 'Superuser':
                    role = 'Superuser'
            grpForm = groupForm()
            usrForm = userForm(
                userName=usr['name'],
                userEmail=usr['email'],
                userPhone=usr['phone'],
                userGroups=[str(r['uuid']) for r in usr['groups']],
                userRole=role)

            # Get all groups
            usrForm.userGroups.choices = [(str(r['uuid']), r['name'])
                                          for r in getGroups()['groups']]
            if g.sijax.is_sijax_request:
                g.sijax.register_object(SijaxHandler)
                return g.sijax.process_request()

            if usrForm.validate_on_submit():
                dataDict = {
                    'name': usrForm.userName.data,
                    'email': usrForm.userEmail.data,
                    'phone': usrForm.userPhone.data,
                    'roles': [usrForm.userRole.data],
                    'groups': [usrForm.userGroups.data]
                }

                updateUser = putUser(dataDict=dataDict, uuid=uuid)
                if not 'error' in updateUser:
                    apiMessage(updateUser)
                    return redirect(url_for('userBP.userView'))
                else:
                    return unicode(updateUser)
            return render_template('user/userForm.html',
                                   usrForm=usrForm,
                                   grpForm=grpForm,
                                   **kwargs)

        elif function == 'new':
            usrForm = userForm(userRole='User')
            grpForm = groupForm()
            grpForm.groupUsers.choices = [(str(r['uuid']), r['email'])
                                          for r in getUsers()['users']]
            kwargs['contentTitle'] = 'New user'
            groups = [(str(r['uuid']), r['name'])
                      for r in getGroups()['groups']]
            usrForm.userGroups.choices = groups

            if g.sijax.is_sijax_request:
                g.sijax.register_object(SijaxHandler)
                return g.sijax.process_request()

            if usrForm.validate_on_submit():
                dataDict = {
                    'name': usrForm.userName.data,
                    'email': usrForm.userEmail.data,
                    'phone': usrForm.userPhone.data
                }

                roles = ['User']
                if usrForm.userRole.data == 'Superuser':
                    roles.append('Superuser')
                elif usrForm.userRole.data == 'Administrator':
                    roles.append('Superuser')
                    roles.append('Administrator')

                dataDict['roles'] = roles
                dataDict['groups'] = usrForm.userGroups.data
                newUser = postUser(dataDict)
                if 'success' in newUser:
                    successMessage('The user has been created')
                    subject = u'Confirm signup'
                    confirm_url = url_for('authBP.confirmEmailView',
                                          token=newUser['token'],
                                          _external=True)
                    html = render_template('email/verify.html',
                                           confirm_url=confirm_url)

                    sendMail(subject=subject,
                             sender='Henrik Poulsen',
                             recipients=[usrForm.userEmail.data],
                             html_body=html,
                             text_body=None)

                    return redirect(url_for('userBP.userView'))
                else:
                    apiMessage(newUser)
            return render_template('user/userForm.html',
                                   usrForm=usrForm,
                                   grpForm=grpForm,
                                   **kwargs)