Ejemplo n.º 1
0
    def post(self):
        """
              Get fields from POST dict
        """
        username = str(self.request.POST.get('username')).lower().strip()
        name = str(self.request.POST.get('name')).strip()
        last_name = str(self.request.POST.get('last_name')).strip()
        email = str(self.request.POST.get('email')).lower().strip()
        country = str(self.request.POST.get('country')).strip()

        if username == "" or email == "":
            message = 'Sorry, some fields are required.'
            self.add_message(message, 'error')
            return self.redirect_to('edit-profile')

        if not utils.is_email_valid(email):
            message = 'Sorry, the email %s is not valid.' % email
            self.add_message(message, 'error')
            return self.redirect_to('edit-profile')

        if not utils.is_alphanumeric(username):
            message = 'Sorry, the username %s is not valid. '\
                      'Use only letters and numbers' % username
            self.add_message(message, 'error')
            return self.redirect_to('edit-profile')

        #TODO: Update profile identifying unique_properties

        # Passing password_raw=password so password will be hashed
        # Returns a tuple, where first value is BOOL.
        # If True ok, If False no new user is created
        unique_properties = ['username','email']
        auth_id = "own:%s" % username
        user = self.auth.store.user_model.create_user(
            auth_id, unique_properties, password_raw=password,
            username=username, name=name, last_name=last_name, email=email,
            country=country, ip=self.request.remote_addr,
        )

        if not user[0]: #user is a tuple
            message = 'Sorry, This user {0:>s} '\
                      'is already registered.'.format(username)# Error message
            self.add_message(message, 'error')
            return self.redirect_to('register')
        else:
            # User registered successfully, let's try sign in the user and redirect to a secure page.
            try:
                self.auth.get_user_by_password(user[1].auth_ids[0], password)
                message = 'Welcome %s you are now loged in.' % ( str(username) )
                self.add_message(message, 'success')
                return self.redirect_to('secure')

            except (AttributeError, KeyError), e:
                message = 'Unexpected error creating '\
                          'user {0:>s}.'.format(username)
                self.add_message(message, 'error')
                self.abort(403)
Ejemplo n.º 2
0
    def post(self):
        """
              username: Get the username from POST dict
              password: Get the password from POST dict
        """
        username = str(self.request.POST.get('username')).lower().strip()
        name = str(self.request.POST.get('name')).strip()
        last_name = str(self.request.POST.get('last_name')).strip()
        email = str(self.request.POST.get('email')).lower().strip()
        password = str(self.request.POST.get('password')).strip()
        c_password = str(self.request.POST.get('c_password')).strip()
        country = str(self.request.POST.get('country')).strip()

        if username == "" or email == "" or password == "":
            message = 'Sorry, some fields are required.'
            self.add_message(message, 'error')
            return self.redirect_to('create-user')

        if password != c_password:
            message = 'Sorry, Passwords are not identical, ' \
                      'you have to repeat again.'
            self.add_message(message, 'error')
            return self.redirect_to('create-user')

        if not utils.is_email_valid(email):
            message = 'Sorry, the email %s is not valid.' % email
            self.add_message(message, 'error')
            return self.redirect_to('create-user')

        if not utils.is_alphanumeric(username):
            message = 'Sorry, the username %s is not valid. ' \
                      'Use only letters and numbers' % username
            self.add_message(message, 'error')
            return self.redirect_to('create-user')

        # Passing password_raw=password so password will be hashed
        # Returns a tuple, where first value is BOOL.
        # If True ok, If False no new user is created
        unique_properties = ['username','email']
        user = self.auth.store.user_model.create_user(
            username, unique_properties, password_raw=password,
            username=username, name=name, last_name=last_name, email=email,
            country=country, ip=self.request.remote_addr,
        )

        if not user[0]: #user is a tuple
            message = 'Sorry, User {0:>s} ' \
                      'is already created.'.format(username)# Error message
            self.add_message(message, 'error')
            return self.redirect_to('create-user')
        else:
            # User is created, let's try redirecting to login page
            try:
                message = 'User %s created successfully.' % ( str(username) )
                self.add_message(message, 'success')
                self.redirect(self.auth_config['login_url'])
            except (AttributeError, KeyError), e:
                message = 'Unexpected error creating ' \
                          'user {0:>s}.'.format(username)
                self.add_message(message, 'error')
                self.abort(403)
Ejemplo n.º 3
0
    def post(self):
        """
              Get fields from POST dict
        """
        username = self.request.POST.get('username').lower().strip()
        name = self.request.POST.get('name', "").strip()
        last_name = self.request.POST.get('last_name', "").strip()
        email = self.request.POST.get('email').lower().strip()
        country = self.request.POST.get('country', "").strip()

        if username == "" or email == "":
            message = 'Sorry, some fields are required.'
            self.add_message(message, 'error')
            return self.redirect_to('edit-profile')

        if not utils.is_email_valid(email):
            message = 'Sorry, the email %s is not valid.' % email
            self.add_message(message, 'error')
            return self.redirect_to('edit-profile')

        if not utils.is_alphanumeric(username):
            message = 'Sorry, the username %s is not valid. '\
                      'Use only letters and numbers' % username
            self.add_message(message, 'error')
            return self.redirect_to('edit-profile')

        new_auth_id='own:%s' % username
        

        try:
            user_info = models.User.get_by_id(long(self.user_id))
            try:
                #checking if new username exists
                message=''
                new_user_info=models.User.get_by_auth_id(new_auth_id)
                if new_user_info==None:
                    user_info.username=username
                    user_info.auth_ids[0]=new_auth_id
                    message+=' Your new username is %s .' % username
                    
                else:
                    if user_info.username == new_user_info.username:
                        message+='Your new username is %s.' % username
                    else:
                        message+='Username: %s is already taken. It is not changed.' % username
                check_user_email=models.User.get_by_email(email)
                if check_user_email==None:
                    user_info.email=email
                elif check_user_email.email!=user_info.email:
                    message+='This email is %s already registered.' % email
                else:
                    user_info.email=email
                user_info.name=name
                user_info.last_name=last_name
                user_info.country=country
                user_info.put()
                logging.error(user_info)
                message+=' Your profile has been updated! '
                self.add_message(message,'success')
                self.redirect_to('edit-profile')
            except (AttributeError,KeyError), e:
                message='Unable to update profile!'
                self.add_message(message,'error')
                self.redirect_to('edit-profile')

        except (AttributeError,TypeError),e:
            login_error_message='Sorry you are not logged in!'
            self.add_message(login_error_message,'error')
            self.redirect_to('login')