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)
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)
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')