Esempio n. 1
0
def user_apply():

    form = UserRegistrationForm(request.form)

    if request.method == 'POST': #and form.validate():
        data = dict(request.form)
        action = str(data['button'][0])

        for key in data:
            data[key] = data[key][0]
        del data['button']

        if action == 'save':
            users = Users()
            user = MongoUser()
            del data['confirm']
            for d in data:
                user[d] = data[d]

            users.add(user)

        flash('Thanks for registering')
        return redirect('/')

    user_config = ConfigDict(filename=config_file("/cloudmesh_user_intf.yaml"))
    user_fields = user_config.get("cloudmesh.user")
    return render_template('management/user_apply.html',
                           title="User Application",
                           states=['save', 'cancel'],
                           fields=user_fields,
                           countries_list=[c for c in country_list()],
                           roles_list=roles)
Esempio n. 2
0
def user_apply():

    form = UserRegistrationForm(request.form)

    if request.method == 'POST' and form.validate():
        data = dict(request.form)
        action = str(data['button'][0])

        for key in data:
            data[key] = data[key][0]
        del data['button']

        if action == 'save':
            users = Users()
            user = MongoUser()
            del data['confirm']
            for d in data:
                user[d] = data[d]

            users.add(user)

        flash('Thanks for registering')
        return redirect('/')

    return render_template('management/user_apply_old.html',
                           title="User Application",
                           states=['save', 'cancel'],
                           form=form,
                           fields=UserRegistrationForm.keys,
                           profile_fields=UserRegistrationForm.profile_keys,
                           organization_fields=UserRegistrationForm.organization_keys)
Esempio n. 3
0
def user_apply():

    form = UserRegistrationForm(request.form)

    if request.method == 'POST':  #and form.validate():
        data = dict(request.form)
        action = str(data['button'][0])

        for key in data:
            data[key] = data[key][0]
        del data['button']

        if action == 'save':
            users = Users()
            user = MongoUser()
            del data['confirm']
            for d in data:
                user[d] = data[d]

            users.add(user)

        flash('Thanks for registering')
        return redirect('/')

    user_config = ConfigDict(filename=config_file("/cloudmesh_user_intf.yaml"))
    user_fields = user_config.get("cloudmesh.user")
    return render_template('management/user_apply.html',
                           title="User Application",
                           states=['save', 'cancel'],
                           fields=user_fields,
                           countries_list=[c for c in country_list()],
                           roles_list=roles)
Esempio n. 4
0
    def validate_email_in_form(form, field):
        if ("@" not in field.data) or ("." not in field.data):
            raise ValidationError('The email address is not valid')

        for domain in exclude_email_domains:
            if domain in field.data:
                raise ValidationError(
                    'Email form the domain {0} are not alloed'.format(field.data))
        connect('user', port=27777)
        users = Users()
        if not users.validate_email(field.data):
            raise ValidationError('A user with this email already exists')
Esempio n. 5
0
    def validate_email_in_form(form, field):
        if ("@" not in field.data) or ("." not in field.data):
            raise ValidationError('The email address is not valid')

        for domain in exclude_email_domains:
            if domain in field.data:
                raise ValidationError(
                    'Email form the domain {0} are not alloed'.format(field.data))
        get_mongo_db("manage", DBConnFactory.TYPE_MONGOENGINE)
        users = Users()
        if not users.validate_email(field.data):
            raise ValidationError('A user with this email already exists')
Esempio n. 6
0
    def validate_email_in_form(form, field):
        if ("@" not in field.data) or ("." not in field.data):
            raise ValidationError('The email address is not valid')

        for domain in exclude_email_domains:
            if domain in field.data:
                raise ValidationError(
                    'Email form the domain {0} are not alloed'.format(
                        field.data))
        get_mongo_db("manage", DBConnFactory.TYPE_MONGOENGINE)
        users = Users()
        if not users.validate_email(field.data):
            raise ValidationError('A user with this email already exists')
Esempio n. 7
0
    def validate_username_in_form(form, field):
        if not re.match("^[a-z0-9]*$", field.data):
            raise ValidationError(
                'Only lower case characters a-z and numbers 0-9 allowed.')

        if not field.data.islower():
            raise ValidationError('The username must be lower case')

        connect('user', port=27777)
        username = MongoUser.objects(username=field.data)
        if username.count() > 0:
            users = Users()
            proposal = users.get_unique_username(field.data)
            raise ValidationError(
                'A user with name already exists. Suggestion: {0}'.format(proposal))
Esempio n. 8
0
    def validate_username_in_form(form, field):
        if not re.match("^[a-z0-9]*$", field.data):
            raise ValidationError(
                'Only lower case characters a-z and numbers 0-9 allowed.')

        if not field.data.islower():
            raise ValidationError('The username must be lower case')

        get_mongo_db("manage", DBConnFactory.TYPE_MONGOENGINE)
        username = MongoUser.objects(username=field.data)
        if username.count() > 0:
            users = Users()
            proposal = users.get_unique_username(field.data)
            raise ValidationError(
                'A user with name already exists. Suggestion: {0}'.format(proposal))
