Exemplo n.º 1
0
    def run(self):
        """Run the command."""
        # Get the information.
        email = prompt('Email')
        name = prompt('Name')
        password = prompt_pass('Password')
        password_confirm = prompt_pass('Confirm Password')
        data = MultiDict({
            'email': email,
            'password': password,
            'password_confirm': password_confirm,
        })

        # Validate the form.
        form = RegisterForm(data, csrf_enabled=False)
        if form.validate():
            user = register_user(name=name, email=email, password=password)
            print('\nUser created successfully.')
            print('User(id={} email={})'.format(user.id, user.email))
            return

        # If something went wrong, report it and exit out.
        print('\nError creating user:'******'\n'.join(errors))
        sys.exit(1)
Exemplo n.º 2
0
 def run(self):
     email = prompt('Email')
     password = prompt_pass('Password')
     password_confirm = prompt_pass('Confirm Password')
     data = MultiDict(dict(email=email, password=password, password_confirm=password_confirm))
     form = RegisterForm(data, csrf_enabled=False)
     if form.validate():
         user = register_user(email=email, password=password)
         print '\nUser created successfully'
         print 'User(id=%s email=%s' % (user.id, user.email)
         return
     print '\nError creating user:'******'\n'.join(errors)
Exemplo n.º 3
0
def can_create_user(email, password, password_confirm, deployment):
    data = MultiDict(dict(email=email, password=password,
                     password_confirm=password_confirm))
    form = RegisterForm(data, csrf_enabled=False)

    if form.validate():
        return True, {}

    email_errors = form.errors.get('email', [])
    if (len(email_errors) == 1) and \
        (email_errors[0] ==
            get_message('EMAIL_ALREADY_ASSOCIATED', email=email)[0]):
        accounts = users.find(email=email, deployment=deployment)
        if not accounts:
            return True, {}

    return False, form.errors
Exemplo n.º 4
0
 def run(self):
     email = prompt('Email')
     password = prompt_pass('Password')
     password_confirm = prompt_pass('Confirm Password')
     data = MultiDict(
         dict(email=email,
              password=password,
              password_confirm=password_confirm))
     form = RegisterForm(data, csrf_enabled=False)
     if form.validate():
         user = register_user(email=email, password=password)
         print '\nUser created successfully'
         print 'User(id=%s email=%s' % (user.id, user.email)
         return
     print '\nError creating user:'******'\n'.join(errors)
Exemplo n.º 5
0
    def run(self):
        if models.Deployment.objects.count() > 0:
            print 'You already have deployments set up.'
            return

        name = prompt('Name of new deployment')
        hostname = prompt('Hostname for deployment')

        deployment = models.Deployment.objects.create(name=name,
                                                      hostnames=[hostname])

        # create the roles
        role_names = ['manager', 'clerk', 'analyst', 'admin']
        for role_name in role_names:
            role = models.Role.objects.create(name=role_name)

        # create the admin user
        email = prompt('Email for admin user')
        password = prompt_pass('Password for admin user')
        password_confirm = prompt_pass('Confirm password')

        data = MultiDict({
            'email': email,
            'password': password,
            'password_confirm': password_confirm
        })
        form = RegisterForm(data, csrf_enabled=False)
        if form.validate():
            try:
                user = register_user(email=email, password=password)
            except socket.error as e:
                print 'Error sending registration email: {}'.format(e)
                user = services.users.get(email=email, deployment=None)
            user.update(set__deployment=deployment, add_to_set__roles=role)

            print '\nUser created successfully'
            print 'User(id=%s email=%s)' % (user.id, user.email)
        else:
            print '\nError creating user:'******'\n'.join(errors)

        # create at least one event
        from apollo.manage.deployments import CreateEventCommand
        CreateEventCommand._create_event(deployment)
Exemplo n.º 6
0
 def run(self):
     data = {
         'first_name': prompt('First name'),
         'last_name': prompt('Last name'),
         'email': prompt('Email'),
         'password': prompt_pass('Password'),
         'password_confirm': prompt_pass('Confirm Password'),
     }
     form = RegisterForm(MultiDict(data), csrf_enabled=False)
     if form.validate():
         data['password'] = encrypt_password(data['password'])
         user = datastore.create_user(**data)
         print '\nUser created successfully'
         print 'User(id=%s email=%s)' % (user.id, user.email)
         return
     print '\nError creating user:'******'\n'.join(errors)
Exemplo n.º 7
0
def create():
    '''Create a new user'''
    data = {
        'first_name': prompt('First name'),
        'last_name': prompt('Last name'),
        'email': prompt('Email'),
        'password': prompt_pass('Password'),
        'password_confirm': prompt_pass('Confirm Password'),
    }
    form = RegisterForm(MultiDict(data), csrf_enabled=False)
    if form.validate():
        data['password'] = encrypt_password(data['password'])
        user = datastore.create_user(**data)
        print '\nUser created successfully'
        print 'User(id=%s email=%s)' % (user.id, user.email)
        return
    print '\nError creating user:'******'\n'.join(errors)
Exemplo n.º 8
0
def create():
    """Create a new user"""
    data = {
        "first_name": prompt("First name"),
        "last_name": prompt("Last name"),
        "email": prompt("Email"),
        "password": prompt_pass("Password"),
        "password_confirm": prompt_pass("Confirm Password"),
    }
    form = RegisterForm(MultiDict(data), csrf_enabled=False)
    if form.validate():
        data["password"] = encrypt_password(data["password"])
        del data["password_confirm"]
        user = datastore.create_user(**data)
        print "\nUser created successfully"
        print "User(id=%s email=%s)" % (user.id, user.email)
        return
    print "\nError creating user:"******"\n".join(errors)
