Exemple #1
0
def changePasswordView():
    kwargs = {'formWidth': 300, 'contentTitle': 'Change password'}

    form = changePasswordForm()

    if form.validate_on_submit():

        dataDict = {'password': form.password.data}

        req = authAPI(endpoint='changePassword',
                      method='put',
                      dataDict=dataDict,
                      token=session['token'])
        apiMessage(req)

    return render_template('user/changePasswordForm.html', form=form, **kwargs)
Exemple #2
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)
Exemple #3
0
def groupView(function=None, uuid=None):
    # global variables
    kwargs = {
        'contentTitle': 'User groups',
        'width': '800',
        'formWidth': '350',
        'tableColumns':
        ['User group', 'Description', 'Users assigned to group']
    }

    if function == None:
        req = getGroups(includes=['includeUsers'])['groups']
        kwargs['tableData'] = [[
            r['uuid'], r['name'], r['desc'],
            len(r['users'])
        ] for r in req]
        return render_template('listView.html', **kwargs)

    elif function == 'delete':
        delGroup = deleteGroup(uuid)
        apiMessage(delGroup)
        return redirect(url_for('userBP.groupView'))

    else:
        if function == 'update':
            kwargs['contentTitle'] = 'Update User Group'
            grp = getGroup(uuid, includes=['includeUsers'])['group']
            form = groupForm(
                groupName=grp['name'],
                groupDesc=grp['desc'],
                groupUsers=[unicode(r['uuid']) for r in grp['users']])
            form.groupUsers.choices = [(unicode(r['uuid']), r['email'])
                                       for r in getUsers()['users']]
            if form.validate_on_submit():
                dataDict = {
                    'name': form.groupName.data,
                    'desc': form.groupDesc.data,
                    'users': [unicode(r) for r in form.groupUsers.data]
                }
                updateGroup = putGroup(dataDict=dataDict, uuid=uuid)
                if 'error' in updateGroup:
                    apiMessage(updateGroup)
                else:
                    apiMessage(updateGroup)
                    return redirect(url_for('userBP.groupView'))

        elif function == 'new':
            kwargs['contentTitle'] = 'New User Group'
            form = groupForm()
            form.groupUsers.choices = [(unicode(r['uuid']), r['email'])
                                       for r in getUsers()['users']]
            if form.validate_on_submit():
                dataDict = {
                    'name': form.groupName.data,
                    'desc': form.groupDesc.data,
                    'users': [unicode(r) for r in form.groupUsers.data]
                }
                newGroup = postGroup(dataDict)
                if 'error' in newGroup:
                    apiMessage(newGroup)
                else:
                    apiMessage(newGroup)
                    return redirect(url_for('userBP.groupView'))
        return render_template('user/groupForm.html', form=form, **kwargs)
Exemple #4
0
def groupView(function=None, id=None):
    # global variables
    kwargs = {
        'title': 'User groups',
        'width': '600',
        'formWidth': '350',
        'contentTitle': 'Add new user Group',
        'tableColumns':
        ['User group', 'Description', 'Users assigned to group']
    }

    if function == None:
        # perform API request
        req = getGroups(includes=['includeUsers'])['groups']

        # set data for listView
        kwargs['tableData'] = [[
            r['id'], r['name'], r['desc'],
            len(r['users'])
        ] for r in req]

        # return view
        return render_template('listView.html', **kwargs)
    elif function == 'delete':
        delGroup = deleteGroup(id)
        apiMessage(delGroup)

        return redirect(url_for('userBP.groupView'))

    else:
        if function == 'update':
            # Get single group
            grp = getGroup(id, includes=['includeUsers'])
            form = groupForm(groupName=grp['name'],
                             groupDesc=grp['desc'],
                             groupUsers=[str(r['id']) for r in grp['users']])
            form.groupUsers.choices = [(str(r['id']), r['email'])
                                       for r in getUsers()['users']]
            if form.validate_on_submit():
                dataDict = {
                    'name': form.groupName.data,
                    'desc': form.groupDesc.data,
                    'users': [int(r) for r in form.groupUsers.data]
                }
                updateGroup = putGroup(dataDict=dataDict, id=id)
                if 'error' in updateGroup:
                    apiMessage(updateGroup)
                else:
                    apiMessage(updateGroup)
                    return redirect(url_for('userBP.groupView'))

        elif function == 'new':
            form = groupForm()
            form.groupUsers.choices = [(str(r['id']), r['email'])
                                       for r in getUsers()['users']]

            if form.validate_on_submit():
                dataDict = {
                    'name': form.groupName.data,
                    'desc': form.groupDesc.data,
                    'users': [int(r) for r in form.groupUsers.data]
                }
                newGroup = postGroup(dataDict)
                if 'error' in newGroup:
                    apiMessage(newGroup)
                else:
                    apiMessage(newGroup)
                    return redirect(url_for('userBP.groupView'))
        return render_template('user/groupForm.html', form=form, **kwargs)