Esempio n. 9
0
    def validate_username_in_form(form, field):
        if not re.match("^[a-z0-9]*$", field.data):
            raise ValidationError(
                'Only lower case characters a-z and numbers 0-9 allowed.')

        if not field.data.islower():
            raise ValidationError('The username must be lower case')

        get_mongo_db("manage", DBConnFactory.TYPE_MONGOENGINE)
        username = MongoUser.objects(username=field.data)
        if username.count() > 0:
            users = Users()
            proposal = users.get_unique_username(field.data)
            raise ValidationError(
                'A user with name already exists. Suggestion: {0}'.format(
                    proposal))
Esempio n. 10
0
def management_command(args):
    """cm-management - Command line option to manage users and projects

    Usage:
        cm-management user generate [--count=N]
        cm-management user list [USERNAME] [--format=FORMAT]
        cm-management user clear
        cm-management user add [YAMLFILE]
        cm-management user delete [USERNAME]
        cm-management user activate [USERNAME]
        cm-management user deactivate [USERNAME]
        cm-management user approve [USERNAME]
        cm-management user deny [USERNAME]
        cm-management project generate
        cm-management version

    Options:
        -h --help       Show this screen
        --version       Show version
        --format=FORMAT Output format: table, json
        --all           Displays all users
    """

    arguments = docopt(management_command.__doc__, args[1:])

    try:
        if arguments['version']:
            print cloudmesh.__version__
        elif arguments['user'] and arguments['list']:
            user = Users()
            disp_fmt = None
            user_name = None
            if arguments['--format']:
                disp_fmt = arguments['--format']
            if arguments['USERNAME']:
                user_name = arguments['USERNAME']
            user.list_users(disp_fmt, user_name)
        elif arguments['user'] and arguments['generate']:
            if arguments['--count']:
                count = int(arguments['--count'])
                generate_users(count)
            else:
                generate_users(10)
        elif arguments['user'] and arguments['clear']:
            user = Users()
            user.clear()
        elif arguments['user'] and arguments['delete']:
            if arguments['USERNAME']:
                user = Users()
                user.delete_user(arguments['USERNAME'])
            else:
                print "Error: Please specify a user to be removed."
        elif arguments['user'] and arguments['approve']:
            if arguments['USERNAME']:
                user = Users()
                user.amend_user_status(arguments['USERNAME'], status='approved')
        elif arguments['user'] and arguments['deny']:
            if arguments['USERNAME']:
                user = Users()
                user.amend_user_status(arguments['USERNAME'], status='denied')
        elif arguments['project']:
            print "Dummy Projects"
            project_fields()
        elif arguments['list']:
            print "Listing Users"
    except:
        print "Invalid arguments Exception", sys.exc_info()[0]
        raise
Esempio n. 11
0
import uuid
from pprint import pprint

from cloudmesh.config.cm_config import get_mongo_db, DBConnFactory

# This is not encourged, as importing this file will try to establish a connection
get_mongo_db("manage", DBConnFactory.TYPE_MONGOENGINE)
# However this file was developed as an executable test/entrance so we leave it like this
# alternatively, change this to more Object Oriented way so the connection is
# only established when the object is instantiated.

# ----------------------------------------------------------
# The generate class generates 10 random users
# ----------------------------------------------------------

users = Users()
projects = Projects()

# http://www.joke2k.net/faker/

fake = Factory.create()


def random_user():
    '''
    returns a random user in a dict

    :rtype: dict
    '''
    firstname = fake.first_name()
    data = User(
Esempio n. 12
0
def management_command(args):
    """cm-management - Command line option to manage users and projects

    Usage:
        cm-management user generate [--count=N]
        cm-management user list [USERNAME] [--format=FORMAT]
        cm-management user clear
        cm-management user add [YAMLFILE]
        cm-management user delete [USERNAME]
        cm-management user activate [USERNAME]
        cm-management user deactivate [USERNAME]
        cm-management user approve [USERNAME]
        cm-management user deny [USERNAME]
        cm-management project generate
        cm-management version

    Options:
        -h --help       Show this screen
        --version       Show version
        --format=FORMAT Output format: table, json
        --all           Displays all users
    """

    arguments = docopt(management_command.__doc__, args[1:])

    try:
        if arguments['version']:
            print cloudmesh.__version__
        elif arguments['user'] and arguments['list']:
            user = Users()
            disp_fmt = None
            user_name = None
            if arguments['--format']:
                disp_fmt = arguments['--format']
            if arguments['USERNAME']:
                user_name = arguments['USERNAME']
            user.list_users(disp_fmt, user_name)
        elif arguments['user'] and arguments['generate']:
            if arguments['--count']:
                count = int(arguments['--count'])
                generate_users(count)
            else:
                generate_users(10)
        elif arguments['user'] and arguments['clear']:
            user = Users()
            user.clear()
        elif arguments['user'] and arguments['delete']:
            if arguments['USERNAME']:
                user = Users()
                user.delete_user(arguments['USERNAME'])
            else:
                print "Error: Please specify a user to be removed."
        elif arguments['user'] and arguments['approve']:
            if arguments['USERNAME']:
                user = Users()
                user.amend_user_status(arguments['USERNAME'],
                                       status='approved')
        elif arguments['user'] and arguments['deny']:
            if arguments['USERNAME']:
                user = Users()
                user.amend_user_status(arguments['USERNAME'], status='denied')
        elif arguments['project']:
            print "Dummy Projects"
            project_fields()
        elif arguments['list']:
            print "Listing Users"
    except:
        print "Invalid arguments Exception", sys.exc_info()[0]
        raise