Exemplo n.º 9
0
    def validate(self):
        rv = RegisterForm.validate(self)
        if not rv:
            return False

        if self.email.data and self.email.validate(self.email.data):
            user = User.find_user_by_email(self.email.data).first()
            if user is not None:
                self.email.errors.append('Email address already used')
                return False

        
        name = self.name.data

        if name.lower() in ILLEGAL_NAMES:
            self.name.errors.append('Name not allowed. Please try another.')
            self.name.data = ''
            return False

        if not re.match("^[a-zA-Z0-9_-]+$", name):
            self.name.errors.append('Only letters, digits, dashes, underscores allowed')
            return False

        if not re.search("[a-zA-Z0-9]", name):
            self.name.errors.append('Must have at least one letter or number')
            return False

        if not NAME_LEN_MIN < len(name) + 1 < NAME_LEN_MAX:
            self.name.errors.append('Must be between %s and %s characters'% (NAME_LEN_MIN,NAME_LEN_MAX)) 
            return False

        user = User.find_user_by_name(name).first()
        if user is not None:
            name = User.make_unique_name(name)
            self.name.errors.append('Name already taken, perhaps %s suits you?' % name)
            self.name.data = name
            return False
        return True
Exemplo n.º 10
0
    def run(self):
        if models.Deployment.objects.count() > 0:
            print 'You already have deployments set up.'
            return

        name = prompt('Name of new deployment')
        hostname = prompt('Hostname for deployment')

        deployment = models.Deployment.objects.create(
            name=name,
            hostnames=[hostname]
        )

        # create the roles
        role_names = ['manager', 'clerk', 'analyst', 'admin']
        for role_name in role_names:
            role = models.Role.objects.create(name=role_name)

        # create the admin user
        email = prompt('Email for admin user')
        password = prompt_pass('Password for admin user')
        password_confirm = prompt_pass('Confirm password')

        data = MultiDict({
            'email': email,
            'password': password,
            'password_confirm': password_confirm
        })
        form = RegisterForm(data, csrf_enabled=False)
        if form.validate():
            try:
                user = register_user(email=email, password=password)
            except socket.error as e:
                print 'Error sending registration email: {}'.format(e)
                user = services.users.get(email=email, deployment=None)
            user.update(set__deployment=deployment, add_to_set__roles=role)

            print '\nUser created successfully'
            print 'User(id=%s email=%s)' % (user.id, user.email)
            return
        print '\nError creating user:'******'\n'.join(errors)

        # create at least one event
        name = prompt('Event name')
        start = end = None
        while True:
            try:
                start = datetime.strptime(
                    prompt('Start date (YYYY-MM-DD)'), '%Y-%m-%d')
            except ValueError:
                pass
            if start:
                break
        while True:
            try:
                end = datetime.strptime(
                    prompt('End date (YYYY-MM-DD)'), '%Y-%m-%d')
            except ValueError:
                pass
            if end:
                break

        event, _ = models.Event.objects.get_or_create(
            name=name,
            deployment=deployment)
        event.start_date = datetime.combine(start, datetime.min.time())
        event.end_date = datetime.combine(end, datetime.max.time())
        event.save()
Exemplo n.º 11
0
    def run(self):
        if models.Deployment.objects.count() > 0:
            print 'You already have deployments set up.'
            return

        name = prompt('Name of new deployment')
        hostname = prompt('Hostname for deployment')

        deployment = models.Deployment.objects.create(name=name,
                                                      hostnames=[hostname])

        # create the roles
        role_names = ['manager', 'clerk', 'analyst', 'admin']
        for role_name in role_names:
            role = models.Role.objects.create(name=role_name)

        # create the admin user
        email = prompt('Email for admin user')
        password = prompt_pass('Password for admin user')
        password_confirm = prompt_pass('Confirm password')

        data = MultiDict({
            'email': email,
            'password': password,
            'password_confirm': password_confirm
        })
        form = RegisterForm(data, csrf_enabled=False)
        if form.validate():
            try:
                user = register_user(email=email, password=password)
            except socket.error as e:
                print 'Error sending registration email: {}'.format(e)
                user = services.users.get(email=email, deployment=None)
            user.update(set__deployment=deployment, add_to_set__roles=role)

            print '\nUser created successfully'
            print 'User(id=%s email=%s)' % (user.id, user.email)
            return
        print '\nError creating user:'******'\n'.join(errors)

        # create at least one event
        name = prompt('Event name')
        start = end = None
        while True:
            try:
                start = datetime.strptime(prompt('Start date (YYYY-MM-DD)'),
                                          '%Y-%m-%d')
            except ValueError:
                pass
            if start:
                break
        while True:
            try:
                end = datetime.strptime(prompt('End date (YYYY-MM-DD)'),
                                        '%Y-%m-%d')
            except ValueError:
                pass
            if end:
                break

        event, _ = models.Event.objects.get_or_create(name=name,
                                                      deployment=deployment)
        event.start_date = datetime.combine(start, datetime.min.time())
        event.end_date = datetime.combine(end, datetime.max.time())
        event.save()